在多个服务器上进行 Git pull

标签 git github chef-infra githooks

我在 Github 上有一个 Web 应用程序,其服务器配置有 Hosted Chef 服务器和 Cloudformation。在过去几个小时在网络上搜索但没有运气之后,有人可以提供一些关于如何使用 Chef 将应用程序定向到多个服务器(全部冗余)的 git pull 的见解吗?本质上,应用程序主分支 pull 入每个服务器,其中 Chef 服务器知道服务器的数量。

任何指导将不胜感激。

最佳答案

如果您想“手动” pull 更改,您可能需要编写 knife ssh命令。您可以像这样使用它:

$ knife ssh SEARCH_QUERY SSH_COMMAND (options)

或者根据您的情况:

$ knife ssh "role:web" "cd my_app && git pull"

如果您想定期执行此操作,则需要创建 Recipe ,该 Recipe 将成为节点运行列表的一部分,然后在每个节点上触发 Chef 客户端:

$ knife ssh "role:web" "sudo chef-client"

或者通过将 Chef-client 作为守护进程运行来自动执行此操作。

$ sudo chef-client -d --interval SECONDS

关于在多个服务器上进行 Git pull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28337981/

相关文章:

git - 命令我在哪个git存储库中使用

git push 在 MacOS Sierra 10.12.5 中失败

ubuntu - 使用 Chef 和 Knife 引导一个 ubuntu ec2 实例

bash 资源似乎没有加载我的 .bashrc 文件

configuration-management - Cfengine 与 Chef

windows - 用于两次 GitHub 登录的 git-credential-winstore.exe?

git - 我应该在 Git 中存储什么?

git - 从分支中删除存储库名称前缀

git - 启动gitk时出错

git - Visual Studio 2015 源代码控制系统