Terraform无法在bash Linux中作为变量传入列表
作为我的CI/CD管道的一部分,我正在运行terraform并试图传入一个局部变量。不幸的是,变量名只是字面意思 我试着改变引用,但这似乎没有任何作用 我使用的是Linux Ubuntu和terraform的0.11.14版 bash代码是Terraform无法在bash Linux中作为变量传入列表,bash,amazon-web-services,terraform,Bash,Amazon Web Services,Terraform,作为我的CI/CD管道的一部分,我正在运行terraform并试图传入一个局部变量。不幸的是,变量名只是字面意思 我试着改变引用,但这似乎没有任何作用 我使用的是Linux Ubuntu和terraform的0.11.14版 bash代码是 azip=1.1.1.1 通过以下方式调用计划命令: terraform plan -var 'ip_azure=["$azip2"]' 将显示以下平面图: Terraform will perform the following actions:
azip=1.1.1.1
通过以下方式调用计划命令:
terraform plan -var 'ip_azure=["$azip2"]'
将显示以下平面图:
Terraform will perform the following actions:
+ aws_route53_record.dns_azure
id: <computed>
allow_overwrite: <computed>
fqdn: <computed>
name: "dns_azure"
records.#: "1"
records.767631455: "$azip2"
ttl: "60"
type: "A"
zone_id: "Z2X9DFDU4LXXC6"
Plan: 1 to add, 0 to change, 0 to destroy.
每当我将ip地址直接放入计划中时,例如
terraform plan -var 'ip_azure=["1.1.1.1"]'
我得到了预期的结果单引号之间的变量在Bash中没有得到计算。如果你使用
terraform plan -var "ip_azure=[${azip2}]"
。。。相反,它应该起作用。在这种情况下,您可能甚至不需要
{}
。单引号之间的变量在Bash中不会得到计算。如果你使用
terraform plan -var "ip_azure=[${azip2}]"
。。。相反,它应该起作用。在这种情况下,您可能甚至不需要{}
。谢谢您给了我正确的方向
我运行了以下命令
terraform plan -var "ip_azure=[\"${azip2}\"]"
它成功了。看来我需要避开双引号了,谢谢你给了我正确的方向
我运行了以下命令
terraform plan -var "ip_azure=[\"${azip2}\"]"
它成功了。看来我需要避开双引号谢谢你的评论。我刚刚试过,但是我得到了以下'terraform plan-var“ip_azure=[${azip2}]”用法:terraform plan[options][DIR-OR-plan]为terraform生成一个执行计划。在运行apply之前,可以对该执行计划进行审查,以了解Terraform将做什么。或者,该计划可以保存到地形计划文件中,并且apply可以获取该计划文件以准确执行该计划。如果保存的计划作为参数传递,此命令将输出保存的计划co…..如果我看得正确,则命令末尾仍有一个引号。请删除它,然后再试一次。谢谢,请参阅上面的答案。这似乎奏效了。感谢您的指导。谢谢您的评论。我刚刚试过,但是我得到了以下'terraform plan-var“ip_azure=[${azip2}]”用法:terraform plan[options][DIR-OR-plan]为terraform生成一个执行计划。在运行apply之前,可以对该执行计划进行审查,以了解Terraform将做什么。或者,该计划可以保存到地形计划文件中,并且apply可以获取该计划文件以准确执行该计划。如果保存的计划作为参数传递,此命令将输出保存的计划co…..如果我看得正确,则命令末尾仍有一个引号。请删除它,然后再试一次。谢谢,请参阅上面的答案。这似乎奏效了。感谢您的指导。