我有一组Terraform文件,尤其是一个variables.tf文件,其中包含aws访问密钥,aws访问令牌等变量。我现在想使用GitLab CI /在AWS上自动创建资源光盘。
我的计划如下:
编写一个.gitlab-ci-yml文件
在.gitlab-ci.yml文件中具有Terraform调用
我知道我可以在GitLab中拥有秘密的环境变量,但是我不确定如何将这些变量推送到现在看起来像这样的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中,我可以访问以下机密:
- 'AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}'
- 'AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}'
- 'AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}'
如何将其传输到Terraform脚本?有任何想法吗?我需要阅读GitLab环境中的秘密,并将其传递给Terraform脚本!
答案 0 :(得分:1)
您要为GitLab运行程序使用哪个执行程序?
您不一定需要使用Docker执行程序,而是可以使用安装在裸机或VM中的运行程序。
如果也将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?