Opscode支持在Windows上使用Chef。虽然我们的基础架构没有运行在Windows上,但我们有不断改进Windows支持的开发人员。我们还得到了社区的贡献,并且Chef早期阶段的大多数Windows功能都是由社区贡献的。
重要提示: Opscode现在提供了适用于Windows的Chef MSI安装程序。这使得在Windows上安装Chef和Ruby比以往任何时候都更加容易。
虽然我们的团队具有大量的Unix/Linux背景,但我们的意图是将Windows视为一等公民。 2012年将是Chef与Windows合作的重大一年。请关注Opscode博客上的公告。
以下Chef资源可在Windows上使用:
Environment Resource: sets windows environment variables
User
Group
Mount
File
Gem Package
Remote File
Cookbook File
Template
Service
Ruby Block
Execute
也就是说,这些资源是包含在Chef内部的。由于Chef可以通过cookbooks进行扩展,因此还可以通过各种特定于Windows的cookbook添加更多资源。继续阅读以获取更多信息。
您可以在此处开始使用Chef和Windows:
最初,Doug MacEchern编写了一些cookbooks来自动化执行许多操作。
此信息以及更多信息都可在Chef Wiki上找到:
更新
以下cookbook向Chef添加了新资源以管理Windows:
它是Doug存储库中链接的精美资源的更新/重写。文档可在Chef Wiki上找到。
以下cookbook部署PowerShell并提供资源以直接在Chef Recipes中运行PowerShell命令/脚本:
文档可在包含在cookbook tarball中的README.md中找到。
新增了一些用于安装7-zip,管理IIS和SQL Server的附加食谱。我们的"database"食谱已通过使用tds
rubygem扩展了一个用于管理SQL Server数据库和用户的资源/提供者。
knife-windows是针对knife而设计的插件,为与Windows系统交互并使用Chef进行安装提供了功能。
更新:我们现在为所有常见的文件/目录提供了支持Windows文件ACL的Chef更新。
基于我的经验,我认为这取决于你需要在给定的服务器上管理什么。找到最常见的用例,并就以下问题提出更具体的问题:用于管理的最佳工具是什么。像 IIS 这样的东西可能有点棘手(至少在较旧的 windows 构建中),并且找到用于管理 IIS 设置和应用程序池之类的 CM 工具的模块可能会时不时地失败 - 特别是当涉及到高级设置时(例如工作线程回收)。
然而,对于更基本的 IIS 设置,Puppet 有 forge 模块,这在很大程度上对我有用 - 尤其是如果您正在管理大量的 IIS 服务器,则我真的很喜欢这种声明性格式。
此外,Windows 和配置管理的主要问题之一是缺乏适当的软件包管理解决方案 - 在这里实际上非常有用的东西称为 Chocolatey(请参见 http://chocolatey.org/)- 有一个插件可将其用作 puppet 中的提供程序 - 使整个管理过程变得特别简单。但我想这也可以与其他 CM 工具集成 - 但它确实帮助在 Windows 环境中自动安装软件。
尽管值得指出的是,无论您最终使用什么工具,您都必须花费一些时间解决一些奇怪的错误 - Windows 和脚本/自动化并不是最好的组合。
我一直在寻找完全相同的东西。
我偶然发现了Windows PowerShell Desired State Configuration,它声称可以完成许多你想用Chef/Puppet执行的配置管理任务。
我不会对它发表任何意见,因为我仍在评估阶段,但如果你还在寻找类似的工具,可以试试这个。
根据我的经验,我很高兴使用以下工具:
使用PowerShell管理Windows配置。如果仅涉及Windows服务器,您可以远程执行PS脚本。
如果您喜欢,建议使用Puppet或Chef将您的PowerShell脚本分发到客户端。
如果您喜欢,建议使用Cygwin +(Windows SSHD)+ Crond来管理在Windows中运行的类似于shell的脚本。
我不建议使用Chef,除非你是一名熟悉Ruby的软件开发人员。 Chef是为想要管理IT基础架构的软件开发人员设计的,而不是实际上最终管理它的SysOps人员。 它试图将IT基础架构视为代码,这与它实际运行的方式相反,更像是数据。
在我看来,Puppet对于SysOps人员更加友好,但仍然可能很复杂。
好消息是还有其他选择。 对于Windows而言,支持它的项目像Puppet也可以表现得相当好。