【问题标题】:Configuration Management for Windows [closed]Windows 的配置管理 [关闭]
【发布时间】:2014-02-19 01:00:18
【问题描述】:

有没有像 *nix world 那样的 windows 工具?我正在寻找类似ChefPuppet 的东西。

我找到了cfEngine,但它看起来仍然非常以 *nix 为中心。理想情况下,它应该是开源的,并且是命令行驱动的。

我们的想法是将自动化基础架构与基于 Windows 的服务器组合在一起。我们目前的 IT 部门不允许使用非 Windows 服务器。

【问题讨论】:

  • 更新:Chef 和 Puppet 现在都有 Windows 模块,并且 Inedo Otter (inedo.com/otter) 专为 Windows 构建并与 PowerShell/DSC 集成。

标签: windows configuration-management chef-infra puppet cfengine


【解决方案1】:

Opscode 在 Windows 上支持 Chef。虽然我们没有为我们的任何基础架构运行 Windows,但我们确实有不断改进我们的 Windows 支持的开发人员。我们还获得了社区贡献,而 Chef 的大部分早期 Windows 功能都是由社区贡献的。

重要Opscode now provides an MSI installer for Chef on Windows。这使得在 Windows 上安装 Chef 和 Ruby 变得前所未有的容易。

虽然我们的团队有很多 Unix/Linux 背景,但我们的意图是 Windows 被视为一等公民。 2012 年对于 Chef 和 Windows 来说将是重要的一年。请留意Opscode blog 的公告。

以下Chef Resources 在 Windows 上工作:

Environment Resource: sets windows environment variables
User
Group
Mount
File
Gem Package
Remote File
Cookbook File
Template
Service
Ruby Block
Execute

也就是说,这些是 Chef 本身包含的资源。由于 Chef 可以使用说明书进行扩展,因此可以通过各种 Windows 特定说明书添加更多资源。继续阅读以了解更多信息。

您可以在此处开始使用 Chef 和 Windows:

最初,Doug MacEchern 写了一些食谱来做一些事情来自动化窗口。

Chef Wiki 上提供了此信息以及更多信息:

更新

以下食谱将新资源添加到 Chef 以管理 Windows:

这是对 Doug 上面链接的存储库中优秀资源的更新/重写。文档可在Chef Wiki 上获得。

以下食谱部署了 PowerShell 并提供了直接在 Chef Recipes 中运行 PowerShell 命令/脚本的资源:

在说明书 tarball 中包含的 README.md 中提供了文档。

已添加用于安装 7-zip、管理 IISSQL Server 的其他说明书。我们的“database”食谱已扩展为用于管理 SQL Server 数据库和用户的资源/提供程序(使用tds ruby​​gem)。

knife 的 knife-windows 插件添加了与 Windows 系统交互的功能,以便为它们提供 Chef 安装。

更新:我们现在为所有常见的文件/目录嫌疑人添加了File ACL support for Windows to Chef

【讨论】:

  • @sumek 取决于你的意思? Windows 不支持?
  • 是的,Windows 不支持哪些厨师功能?
  • @sumek Chef 的核心功能是管理节点上的资源,它依赖于特定操作系统的提供者来管理特定种类的资源。 Windows 上缺少的提供程序在 Windows 上可能没有直接并行,但由于 Chef 是可扩展的,因此可以通过说明书添加“支持”,类似于 Powershell 示例。最近发布的新“Windows”食谱也增加了 Windows 注册表和“包”管理。
  • 注意:我已经更新了答案以包含指向 Chef Wiki 上文件 acl 信息的链接。
  • 感谢发布链接
【解决方案2】:

Cfengine Nova 多年来一直为 Windows 提供稳定的原生支持(即不需要 Cygwin)。

在 Unix 上可能的一切(例如运行命令、文件复制、文件编辑等)也可以在 Windows 上完成,除了 Windows 特定的功能,如

  • 注册表管理
  • 文件 ACL 权限
  • Windows 服务管理
  • 事件日志支持
  • 高级操作系统发现(版本、架构、服务包、网络、域等)

有关简短介绍,请参阅 Nova 补充手册的第 11 节:http://cfengine.com/files/Nova_Supplement.pdf

