使用空格将变量从Terraform传递到Ansible

时间:2020-02-28 19:50:41

标签: json ansible jinja2 terraform

目前,我在json中有一个tfvars文件,用空格设置键值。例如:

{
  "customer": "Test Customer",
}

然后我将此变量传递给使用cloud-config在预配置的EC2主机上本地运行的ansible playbook命令

sudo ansible-playbook /Playbook.yml --extra-vars 'customer=${var.customer}'

在那本剧本中,我有一个许可证文件,我想与Ansible的模板模块一起传播。当前,许可证文件将获得测试,但不会获得“测试客户”(由于空格)。我该如何解决?

还有第二点需要说明,是否有更好/更清洁的方法将Terraform变量(而不是-e额外变量)传递给Terraform配置中的ansible playbook命令?

1 个答案:

答案 0 :(得分:1)

我认为这将为您解决问题:

sudo ansible-playbook /Playbook.yml --extra-vars "customer='${var.customer}'"

注意: 为了更好的设计,我真的建议您将这两个工具彼此分离。不要在ansible和terraform之间建立紧密的联系,因为将来您可能决定开始使用其他工具,这将迫使您重写整个IaC。