Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform无法在bash Linux中作为变量传入列表_Bash_Amazon Web Services_Terraform - Fatal编程技术网

Terraform无法在bash Linux中作为变量传入列表

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:

作为我的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:

  + 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…..如果我看得正确,则命令末尾仍有一个引号。请删除它,然后再试一次。谢谢,请参阅上面的答案。这似乎奏效了。感谢您的指导。