2

我在 CentOS6.2 机器的 OpenStack 集群上运行一个项目。项目由大约 10 个 git repos 组成。一个服务的回购。并且服务基于某些角色在 20 个不同的节点上运行。因此,我们可以在服务和角色之间进行某种映射。如果您手动进行,通过集群交付更改是一件很痛苦的事情。目前,我们正在使用 git pull 并结合每个节点上的一些配置更改。涉及人为因素,因此我不想由于手动错误而使集群脱机。

我正在寻找一种解决方案,以在更新源(运行数据库迁移或配置文件更新)后发布配置内容,从而向集群提供更改。有什么好的解决方案吗?

更新:下面的项目似乎很合适。有这些实践经验吗?

4

3 回答 3

1

我们使用 Springloops 来管理我们的部署。它允许我们为每个存储库的每个分支配置不同的服务器。您只需推送到中央存储库并从那里管理部署。部署可以是自动的或手动的。

对执行自定义回调有一些支持,因此您可以在集群中的某处(可以基于每个项目)设置一个 URL 端点,该端点接受已进行推送的通知,这可以触发您的自定义脚本。

这很有效,因为它从服务器中承担了源代码控制管理的责任,如果需要对新服务器进行新部署,很容易在 Springloops 中添加新服务器并推送到它,而不必克隆 git 存储库在每台新服务器上并配置一些 cron 或触发任务来更新 repo。

命令行工具和第三方托管服务还有许多其他可能的组合,但我们已经尝试了一些,Springloops 对于管理我们目前正在处理的数十个项目的部署来说是完全可以接受的。

值得研究。

于 2012-03-24T07:29:38.370 回答
0

似乎在您正在处理的规模上,您可能能够很好地利用诸如chefor之类的东西puppet

于 2012-03-24T07:23:36.720 回答
0

这些项目似乎更适合:

我目前正在考虑一个Fabric脚本Dozzerd作为配置存储\主选举机制。

于 2012-03-24T18:46:18.073 回答