具有多个不同遥控器的git工作流程

时间:2013-05-06 21:14:32

标签: git workflow githooks

在工作中,我们开发了Nagios的脚本和扩展。我们为约30名客户提供监督服务(每个客户都有一台Nagios服务器)。有些客户有特定的配置(用于检查非常具体的新模块,但是要包含在主线中......或者不包括在内)。

目前,Nagios服务器版本差异很大(有些服务器已有2年历史,并且没有计划更新)。

我想知道切换到git以自动部署,并使用持续集成来确保我们不会破坏客户端的Nagios上的内容。

这是我的想法:

                        1 single server
                                    \___________________________________________________
                                     |                                                 |
 dev1 -----\               /---------|---> remote1 (bare) ----> remote1 (nagios etc/)  |
            \             /          |_________________________________________________|
             \           /
              \         /
 dev2 ---- main server (bare) -----------> remote2 (bare) ----> remote2 (nagios etc/)

 ...

开发人员和主服务器位于办公室,当裸机遥控器+遥控器位于客户的位置时。

我已经设法使用post receive hook自动推送到遥控器。

从remote1(裸)到remote1,我可以使用另一个可以cd到remote1的钩子和git pull。然后我可以通过简单的Nagios命令测试配置,并在出现问题时恢复到先前的提交。

关于遥控器之间的文件是不同的,我现在可以暂时忽略它们或者在主服务器上使用不同的分支(因此我可以将customer1分支推送到remote1)。

你怎么看?我愿意接受任何建议或建议: - )

裸+非裸存储库似乎有点奇怪,而且如果某些提交无法正常工作,我也不确定回滚。

1 个答案:

答案 0 :(得分:0)

虽然可以使用git作为部署工具,但这并不是它的预期功能。也许您应该考虑cfengineCapistrano