在启动AWS EC2实例时使用cloud-init克隆git repo

问题描述 投票:2回答:1

是否有最佳实践或标准化方法可以在启动时将git存储库(当前使用CodeCommit以使权限更容易)克隆到EC2实例中?

我正在使用带有cloud-init脚本的userdata部分,该脚本具有:

runcmd:
- git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/myrepo

但我的cloud-init-output.log文件显示git命令无法连接到服务器。当我尝试在cloud-init脚本之外执行此操作时,我得到:

The config profile (default) could not be found

作为错误消息。所以我假设运行userdata init脚本的用户没有设置aws cli配置文件,因此无法运行git clone?这样做的正确方法是什么?我的EC2实例确实有一个允许它从CodeCommit读取的角色,所以我不需要SSH密钥。

git amazon-web-services amazon-ec2 cloud-init
1个回答
1
投票

只是为了添加一个可能有用的注释,AWS文档建议使用以下git配置:

git config --global credential.helper '!aws codecommit credential-helper $@' git config --global credential.UseHttpPath true

我发现使用--system for git-config命令比使用--global好得多,后者需要设置$ HOME(不是BTW)。这将在系统范围内设置配置,但是..因此任何用户都可以使用EC2实例假定角色的权限从CodeCommit repo运行pull。它可能不是你的优点或需要,但它在我的环境中运行良好(使用codecommit来提取配置信息)。

© www.soinside.com 2019 - 2024. All rights reserved.