Packer 没有看到我的环境变量?

标签 packer hashicorp-packer

我在我的环境中定义了 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/

相关文章:

linux - 打包机构建中的 Vagrant 配置

vagrant - Packer + Vagrant - 从 ISO 创建 AMI

ubuntu - 如何找到 Packer 的引导命令?

amazon-web-services - 如何在使用加壳器创建 AMI 期间调整根文件系统的大小?

provisioning - 如何在 HCL 格式模板中使用一个配置程序进行多个 Packer 构建?

amazon-web-services - 适用于 ubuntu 22.04 的打包器构建器 source_ami_filter

vagrant - 带有 vagrant 后处理器 "ovf file couldn' 的加壳器找不到”