如何在我的Ubuntu服务器之间同步configuration? 如何在configuration更改时自动重新启动服务?

首先,我对整个Linux的事情都比较陌生…所以要温柔一点。

设置:
我有几台Ubuntu服务器…一对运行绑定的DNS服务器,以及一对运行Nginx和HAProxy的服务器,以将请求负载平衡到一些后端服务器。

现在,绑定服务器几乎通过区域传输保持最新状态,尽pipe在绑定中有一些设置我想在它们之间共享。 但是,负载均衡器服务器是完全独立的,这是非常糟糕的。 这是不好的,因为当我想进行configuration更改时,我必须独立更改两台服务器上的configuration。 这当然会打开服务器的错误,我不小心configuration了两台服务器,这将不可避免地变成“难以debugging”的错误和错误。

这个问题
所以我的问题是…如何在服务器之间同步configuration更改,以及在configuration更改时自动重新启动服务?

你可能想看看Puppet或CFengine 。 两者都提供了保持configuration同步的方法,并在同步之后执行命令。

尽pipe他们在不同的哲学下运作,但我不能说哪个最适合你,你必须阅读和testing哪些最适合你的环境和工作方式。

理论上讲,你可以根据需要来回configurationrsync(比特),但是真正的混乱,真的很快。 相反,你应该使用真正的configurationpipe理系统,如Puppet或Chef来维护你的configuration(并在configuration改变时重新启动)。

我们即将发布我们的托pipeconfigurationpipe理服务,这是解决您的问题的另一种方式,因为它集中了一个地方的configuration,并且不需要同步化。 如果你想要,你可以在这里注册一个testing版http://woot.configchief.com/