gerenciar Databricks Git pastas usando Terraform
Gerencie pastas Git Databricks em um ambiente totalmente automatizado usando Terraform e o provedor Terraform Databricks.
Autenticação com access tokenspessoal
Esta abordagem utiliza access tokens pessoal Git para autenticação de repositório com uma entidade de serviço Databricks .
Terraform avalia as configurações do provedor antes de criar qualquer recurso, portanto, você não pode referenciar um valor de recurso (como um token "em nome de" (OBO)) em um bloco de provedor dentro da mesma configuração Terraform . Para contornar essa limitação, divida a configuração em duas configurações separadas:
- Parte 1: Criar a entidade de serviço : Cria a entidade de serviço Databricks e gera tokens OBO.
- Parte 2: Configurar credenciais Git : Utiliza os tokens OBO para autenticar como a entidade de serviço Databricks , em seguida, configura as credenciais Git e cria a pasta Git .
Parte 1: Criar a entidade de serviço do Databricks
Crie um diretório setup/ com um arquivo main.tf .
Passo 1: Declare o provedor e as variáveis
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
}
o passo 2: Criar a entidade de serviço Databricks
Escolha um nome de exibição para a entidade de serviço do Databricks. O Terraform o cria usando esse nome.
resource "databricks_service_principal" "sp" {
display_name = var.service_principal_name
}
o passo 3: Criar e exportar os tokens de autorização
Gere um token OBO para a entidade de serviço Databricks e exporte-o para uso na próxima configuração.
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
}
o passo 4: Aplicar a configuração
A partir do diretório setup/ , inicialize, aplique e recupere os tokens:
terraform init
terraform apply
terraform output -raw obo_token_value
o passo 5: Preparar variáveis para a Parte 2
Crie um arquivo terraform.tfvars no diretório git-credentials/ com os tokens OBO e outros valores necessários:
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"
Adicione terraform.tfvars ao seu arquivo .gitignore para evitar o commit de valores sensíveis ao controle de versão. Terraform lê automaticamente este arquivo quando você executa terraform apply.
Parte 2: Configurar credenciais do Git
Crie um diretório git-credentials/ separado com seu próprio arquivo main.tf .
Passo 1: Declare o provedor e as variáveis
Passe os tokens OBO da saída de configuração setup/ como obo_token_value para autenticar como a entidade de serviço 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
}
o passo 2: Configurar credenciais Git
Defina as credenciais do Git que a entidade de serviço do Databricks usará para acessar seu repositório 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
}
o passo 3: Crie a pasta Git
resource "databricks_repo" "this" {
provider = databricks.sp
url = var.repo_url
depends_on = [databricks_git_credential.sp]
}
o passo 4: Aplicar a configuração de credenciais Git
A partir do diretório git-credentials/ , inicialize e aplique:
terraform init
terraform apply