我环顾四周,试图找出一种方法来让 Packer 构建下载 ec2 ami 构建的私有(private)存储库,该存储库将用于在自动启动配置下启动新实例,并具有新创建的 ec2实例获取私有(private)存储库。
获取私有(private)存储库的最安全方法似乎是使用部署 key ,但我相信我必须手动将每个部署 key 添加到每个实例的存储库中......这会破坏自动化目的,除非我做错事了。
我想知道如何通过加 shell 器克隆私有(private)存储库,无论是通过 shell 脚本还是其他方式。我知道我可以使用 Chef,但我认为当我唯一想做的就是克隆 github 存储库时,我不应该安装另一个依赖项。
我是否必须编写使用 https github 克隆 URL 的发送/期望类型的脚本?
感谢任何和所有帮助。
最佳答案
有一个使用 ssh-agent 的“解决方法”。我说解决方法是因为它不是特别优雅。最好有 Puppet 模块的这一部分(也许已经有了)。
这个想法是,您需要为每个私有(private) Github 存储库生成一对公钥/私钥。然后,将公钥添加为 Github 项目设置(设置/部署 key )中的部署 key 。 key 对的存储位置取决于您。
现在在 Packer 中,您可以使用 Shell 配置程序并按照以下方式执行某些操作:
#!/usr/bin/env bash
ssh-keyscan github.com >> /home/ec2-user/.ssh/known_hosts
eval `ssh-agent`
ssh-agent bash -c \
'ssh-add /home/ec2-user/.ssh/[privateKey]; git clone <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="80e7e9f4c0e7e9f4e8f5e2aee3efed" rel="noreferrer noopener nofollow">[email protected]</a>:[account]/project.git'
这种方法的优点是您可以轻松克隆多个私有(private)存储库。
有几种方法可以在 EC2 盒子上上传 key 对,可以使用 file provisioner 、厨师或木偶。
关于bash - Packer - 用于克隆私有(private)存储库的 Shell 脚本配置程序 - 自动启动 EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26345238/