【问题标题】:how to deploy a private github repo to a GCE cluster如何将私有 github 存储库部署到 GCE 集群
【发布时间】:2019-09-21 03:14:38
【问题描述】:

我正在尝试将我的应用部署到谷歌计算引擎集群。我按照example 设置了集群并为每个虚拟机实例创建了一个启动脚本。

虽然示例启动脚本不使用 github。

我想做的是让启动脚本从我的私人 github 存储库中检查项目(如果它不存在的话)。

我创建了一个部署 ssh 密钥,并将其添加到我的 git repo 的“部署密钥”中。

我遇到的问题是:

  • 如何将此部署密钥分发到集群中的每台机器?
  • 我应该添加哪些命令来启动脚本,以便 git clone 可以在没有任何提示的情况下工作?

【问题讨论】:

    标签: github google-compute-engine ssh-keys


    【解决方案1】:

    阅读此adding-removing-ssh-keys 以从 Linux 实例设置项目范围的公共 SSH 密钥。

    首先,要允许项目范围的公共 SSH 密钥,请将元数据值设置为 FALSE

    gcloud compute instances add-metadata [INSTANCE_NAME] --metadata block-project-ssh-keys=FALSE
    

    在命令提示符下,使用 compute instances add-metadata 命令设置仅限实例的 ssh-key 值。包括 --metadata-from-file 标志并指定您创建的公钥文件列表的路径。

    gcloud compute instances add-metadata [INSTANCE_NAME] --metadata-from-file ssh-keys=[LIST_PATH]
    

    第二个问题:Non interactive git clone (ssh fingerprint prompt)

    【讨论】:

    • 谢谢。我看到一条警告“检测到私钥。请注意,只应添加公钥”。我为我的 github 存储库创建了一个“部署密钥”。我需要将该私钥添加到集群中的每台机器上。
    • 哦,我误解了你的问题。如果您想将应用程序部署到集群中的每台机器上,最好使用 Jenkins 之类的工具通过 scp 将您的代码部署到每台机器上。所以你只需要一台机器有你的私钥。另一种方法是您希望将私钥分配给每台机器,以便它们可以从 github(不好)。但是你可以尝试使用 sensible 来做到这一点。
    • 谢谢。我现在正在将我的(加密的)私钥部署到每台机器上。它有效,但感觉不是一个好的解决方案。我假设,也许错误地认为这是一个已解决的问题。也许不吧。但是,直接从私有 github 存储库部署 google 计算引擎集群肯定不是一件奇怪的事情。
    猜你喜欢
    • 1970-01-01
    • 2012-09-05
    • 2017-08-29
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    相关资源
    最近更新 更多