Как выполнить план терраформирования в конвейере Bitbucket?

#terraform #bitbucket-pipelines #azure-rm

#терраформирование #битбакет-трубопроводы #лазурный-rm

Вопрос:

Попытка развернуть первый канал bb с помощью terraform в облаке azure. Инициализация терраформирования проходит нормально. Но как только вы начинаете планировать или применять, это терпит неудачу. Трубопровод ВВ:

 image: hashicorp/terraform:latest  pipelines:  default:  - step:  name: Test  script:  - terraform init -backend-config="storage_account_name=$DEV_TF_CONFIG_STORAGE_ACCOUNT" -backend-config="container_name=$DEV_TF_CONFIG_CONTAINER_NAME" -backend-config="key=$DEV_TF_CONFIG_KEY" -backend-config="sas_token=$DEV_TF_SAS_TOKEN"  - terraform plan   - terraform apply  

Ошибка в команде «План терраформирования»:

   terraform plan ╷ │ Error: Invalid provider configuration │  │ Provider "registry.terraform.io/hashicorp/azuread" requires explicit │ configuration. Add a provider block to the root module and configure the │ provider's required arguments as described in the provider documentation. │  ╵ ╷ │ Error: could not configure AzureCli Authorizer: could not parse Azure CLI version: launching Azure CLI: exec: "az": executable file not found in $PATH │  │ with provider["registry.terraform.io/hashicorp/azuread"], │ on lt;emptygt; line 0: │ (source code not available) │  ╵  

Я довольно новичок в этой теме :). Есть какие-нибудь идеи?

Комментарии:

1. кстати, блок провайдера существует следующим образом: провайдер «azurerm» { функции {} идентификатор подписки = var.идентификатор подписки tenant_id = var.идентификатор арендатора client_id = var.идентификатор клиента client_secret = var.client_secret }

Ответ №1:

это было решено путем передачи переменных репозитория bitbucket: TF_VAR_SUBSCRIPTION_ID, TF_VAR_TENANT_ID, TF_VAR_CLIENT_ID, TF_VAR_CLIENT_SECRET, TF_VAR_AKS_ADMIN_GROUP_ID в Terraform, указав следующий код в variables.tf:

 variable "SUBSCRIPTION_ID" { } variable "CLIENT_ID" { } variable "CLIENT_SECRET" { } variable "TENANT_ID" { } variable "AKS_ADMIN_GROUP_ID" { }    

передача значений выполняется автоматически из bitbucket в terraform, на самом деле в конвейере ничего не должно делаться. все, что нам нужно было сделать, это определить переменные репо и изменить variables.tf