gpt4 book ai didi

具有多个不同 Remote 的 git 工作流程

转载 作者:太空狗 更新时间:2023-10-29 14:24:01 24 4
gpt4 key购买 nike

在工作中,我们开发了 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/)

...

开发人员和主服务器位于办公室,而裸 Remote 和 Remote 位于客户处。

我已经设法使用 post receive hook 自动推送到远程。

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

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

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

bare + non bare 存储库看起来有点奇怪,而且如果某些提交没有按预期工作,我也不确定是否回滚。

最佳答案

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

关于具有多个不同 Remote 的 git 工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16407389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com