目前,我在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命令?
答案 0 :(得分:1)
我认为这将为您解决问题:
sudo ansible-playbook /Playbook.yml --extra-vars "customer='${var.customer}'"
注意: 为了更好的设计,我真的建议您将这两个工具彼此分离。不要在ansible和terraform之间建立紧密的联系,因为将来您可能决定开始使用其他工具,这将迫使您重写整个IaC。