メインコンテンツまでスキップ

Terraform を使用して Databricks Git フォルダーを管理する

TerraformDatabricks Terraformプロバイダーを使用して、Databricks Gitフォルダーを完全に自動化された環境で管理します。

個人アクセストークンによる認証

このアプローチでは、 Databricksサービス プリンシパルによるリポジトリ認証にGitパーソナル アクセス仮想を使用します。

Terraformリソースを作成する前にプロバイダー構成を評価するため、同じTerraform構成内のプロバイダー ブロックでリソース値 (on-behalf-of (OBO) VPN など) を参照することはできません。 この制限を回避するには、設定を2つの別々の構成に分割します。

  • パート 1: サービス プリンシパルの作成 : Databricksサービス プリンシパルを作成し、OBO セキュリティを生成します。
  • パート 2: Git資格情報の構成 : OBO を使用してDatabricksサービスプリンシパルとして認証し、 Git資格情報を構成してGitフォルダーを作成します。

パート 1: Databricksサービスプリンパルシを作成する

setup/ディレクトリを作成し、その中にmain.tfファイルを作成します。

ステップ 1: プロバイダーと変数を宣言する

terraform {
required_providers {
databricks = {
source = "databricks/databricks"
}
}
}

variable "databricks_host" {}

variable "databricks_admin_token" {
sensitive = true
}

variable "service_principal_name" {}

provider "databricks" {
host = var.databricks_host
token = var.databricks_admin_token
}

ステップ 2: Databricksサービスプリンシパルを作成する

Databricksプリンパルシの表示名を選択します。 Terraformはこの名前を使ってそれを作成します。

resource "databricks_service_principal" "sp" {
display_name = var.service_principal_name
}

ステップ 3: 承認を作成してエクスポートする

Databricksサービスプリンシパルの OBO ウイルスを生成し、次の構成で使用するためにエクスポートします。

resource "databricks_obo_token" "this" {
application_id = databricks_service_principal.sp.application_id
comment = "PAT on behalf of ${databricks_service_principal.sp.display_name}"
lifetime_seconds = 3600
}

output "obo_token_value" {
value = databricks_obo_token.this.token_value
sensitive = true
}

ステップ 4: 設定を適用する

setup/ディレクトリから、トークンを初期化、適用、および取得します。

Bash
terraform init
terraform apply
terraform output -raw obo_token_value

ステップ 5: パート 2 の変数を準備する

git-credentials/ディレクトリに、OBOとその他の必要な値を含むterraform.tfvarsファイルを作成します。

databricks_host           = "https://<your-workspace>.cloud.databricks.com"
obo_token_value = "<token from previous step>"
git_username = "<your-git-username>"
git_provider = "<gitHub|gitLab|azureDevOpsServices|...>"
git_personal_access_token = "<your-git-PAT>"
repo_url = "https://github.com/<your-org>/<your-repo>.git"
注記

機密性の高い値をバージョン管理システムにコミットしないようにするには、 .gitignoreファイルにterraform.tfvarsを追加してください。terraform applyを実行すると、Terraform はこのファイルを自動的に読み込みます。

パート2:Git認証情報の設定

独自のmain.tfファイルを持つ別のgit-credentials/ディレクトリを作成します。

ステップ 1: プロバイダーと変数を宣言する

setup/構成出力から OBO 仮想をobo_token_valueとして渡し、 Databricksサービスプリンシパルとして認証します。

terraform {
required_providers {
databricks = {
source = "databricks/databricks"
}
}
}

variable "databricks_host" {}

variable "obo_token_value" {
sensitive = true
}

variable "git_username" {}
variable "git_provider" {}

variable "git_personal_access_token" {
sensitive = true
}

variable "repo_url" {}

provider "databricks" {
alias = "sp"
host = var.databricks_host
token = var.obo_token_value
}

ステップ 2: Git認証情報を構成する

DatabricksサービスプリンシパルがGitリポジトリにアクセスするために使用するGit資格情報を設定します。

resource "databricks_git_credential" "sp" {
provider = databricks.sp
git_username = var.git_username
git_provider = var.git_provider
personal_access_token = var.git_personal_access_token
}

ステップ 3: Gitフォルダーを作成する

resource "databricks_repo" "this" {
provider = databricks.sp
url = var.repo_url
depends_on = [databricks_git_credential.sp]
}

ステップ 4: Git認証情報構成を適用する

git-credentials/ディレクトリから、初期化して適用します。

Bash
terraform init
terraform apply