如何将 AWS 角色与 Packer 结合使用来创建 AMI

Dav*_*llo 6 packer amazon-web-services

我目前正在通过 Packer 构建 AMI,没有问题,但我正在将 AWS 凭证放入我的脚本中,这不是我想要的。阅读 Packer 文档时,他们指定如果没有找到凭证,它可以使用 AWS 角色。

我已经创建了策略和角色,但我不清楚如何告诉 Packer 使用这个角色。我是否必须将 ARN 作为变量传入?

有什么想法吗?

Cas*_*lia 4

如果您想从命令行(例如从 Jenkins)设置 Packer 在创建 AMI 期间使用的 IAM 角色,那么您可以使用变量来执行此操作,例如在 Packer 脚本中使用以下内容:

"variables": {
  "packer_profile": "packer",
  ...
},
"builders": [
  {
    "type": "amazon-ebs",
    ...
    "iam_instance_profile": "{{user `packer_profile`}}",
    ...
  }
],
"provisioners": [
  ...
]
Run Code Online (Sandbox Code Playgroud)

因此,我们为变量提供默认的“packer”值packer_profile。然后,当从 Jenkins 中的命令行调用 Packer 时,您可以使用以下命令覆盖该默认变量值:

$ /path/to/packer -var packer_profile="MyNewProfileHere" ...
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!