gpt4 book ai didi

ansible - Terraform 本地执行配置程序中的转义字符

转载 作者:行者123 更新时间:2023-12-02 10:54:43 24 4
gpt4 key购买 nike

我想使用 local-exec 配置器链接 Terraform 和 Ansible;

但是,由于这需要输入 Ansible 来自 Terraform,我陷入了以下复杂的命令:

provisioner "local-exec" {
command = 'sleep 60; ansible-playbook -i ../ansible/inventory/ ../ansible/playbooks/site.yml --extra-vars "rancher_server_rds_endpoint="${aws_db_instance.my-server-rds.endpoint}" rancher_server_elastic_ip="${aws_eip.my-server-eip.public_ip}""'
}

不断返回

illegal char

错误;

关于正确转义的任何建议?

如果 ansible-playbook 命令直接在 shell 中运行,则为:

ansible-playbook -i inventory playbooks/site.yml --extra-vars "my_server_rds_endpoint=my-server-db.d30ikkj222.us-west-1.rds.amazonaws.com rancher_server_elastic_ip=88.148.17.236"

(路径不同)

最佳答案

Terraform syntax指出:

Strings are in double-quotes.

所以需要将单引号替换为双引号,然后在里面转义引号,例如:

provisioner "local-exec" {
command = "sleep 60; ansible-playbook -i ../ansible/inventory/ ../ansible/playbooks/site.yml --extra-vars \"rancher_server_rds_endpoint='${aws_db_instance.my-server-rds.endpoint}' rancher_server_elastic_ip='${aws_eip.my-server-eip.public_ip}'\""
}

关于ansible - Terraform 本地执行配置程序中的转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49176009/

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