如何将环境变量传递给AWS中的打包程序?

如何将环境变量传递给AWS中的打包程序?

我正在使用打包程序和 bash + salt 配置在 AWS 中构建自定义 AMI。但是,我需要能够将一些变量从本地环境传递到构建系统,而我在使用“ebp”(awsebcli 的“eb 平台”)构建时确实不知道该怎么做。

我的打包程序 json 包含如下内容:

"variables": {
    "platform_name": "{{env `AWS_EB_PLATFORM_NAME`}}",
    "platform_version": "{{env `AWS_EB_PLATFORM_VERSION`}}",
    "platform_arn": "{{env `AWS_EB_PLATFORM_ARN`}}",
    "build_app": "{{env `MY_BUILD_APP_NAME`}}",
    "build_env": "{{env `MY_BUILD_ENV_NAME`}}"
 },

然后:

"provisioners": [
    {
      "type": "file",
      "source": "builder",
      "destination": "/tmp/"
    },
    {
       "type": "shell",
      "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo {{ .Path }}",
      "scripts": [
         "builder/builder.sh"
      ],
      "environment_vars": [
          "AMI_BUILD_APP={{user `build_app`}}",
          "AMI_BUILD_ENV={{user `build_env`}}"

我知道如果我在本地运行 packer,那就足够了。但是,我只运行“ebp create”,packer 在 EC2 中的远程构建环境中运行。

我需要在哪里定义 MY_BUILD_APP_NAME 和 MY_BUILD_ENV_NAME,以便打包程序构建器环境可以使它们可供 bash 配置程序使用?

谢谢!

相关内容