Terraform を使用して Databricks Git フォルダーを管理する
TerraformとDatabricks 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/ディレクトリから、トークンを初期化、適用、および取得します。
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/ディレクトリから、初期化して適用します。
terraform init
terraform apply