Git 拉取多台服务器
Git pull on multiple servers
我在 Github 上有一个 Web 应用程序,其服务器配备了 Hosted Chef 服务器和 Cloudformation。在网上搜索了最后几个小时但没有成功后,有人可以提供一些见解如何使用 Chef 对指向多个服务器(全部冗余)的应用程序进行 git 拉取。本质上,apps master 分支被拉入每个服务器,其中服务器的数量由 chef server 知道。
任何指导将不胜感激。
我不清楚你想做什么,所以我会回答两个问题:
- 将更改推送到 git 集线器后,在多个服务器上提取更改
- 从 git hub
的不同服务器中提取更改
多个遥控器
如果您需要 pull/push 代码到多个存储库,您只需将多个 remotes
添加到您的 git 存储库。
为了将更改从 git 集线器拉到多个服务器,请阅读 git集线器 webhooks and how to configure your server to support it. you will to use ngrok
希望能解决您的问题。
如果您想要"manually" 提取更改,您可能需要编写一个knife ssh 命令。您可以像这样使用它:
$ knife ssh SEARCH_QUERY SSH_COMMAND (options)
或者您的情况:
$ knife ssh "role:web" "cd my_app && git pull"
如果你想定期这样做,你需要创建食谱,这将成为你的节点 运行 列表的一部分,然后在每个节点上触发厨师客户端:
$ knife ssh "role:web" "sudo chef-client"
或者由 运行ning chef-client 作为守护进程自动完成。
$ sudo chef-client -d --interval SECONDS
我在想你可以使用 chef deploy 资源。关于部署资源的唯一棘手的部分是向 git.
进行身份验证所需的 ssh 包装器
那我会做:
knife ssh 'name:somepattern' 'chef-client'
我在 Github 上有一个 Web 应用程序,其服务器配备了 Hosted Chef 服务器和 Cloudformation。在网上搜索了最后几个小时但没有成功后,有人可以提供一些见解如何使用 Chef 对指向多个服务器(全部冗余)的应用程序进行 git 拉取。本质上,apps master 分支被拉入每个服务器,其中服务器的数量由 chef server 知道。
任何指导将不胜感激。
我不清楚你想做什么,所以我会回答两个问题:
- 将更改推送到 git 集线器后,在多个服务器上提取更改
- 从 git hub 的不同服务器中提取更改
多个遥控器
如果您需要 pull/push 代码到多个存储库,您只需将多个
remotes
添加到您的 git 存储库。为了将更改从 git 集线器拉到多个服务器,请阅读 git集线器 webhooks and how to configure your server to support it. you will to use ngrok
希望能解决您的问题。
如果您想要"manually" 提取更改,您可能需要编写一个knife ssh 命令。您可以像这样使用它:
$ knife ssh SEARCH_QUERY SSH_COMMAND (options)
或者您的情况:
$ knife ssh "role:web" "cd my_app && git pull"
如果你想定期这样做,你需要创建食谱,这将成为你的节点 运行 列表的一部分,然后在每个节点上触发厨师客户端:
$ knife ssh "role:web" "sudo chef-client"
或者由 运行ning chef-client 作为守护进程自动完成。
$ sudo chef-client -d --interval SECONDS
我在想你可以使用 chef deploy 资源。关于部署资源的唯一棘手的部分是向 git.
进行身份验证所需的 ssh 包装器那我会做:
knife ssh 'name:somepattern' 'chef-client'