首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用GitLab CI/CD部署AKS

无法使用GitLab CI/CD部署AKS
EN

Stack Overflow用户
提问于 2022-06-18 18:22:47
回答 2查看 225关注 0票数 0

我正在使用下面的GitLab管道在Azure上部署一个Kubernetes集群

代码语言:javascript
复制
image:
  name: hashicorp/terraform:1.2.3
  entrypoint:
    - '/usr/bin/env'
    - 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'

variables:
  TF_ROOT: ${CI_PROJECT_DIR}/infrastructure
  TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${CI_PROJECT_NAME}

cache:
  key: my-services
  paths:
    - ${TF_ROOT}/.terraform

before_script:  
  - cd ${TF_ROOT}
  - rm -rf .terraform
  - terraform --version
  - terraform init

stages:
  - terraform_validate
  - terraform_plan
  - terraform_apply

terraform_validate_dev:
  stage: terraform_validate
  environment:
    name: development
  script:
    - terraform validate
  rules:
    - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH

terraform_plan_dev:
  stage: terraform_plan
  environment:
    name: development
  script:
    - terraform plan
    - terraform plan-json
  dependencies:
    - terraform_validate_dev
  artifacts:
    name: plan deployment
    paths:
      - ${TF_ROOT}/plan.cache
    reports:
      terraform: ${TF_ROOT}/plan.json
  rules:
    - if: $CI_COMMIT_BRANCH == "development"

terraform_apply_dev:
  stage: terraform_apply
  environment:
    name: development
  script:
    - terraform apply
  dependencies:
    - terraform_plan_dev
  rules:
    - if: $CI_COMMIT_BRANCH == "development"
      when: manual

但是在terraform_plan阶段,我收到以下错误:

代码语言:javascript
复制
"Error: building AzureRM Client: please ensure you have installed Azure CLI version 2.0.79 or newer. Error parsing json result from the Azure CLI: launching Azure CLI: exec: "az": executable file not found in $PATH."

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2022-06-19 07:37:34

最后,我找到了问题所在。

不幸的是,@sytech提出的解决方案并没有解决问题,而是帮助我发现了真正的问题。

作为一种良好的实践,希望部署或使用Azure服务的自动化工具应该始终使用服务主体。因此,我在Azure中创建了一个服务主体,并试图将它与Terraform代码一起使用。正如文档所说,要使用服务主体,我们需要创建以下环境变量:

代码语言:javascript
复制
ARM_CLIENT_ID
ARM_CLIENT_SECRET
ARM_SUBSCRIPTION_ID
ARM_TENANT_ID

一旦我添加了这些环境变量,terraform_plan阶段就能够完成它的工作。

票数 1
EN

Stack Overflow用户

发布于 2022-06-18 19:36:06

正如错误消息所解释的,您必须使用安装天蓝色CLI

例如:

代码语言:javascript
复制
# ...
before_script:
  - curl -L https://aka.ms/InstallAzureCli | bash
  # ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72671683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档