我目前正在通过Packer构建AMI而没有任何问题,但我正在将AWS凭据烘焙到我的脚本中,这不是我想要的。阅读Packer文档,他们指定如果未找到凭据,则可以使用AWS角色。
我已经创建了策略和角色,但我不清楚如何告诉Packer使用此角色。我是否必须将ARN作为变量传递?
有什么想法吗?
答案 0 :(得分:3)
角色仅适用于在AWS 上运行的实例,并且只能在创建实例时应用角色(尽管您可以稍后更改分配给该角色的权限)。
因此,在这种情况下,如果您想使用角色进行AMI创建,则需要...
使用该实例然后,您可以创建AMI而无需指定任何凭据。
答案 1 :(得分:0)
如果您想从命令行(例如来自Jenkins)设置Packer在创建AMI期间使用的IAM角色,那么您可以使用变量来执行此操作,例如 在Packer脚本中使用以下内容:
"variables": {
"packer_profile": "packer",
...
},
"builders": [
{
"type": "amazon-ebs",
...
"iam_instance_profile": "{{user `packer_profile`}}",
...
}
],
"provisioners": [
...
]
因此,我们为packer_profile
变量提供默认“packer”值。然后,当从Jenkins的命令行调用Packer时,使用以下方法覆盖该默认变量值:
$ /path/to/packer -var packer_profile="MyNewProfileHere" ...
希望这有帮助!