我在我的环境中定义了 AWS_ACCESS_KEY 和 AWS_SECRET_KEY 键/值对(我在运行 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
脚本包含以下步骤,但它们显示为空白。我什至尝试将键/值对与我的 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` }}"
]
关于Packer 没有看到我的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64896433/