【发布时间】:2021-02-27 02:14:03
【问题描述】:
为了我们项目的需要,我们需要通过 Terraform (v. 0.13.5) 自动创建 AWS 实例。我们正在使用 Jenkins 管道,它有一个 groovy 脚本并使用这个 shell 调用 terraform:
sh """
terraform init
terraform apply -auto-approve \
-var-file=${terraform_vars_filename} \
-var 'vm-state=running' \
-var 'vm-private-key=${AWS_KEY}' \
""".stripIndent()
因为我们会在不同的 AWS 实例上进行操作,所以我们需要有一种方法来在创建过程中管理 AWS 实例的名称,所以每个实例都应该有唯一的名称(由 Jenkins 作业中的字段管理。所以换句话说我们需要将一个 groovy 变量(比如 ${nameAwsInstance})“导入”到 Terraform 名称标签(在 AWS 实例创建中使用)。
我尝试了不同的方法,主要基于“-var”选项,试图覆盖名称标签,例如:
-var 'var.tags["Name"]=${nameAwsInstance}
但是他们都没有工作。
那么,是否可以覆盖名称标签以及语法是什么?
附:如果有其他想法,我会很高兴。
最好的问候。
【问题讨论】:
标签: terraform terraform-provider-aws terraform-template-file