【问题标题】:Chef for Large scale web Deployment in windows在 Windows 中进行大规模 Web 部署的厨师
【发布时间】:2016-10-06 11:14:32
【问题描述】:

我正在尝试与 Chef 一起进行 MSI Web 部署。我有大约 400 个具有相同配置的 Web 服务器。我们将在两个插槽中进行部署,每个插槽有 200 台服务器。

我将按照以下步骤发布新版本,

1) 增加食谱版本。

2) 将食谱上传到服务器。

3) 将说明书版本更新为角色和运行列表。

我将从说明书中执行很多步骤,例如安装 7 msi、更新 IIS 设置、更新 web.configure 文件和添加注册表项。部署完成后,我们需要更新测试团队,以便他们可以开始测试。我的问题是如何确保在所有机器上成功完成部署?我如何才能知道一台机器上没有安装一个 MSI 或者一个 web.config 文件没有正确更新?

我的理解是厨师客户端默认每 30 分钟运行一次,所以我等待接下来的 30 分钟完成部署。是否有其他推送方式(我不能使用推送作业,因为厨师已从厨师高可用性服务器中删除推送作业支持),例如工作站中的刀厨师客户端?

如果有人分享他们在大规模 Windows 部署中使用 Chef 的经验,那就太好了。

提前致谢。

【问题讨论】:

    标签: windows iis deployment chef-infra


    【解决方案1】:

    我个人使用rundeck 来触发按需厨师运行。

    根据您的描述,我将使用 2 个 prod env,每个组一个,您将分别提高每个组的食谱版本限制。

    对于这种规模的报告,请考虑购买获得 chef-manage 和 chef-reporting 的许可证,以便您有一个完整的概览,下一个选项是使用处理程序报告运行状态并发送邮件(如果有)在运行过程中出现错误。

    【讨论】:

    • 感谢天思白的想法。我会尝试使用这些选项。
    • 是的,恐怕这主要是基于意见的:/ rundeck 不是唯一的选择,因为它不是固定在环境中......它可以通过带有版本的“组”包装食谱来完成依赖关系等。事实上,您的问题中有很多东西。也许可以在discourse.chef.io 上更好地讨论
    【解决方案2】:

    这里没有特定于 Windows 的内容,因此您更多的是询问如何在高流失率环境中使用 Chef。我强烈建议您查看新的 Policyfile 工作流程,尽管它有一些明显的限制,但我们已经取得了很大的成功。我在https://yolover.poise.io/ 有一个指南。食谱/数据发布方面的另一个解决方案是将许多可调参数(例如要部署的东西的版本)从食谱中移出并移到某个地方的小型 Web 服务中,而不是从中读取您的食谱代码以获取它们的调优数据。至于推动与拉动的问题,大多数人最终都会选择混合动力。正如@Tensibai 提到的,RunDeck 是一种流行的基于推送的选项。通常,您仍然会在较长的周期时间(可能 1 或 2 小时)上运行后台间隔,以捕捉配置漂移并使用推送系统执行更具体的部署任务。除了 RunDeck,您还可以查看 Fabric、Capistrano、MCollective 和 SaltStack(您可以在没有 CM 的情况下使用它的远程执行层)。 Chef 也有自己的 Push Jobs 项目,但我认为我可以肯定地说你现在应该避免它,它从来没有获得足够的社区动力来真正去任何地方。

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 2011-10-17
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多