Packer HCL v1.13.1环境变量无法使用:文档方法均失效求解决
Packer HCL v1.13.1环境变量无法生效问题
我在Packer HCL v1.13.1中完全无法使用环境变量传递参数,文档记录的所有方法均无效。
我的Packer配置如下:
variable "system_name" { type = string } source "googlecompute" "ubuntu" { ... } build { sources = ["source.googlecompute.ubuntu"] provisioner "file" { source = "../../package.tar.gz" destination = "/tmp/${var.system_name}.tar.gz" } }
我按照Packer文档的说明,尝试了多种环境变量设置方式:
SYSTEM_NAME=myssystem PKR_VAR_SYSTEM_NAME=myssystem PKR_VAR_system_name=myssystem PACKER_VAR_system_name=myssystem PACKER_VAR_SYSTEM_NAME=myssystem
但这些方式都不起作用。
我还尝试了为变量设置默认值的变体:
variable "system_name" { type = string default = env("SYSTEM_NAME") }
同样无效。
目前我只能通过命令行使用--var参数传递变量,但希望能通过程序化方式实现。想问Packer是否支持环境变量传参的方式?还是文档内容有误?
更新:
直接执行以下命令时可以正常工作:
export PKR_VAR_system_name=mysystem
但在bash脚本中设置环境变量后调用Packer却无法生效。执行脚本后echo能正常输出变量值:
source myscript.sh echo $PKR_VAR_system_name > mysystem
因此我认为问题可能出在我设置值的脚本上,而非Packer本身。
内容的提问来源于stack exchange,提问作者Kevin Kraft
相关产品推荐
相关产品推荐

