1

我在我的环境中定义了 AWS_ACCESS_KEY 和 AWS_SECRET_KEY 键/值对(我通过env运行 Packer 的同一终端上的命令查看它们),并且我希望 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"

少了什么东西?

4

1 回答 1

2

啊,多个环境变量的语法是

"environment_vars": [
    "AWS_ACCESS_KEY={{ user `aws_access_key` }}",
    "AWS_SECRET_KEY={{ user `aws_secret_key` }}"
]
于 2020-11-18T16:06:35.957 回答