gpt4 book ai didi

amazon-web-services - 将 GitLab CI 变量注入(inject) Terraform 变量

转载 作者:行者123 更新时间:2023-12-04 01:43:28 28 4
gpt4 key购买 nike

我有一组 Terraform 文件,特别是一个 variables.tf 文件,其中包含我的变量,如 aws 访问 key 、aws 访问 token 等。我现在想使用 GitLab CI/CD 在 AWS 上自动创建资源。

我的计划如下:

  • 写一个.gitlab-ci-yml 文件
  • 在 .gitlab-ci.yml 文件中进行 terraform 调用

  • 我知道我可以在 GitLab 中拥有 secret 环境变量,但我不确定如何将这些变量推送到现在看起来像这样的 Terraform variables.tf 文件中!
    # AWS Config

    variable "aws_access_key" {
    default = "YOUR_ADMIN_ACCESS_KEY"
    }

    variable "aws_secret_key" {
    default = "YOUR_ADMIN_SECRET_KEY"
    }

    variable "aws_region" {
    default = "us-west-2"
    }

    在我的 .gitlab-ci.yml 中,我可以访问这样的 secret :
    - 'AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}' 
    - 'AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}'
    - 'AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}'

    如何将它通过管道传输到我的 Terraform 脚本?有任何想法吗?我需要阅读 GitLab 环境中的 secret 并将其传递给 Terraform 脚本!

    最佳答案

    您为 GitLab 运行者使用哪个执行器?

    您不一定需要使用 Docker 执行程序,但可以使用安装在裸机或虚拟机中的运行程序。

    如果您安装 gettext也可以在相应的机器/VM 上打包,您可以使用我在 Referencing gitlab secrets in Terraform 中描述的相同方法对于 Docker 执行器。

    另一种可能性可能是您设置

    job:
    stage: ...
    variables:
    TF_VAR_SECRET1: ${GITLAB_SECRET}

    或者
    job:
    stage: ...
    script:
    - export TF_VAR_SECRET1=${GITLAB_SECRET}

    在您的 CI 作业配置中并插入这些。请看 Getting an Environment Variable in Terraform configuration?以及

    关于amazon-web-services - 将 GitLab CI 变量注入(inject) Terraform 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56461518/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com