【问题标题】:How to automate cloning private GitHub with Chef如何使用 Chef 自动克隆私有 GitHub
【发布时间】:2014-12-12 12:32:13
【问题描述】:

我每天都必须启动 EC2 实例(或任何其他具有公共 IP 的服务器)。我正在使用 Chef 进行配置、创建虚拟主机、上传数据库等。

我需要从 GitHub 克隆几个私有存储库。最好的方法是什么?

  1. 我可以手动生成一个 ssh 密钥,并为我需要的每个 GitHub 存储库添加它,然后运行脚本 - 但工作量很大。
  2. 我可以选择git clone git://user:password@github.com/*****/*****.git,但显然我不想这样存储我的密码
  3. 还有什么?

有什么办法:

  • 将私钥(或密码?)存储在食谱/食谱中或
  • 生成新密钥,并通过 API 与 GitHub 同步(但这会导致我的 GitHub 帐户中有数百个密钥)

【问题讨论】:

    标签: github ssh amazon-ec2 chef-infra


    【解决方案1】:

    将您的密钥存储在 S3 存储桶中并使用 IAM 角色/策略来控制访问。 Citadel 使这很容易与 Chef 集成。有关其他选项的摘要,请参阅 my post about secrets management with Chef

    【讨论】:

      【解决方案2】:

      无耻的插头:deploy_key 食谱。

      我根据这个精确的用例创建了这本食谱。它管理 GitHub、BitBucket 和 GitLab 中部署密钥的整个生命周期。它在本地创建一个密钥(因此它永远不必通过网络发送),将其作为 deploy_key 添加到存储库(只读,因此这些密钥永远不会将更改推送到存储库),并且可以用于删除密钥文件并从 repo 中删除密钥。

      所有操作都是幂等的,所以如果您担心您的存储库会被过多的 deploy_keys 淹没,您可以在使用后从存储库中删除密钥(通过 Chef,:remove 操作),或者执行定期清理任务删除所有 deploy_keys。下次 Chef 运行时,它会注意到 key 不存在并重新添加它。

      您需要保护的唯一秘密是存储库的凭据,可以像保护其他秘密一样保护它。

      【讨论】:

        猜你喜欢
        • 2021-09-04
        • 2015-07-19
        • 2020-12-11
        • 2021-09-16
        • 2023-01-31
        • 1970-01-01
        • 2022-08-08
        • 2012-03-29
        • 2022-12-20
        相关资源
        最近更新 更多