我正在尝试和chef一起做MSI web部署。我有大约400个相同配置的web服务器。我们将在两个插槽中进行部署,每个插槽有200台服务器。
对于新版本,我将遵循以下步骤。
1)增加食谱版本。
2)将食谱上传到服务器。
3)将cookbook版本更新为role和run列表。
我将从食谱中做很多步骤,如安装7MSI,更新IIS设置,更新web.configure文件和添加注册表项。一旦部署完成,我们需要更新测试团队,以便他们可以开始测试。我的问题是如何确保在所有机器上成功完成部署?如果一台机器上没有安装一个MSI,或者一个web.config文件没有正确更新,我怎么知道?
我的理解是chef客户端将默认每30分钟运行一次,因此我必须等待下一个30分钟才能完成部署。有没有其他方式使用push (我不能使用push job,因为chef已经从chef High Availability servers中删除了push job支持),比如工作站上的刀厨客户端?
如果有人分享他们在大规模windows部署中使用chef的经验,那就好了。
提前谢谢。
发布于 2016-10-06 20:39:21
我个人使用rundeck来触发按需厨师运行。
根据您的描述,我将使用2个prod env,每个组一个,其中您将分别突破每个组的食谱版本限制。
对于报告,考虑购买许可来获取chef-manage和chef- report,这样您就会有一个完整的概述,下一个选项是使用处理程序报告运行状态,如果在运行过程中出现错误,则发送邮件。
发布于 2016-10-06 20:58:49
这里没有什么是特定于Windows的,所以您更多地是在问如何在高流失率的环境中使用Chef。我强烈推荐使用新的Policyfile工作流程,尽管它有一些明显的局限性,但我们已经取得了很大的成功。我在https://yolover.poise.io/有个导游。在食谱/数据发布方面的另一个解决方案是移动大量的可调参数(例如,要部署的东西的版本)从食谱中走出来,放到某个地方的小web服务中,而不是让您的配方代码从中读取,以获得它们的调优数据。至于推与拉的问题,大多数人最终都选择了混合动力车。正如@Tensibai提到的,RunDeck是一个流行的基于推送的选项。通常,您仍然会让后台间隔运行较长的周期(可能是1到2个小时),以捕获配置漂移,并使用推送系统执行更具体的部署任务。除了RunDeck之外,您还可以查看Fabric、Capistrano、MCollective和SaltStack (您可以在不使用CM的情况下使用它的远程执行层)。Chef也有自己的Push Jobs项目,但我想我可以放心地说,你应该在这一点上避免它,因为它从来没有获得足够的社区动力来真正走向任何地方。
https://stackoverflow.com/questions/39894502
复制相似问题