我需要让Packer在AWS中构建映像。 Packer模板将存储在Github存储库中,并使用Jenkins进行部署。
我在哪里指定我的AWS访问和密钥?我不能将它们放在Github中的JSON模板中(那很不好):(
我是使用Jenkins服务器上的AWS cli配置访问密钥还是可以在Jenkins Packer插件中指定我的访问密钥?
答案 0 :(得分:0)
您最好的选择是使用具有实例角色的工作节点,该工作节点具有运行Packer的正确权限。第二好的方法是使用Jenkins secrets plugin来存储秘密,并将其设置为Packer构建作业中的环境变量。
答案 1 :(得分:0)
我将使用Jenkins Secrets插件进行调查。在此期间,我可以在“其他参数”字段下指定秘密密钥和访问密钥,如下所示。 Packer模板保留在Github中,詹金斯在作业运行时将其提取。出于安全考虑,未使用Github Pull插件。
答案 2 :(得分:0)
正如Rickard回答的那样,最好使用实例角色。我们实现的方式是,我们有一个名为“ PackerRole”的角色,该角色具有由打包程序使用的必要权限。在packer.json中,将该角色称为“ iam_instance_profile”:“ PackerRole”。
现在创建一个单独的角色“ JenkinsRole”(Jenkins节点将使用的任何适合您的名称),该角色具有一个内联策略来传递“ PackerRole”。
{ “ Sid”:“”, “效果”:“允许”, “ Action”:“ iam:passrole”, “资源”:“ arn:aws:iam :: 1234567:role / PackerEc2Role” }