【问题标题】:Using cloud-init to clone git repo when launching AWS EC2 instance启动 AWS EC2 实例时使用 cloud-init 克隆 git repo
【发布时间】:2017-12-02 09:29:50
【问题描述】:

是否有最佳实践或标准化方法可以在启动时将 git 存储库(当前使用 CloudCommit 以简化权限)克隆到 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】:

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

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

    我发现对 git-config 命令使用 --system 比使用 --global 效果要好得多,后者需要设置 $HOME(不是,顺便说一句)。但是,这将在系统范围内设置配置。因此,任何用户都可以使用 EC2 实例代入角色的权限从 CodeCommit 存储库运行 pull。它可能不是你想要的或需要的,但它在我的情况下效果很好(使用 codecommit 来提取配置信息)。

    【讨论】:

      猜你喜欢
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 2015-03-29
      • 2022-10-16
      • 1970-01-01
      • 2012-10-08
      相关资源
      最近更新 更多