![](/img/trans.png)
[英]GitLab-CI Pipeline Not Recognizing Azure CLI and Terraform in Same Job
[英]GitLab Pipeline is throwing an Azure CLI error
我正在運行一個非常輕量級的 GitLab 管道,它執行許多 Terraform 配置。 然而,我遇到了一個絕對的障礙,因為管道在嘗試運行 Terraform init 時拋出 Azure CLI 錯誤(下面的屏幕截圖),我似乎無法解決這個問題。 有任何想法嗎?
此錯誤發生在管道階段: validate
。
然而,在此之前,我還有另一個管道階段: deploy
,我可以使用以下命令成功安裝 Azure CLI:
deploy:
stage: deploy
image: mcr.microsoft.com/dotnet/core/sdk:3.1
script:
- curl -sL https://aka.ms/InstallAzureCLIDeb | bash
因此,經過進一步調查,事實證明只有當我包含我的 terraform backend.tf
文件時才會發生此錯誤,該文件配置了一個 Azure 后端來存儲我的 terraform state 文件。 排除這個文件,一切都會順利進行。 我完全不知所措,因為我確實需要 Azure 中的 state 文件。
在我看來,Azure CLI 在管道deploy
階段(上方)成功安裝並沒有被 Backend.tf 配置選中。
以下是我的 Backend.tf 文件的內容
terraform {
backend "azurerm" {
resource_group_name = "rg_xxx"
storage_account_name = "stxxxxtfstate"
container_name = "terraform"
key = "terraform.tfstate"
}
}
下面是我的.gitlab-ci.yml
文件的管道deploy
階段的 YAML 片段,我在其中調用terraform init
和apply
。
deploy:
stage: deploy
script:
- terraform init
- terraform plan -var-file=dev-settings.tfvars -out=plan.out
- terraform apply -auto-approve plan.out
感謝Cdub為 OP 指明了正確的方向。 將您寶貴的討論作為答案發布,以幫助其他社區成員。
如果backend.tf文件從 Terraform 配置引用 Azure 資源管理器提供程序,則可以將Azure CLI安裝步驟移動到部署階段,其中 terraform 命令在terraform init
之前執行。
請參考terraform-gitlab-image-no-azure-cli ,它顯示了在 GitHub 管道中安裝 Azure CLI 的另一種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.