我在 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/