在工作中,我们开发了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)。
你怎么看?我愿意接受任何建议或建议: - )
裸+非裸存储库似乎有点奇怪,而且如果某些提交无法正常工作,我也不确定回滚。