【讨论】:

  • 但是它管理 IIS 吗?我主要需要一个管理IIS服务器的工具。
  • 它可以“运行命令”所以,是的
【解决方案3】:

我一直在寻找完全相同的东西。

我遇到了Windows PowerShell Desired State Configuration,它声称可以执行许多您希望使用 Chef/Puppet 执行的 CM 任务。

我不会对此发表任何意见,因为我还在早期评估它 - 但如果您仍在寻找某些东西,请试一试。

【讨论】:

    【解决方案4】:

    在这里有很多经验,我认为这真的取决于您需要在给定的盒子上管理什么。找到您最常见的用例并提出更具体的问题:管理它的最佳工具是什么。像 IIS 这样的事情可能很棘手(至少在较旧的 Windows 版本上),并且为 CM 工具寻找模块来管理诸如 IIS 设置和应用程序池之类的事情可能会被击中和错过 - 特别是在涉及高级设置时(工作线程回收弹簧想到)

    不过,Puppet 为更基本的 IIS 设置打造了模块,这在很大程度上对我有用 - 我真的很喜欢这里的声明式格式 - 特别是当您管理大量 IIS 服务器时

    Windows 和配置管理的主要问题之一是缺乏适当的包管理解决方案 - 这里真正派上用场的是一种叫做 Chocolatey 的东西(参见 http://chocolatey.org/),有一个插件可以将其用作傀儡中的提供者 - 使整个管理过程特别容易。但是我想这也可以与其他 CM 工具集成 - 但对在 Windows 环境中自动安装软件有很大帮助

    尽管值得说明的是,无论你最终使用什么,你都必须花一些时间找出一些奇怪的错误 - 窗口和脚本/自动化并不是最好的。

    【讨论】:

      【解决方案5】:

      根据我的经验,我很高兴使用这样的工具集:

      1. 使用 powershell 管理 windows 配置。如果只有windows server,可以远程执行ps脚本。

      2. 如果您愿意,建议使用 Puppet 或 Chef 将您的 powershell 脚本分发到客户端。

      3. 如果您愿意,建议使用 cygwin + (windows sshd) + crond 来管理在 windows 中运行的类似 shell 的脚本。

      【讨论】:

        【解决方案6】:

        如果你可以使用Microsoft System Center,我认为它会更好。

        它是 Microsoft 的解决方案,用于管理从桌面到服务器等所有 Microsoft 基础产品。应该试一试……

        How to Deploy Applications in Configuration Manager

        Deploying Software and Operating Systems in System Center 2012

        【讨论】:

          【解决方案7】:

          除非您是了解 ruby​​ 的软件开发人员,否则我不推荐 Chef。 Chef 专为想要管理 IT 基础架构的软件开发人员而设计。不适用于最终管理它的 SysOps 人员。它试图将 IT 基础架构视为与其实际工作方式相反的代码,而更像是数据。

          Puppet 对 SysOps 人员更友好,恕我直言,但仍然可能很复杂。

          好消息是还有其他选择。对于 Windows 来说不太好,但像 Puppet 这样的项目确实很好地支持它。

          【讨论】:

          • DevOps 将是合适的术语(相对于 SysOps 或“管理 IT 基础设施的开发人员”。)本质上,对于那些拥有您的传统开发人员和支持他们的传统管理员之间需要更紧密的协同作用,以促进从开发到生产的更动态、完全自动化的部署。
          • 对高度主观的回答投反对票。
          • @Tom:我一直在从 DevOps 的角度研究 Windows CM 工具(即我是负责发布管理的开发人员)。从我在其他地方读到的关于 Chef 和 Puppet 的内容来看,fred 非常准确地描述了 Chef 的潜在缺点——它需要用户在 Ruby 中编写配置脚本,而 Puppet 中的配置更直接。事实上,我在其他地方读过两篇与 fred 提出相同主张的博客文章:Chef 更面向 DevOps,而 Puppet 更适合 ITPros。我从来没有使用过,所以没有个人经验。
          • @SimonTewsi:这是一个公平的观点,但答案对 Chef 的设计意图做出了没有事实支持的断言。如果答案引用了一些描述可以解释这种感觉的特征和特征的文章,那会更可口。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-20
          • 2014-12-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多