我正在尝试与厨师一起进行MSI Web部署。我有大约400个具有相同配置的Web服务器。我们将在两个插槽中进行部署,每个插槽有200台服务器。
我将按照以下步骤进行新版本发布,
1)增加食谱版本。
2)将食谱上传到服务器。
3)将cookbook版本更新为角色和运行列表。
我将从cookbook中做很多步骤,比如安装7 msi,更新IIS设置,更新web.configure文件并添加注册表项。部署完成后,我们需要更新测试团队,以便他们可以开始测试。我的问题是如何确保在所有机器上成功完成部署?如何才能找到一台机器上没有安装一个MSI,或者一个web.config文件没有正确更新?
我的理解是厨师客户端每30分钟默认运行一次,所以我等待接下来的30分钟才能完成部署。有没有其他方式推(我不能使用推送工作,因为厨师从厨师高可用性服务器中删除推送工作支持)像工作站的刀厨师客户端?
没关系,如果有人分享他们在大规模Windows部署中使用厨师的经验。
提前致谢。
答案 0 :(得分:2)
我个人使用rundeck
来触发按需厨师运行。
根据你的描述,我会使用2个prod env,每个组一个,你将分别对每个组的菜谱版本限制。
对于报告,在此规模下考虑购买许可证以获得厨师管理和厨师报告,以便您有完整的概述,下一个选项是使用处理程序报告运行状态并发送邮件如果在跑步过程中出现错误。
答案 1 :(得分:1)
这里没有任何内容特定于Windows,因此您要问的是如何在高流失环境中使用Chef。我强烈建议您查看新的Policyfile工作流程,虽然它有一些明显的限制,但我们已经取得了很大的成功。我在https://yolover.poise.io/得到了一个指南。烹饪书/数据发布方面的另一个解决方案是将大量的可调参数(例如,要部署的东西的版本)从教程中移到某个地方的小型Web服务中,而不是从中读取您的食谱代码以获得他们的调整数据。至于推拉与拉动问题,大多数人最终都是混合动力。正如@Tensibai所提到的,RunDeck是一种流行的基于推送的选项。通常,您仍然会在更长的周期时间(可能是1或2小时)上保留后台间隔运行,以捕获配置偏差并使用推送系统进行更具体的部署任务。除了RunDeck,您还可以查看Fabric,Capistrano,MCollective和SaltStack(您可以使用其远程执行层而不需要CM的东西)。 Chef也有自己的Push Jobs项目,但我想我可以放心地说你现在应该避免它,它从来没有足够的社区动力真正去任何地方。