Packer 没有看到我的环境变量?
Packer doesn't see my environment variables?
我在我的环境中定义了 AWS_ACCESS_KEY 和 AWS_SECRET_KEY key/value 对(我在 运行 Packer 的同一终端上通过 env
命令看到它们) ,我希望 Packer 在构建脚本中使用它们。
我的 Packer 文件看起来像
{
"variables" : {
"aws_access_key" : "{{ env `AWS_ACCESS_KEY` }}",
"aws_secret_key" : "{{ env `AWS_SECRET_KEY` }}",
...
},
...
"provisioners" : [
{
"type" : "shell",
"environment_vars": "AWS_ACCESS_KEY={{ user `aws_access_key` }}",
"environment_vars": "AWS_SECRET_KEY={{ user `aws_secret_key` }}",
"execute_command": "{{.Vars}} sudo -E -S bash '{{.Path}}'",
"script" : "./ecs_prepare_master.sh"
}
]
}
ecs_prepare_master.sh
脚本有这些步骤,它们显示为空白。我什至尝试将 key/value 对与我的 packer build ...
命令行一起传递,但无济于事。
echo "access=$AWS_ACCESS_KEY"
echo "secret=AWS_SECRET_KEY"
缺少什么?
啊,多个环境变量的语法是
"environment_vars": [
"AWS_ACCESS_KEY={{ user `aws_access_key` }}",
"AWS_SECRET_KEY={{ user `aws_secret_key` }}"
]
我在我的环境中定义了 AWS_ACCESS_KEY 和 AWS_SECRET_KEY key/value 对(我在 运行 Packer 的同一终端上通过 env
命令看到它们) ,我希望 Packer 在构建脚本中使用它们。
我的 Packer 文件看起来像
{
"variables" : {
"aws_access_key" : "{{ env `AWS_ACCESS_KEY` }}",
"aws_secret_key" : "{{ env `AWS_SECRET_KEY` }}",
...
},
...
"provisioners" : [
{
"type" : "shell",
"environment_vars": "AWS_ACCESS_KEY={{ user `aws_access_key` }}",
"environment_vars": "AWS_SECRET_KEY={{ user `aws_secret_key` }}",
"execute_command": "{{.Vars}} sudo -E -S bash '{{.Path}}'",
"script" : "./ecs_prepare_master.sh"
}
]
}
ecs_prepare_master.sh
脚本有这些步骤,它们显示为空白。我什至尝试将 key/value 对与我的 packer build ...
命令行一起传递,但无济于事。
echo "access=$AWS_ACCESS_KEY"
echo "secret=AWS_SECRET_KEY"
缺少什么?
啊,多个环境变量的语法是
"environment_vars": [
"AWS_ACCESS_KEY={{ user `aws_access_key` }}",
"AWS_SECRET_KEY={{ user `aws_secret_key` }}"
]