我一直在使用 puppet 来部署基础设施,而且我所做的大部分工作都是与 Web 2.0 公司合作的,这些公司热衷于为他们的 Web 应用程序进行测试驱动的开发。这里有没有人使用测试驱动的方法来开发他们的服务器配置?你使用什么工具来做到这一点?你的测试有多深?
我使用过像 puppet 这样的工具来管理单个系统,通常取得了很高的成功。puppet 失败的地方在于它不擅长管理单个服务器之外的依赖项。
例如,在 MySQL 服务器上,我将 puppet 配置为执行以下操作:
在这组步骤中,解决了许多依赖项 - 例如,除非我安装了软件包,否则我无法启动数据库服务,除非正确配置了 apt 存储库,否则我无法启动。
这个 MySQL 服务器是 master->master 复制设置中的一个盒子。在理想的世界中,puppet(或其他类似工具)会让我表示服务器 B 需要等到服务器 A 可用,然后尝试与其建立复制关系的事实。
这里有很多文字 - 基本上我要问的是:有没有像 puppet 这样的工具可以像这样管理机器间的依赖关系?