簡體   English   中英

GitLab 管道拋出 Azure CLI 錯誤

[英]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 initapply

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM