Windows的配置管理


70

是否有像* nix world一样的Windows工具?我正在寻找厨师Puppet之

我已经找到cfEngine但它看起来仍然非常* nix为中心。理想情况下,它将是开源的,并由命令行驱动。

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


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

Answers:


51

Windows由Opscode支持Chef。尽管我们没有在任何基础架构上运行Windows,但确实有一些开发人员正在不断改善Windows支持。我们还获得了社区的贡献,Chef的大多数早期Windows功能都是由社区贡献的。

重要提示Opscode现在为Windows上的Chef提供了MSI安装程序。这使得在Windows上安装Chef和Ruby变得比以往更加容易。

尽管我们整个团队都有许多Unix / Linux背景,但我们的意图是将Windows视为头等公民。对于Chef和Windows来说,2012年将是丰收的一年。随时关注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可以扩展食谱,因此可以通过各种Windows特定食谱添加更多资源。继续读以获取更多信息。

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

最初,Doug MacEchern也写了一些食谱来做很多事情来使Windows自动运行。

此信息以及更多信息可以在Chef Wiki上获得:

更新资料

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

这是从上面链接的资料库中对Doug的精美资源的更新/重写。可以在Chef Wiki上找到文档。

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

文档可在食谱tarball中包含的README.md中找到。

添加了用于安装7-zip,管理IISSQL Server的其他食谱。我们的“数据库”菜谱已经扩展了资源/提供程序,用于管理SQL Server数据库和用户(使用tdsrubygem)。

刀窗口与Windows系统将它们与厨师安装交互来提供插件的刀添加功能。

更新:现在,对于所有常见的文件/目录可疑对象,我们已经向Chef添加了Windows的文件ACL支持


@sumek取决于您的意思?Windows不支持?
jtimberman 2011年

1
是的,Windows不支持哪些厨师功能?
sumek 2011年

1
@sumek Chef的核心功能是管理节点上的资源,它依赖于特定操作系统的提供程序来管理特定种类的资源。Windows上缺少的提供程序在Windows上可能没有直接的并行性,但是由于Chef是可扩展的,因此可以通过食谱添加“支持”,类似于Powershell示例。最近发布的新“ Windows”食谱增加了Windows注册表和“包”管理。
jtimberman'8

注意:我已经更新了答案,在Chef Wiki上包括了指向文件acl信息的链接。
jtimberman 2012年

感谢您发布链接
Robert

8

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

除了特定于Windows的功能外,在Unix上所有可能的操作(例如,运行命令,文件复制,文件编辑等)都可以在Windows上完成。

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

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


但是它可以管理IIS吗?我主要需要一个用于管理IIS服务器的工具。
内森·李

它可以“运行命令”,所以,是的
克里斯·普弗

4

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

我遇到了Windows PowerShell所需状态配置,该配置旨在完成您想对Chef / Puppet执行的许多CM任务。

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


4

我在这里有很多经验,我认为这实际上取决于您需要在给定的盒子上进行什么管理。找到最常见的用例,并就以下问题提出更具体的问题:什么是管理该问题的最佳工具。诸如IIS之类的事情可能很棘手(至少在较旧的Windows上可以构建),并且找到用于CM工具来管理诸如IIS设置和应用程序池之类的模块的过程可能会碰上或错过-尤其是在涉及高级设置时(让人联想到工作线程的循环弹簧)

但是,Puppet具有伪造模块,可用于更基本的IIS设置,这些设置对我来说很有用-我真的很喜欢这里的声明性格式-特别是如果您要管理大量IIS服务器

Windows和配置管理的主要问题之一是缺少适当的软件包管理解决方案-真正有用的是所谓的Chocolatey(请参阅http://chocolatey.org/),有一个插件可以使用此功能作为p的提供者-使整个管理过程特别容易。但是,我认为它也可以与其他CM工具集成-但是在帮助在Windows环境中自动安装软件方面做了大量工作

尽管值得一提的是,无论最终使用什么,都必须花点时间弄清楚一些奇怪的错误-Windows和脚本/自动化不是最好的。


3

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

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

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

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



0

除非您是懂红宝石的软件开发人员,否则不建议使用Chef。Chef是为想要管理IT基础结构的软件开发人员设计的。SysOps并不适合真正负责管理它的人。它试图将IT基础架构视为类似于代码的代码,这种代码与实际工作方式相反(更像数据)。

Puppet对SysOps的人员更友好,但仍然可能很复杂。

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


4
DevOps是一个合适的术语(与SysOps或“管理IT基础架构的开发人员”相对。)从本质上讲,对于某些需要在传统开发人员与开发人员之间建立更紧密协作的商店而言,必须创建一类新的uber-developer-admins。支持他们的传统管理员,可以促进从开发到生产的更多动态但完全自动化的部署。
迈克尔,

否决票是高度主观的答案。
汤姆·达克林

@Tom:我一直在从DevOps的角度研究Windows CM工具(即,我是负责版本管理的开发人员)。从我在其他地方阅读过的有关Chef和Puppet的内容来看,fred十分准确地反映了Chef的潜在缺点-它要求用户使用Ruby编写配置脚本,而Puppet中的配置则更为直接。实际上,我在其他地方也读过两篇博客文章,它们与fred有着相同的主张:Chef更注重DevOps,而Puppet更适合ITPro。我也从未用过,所以没有个人经验。
西蒙·图西

@SimonTewsi:很公平,但是答案提出了关于Chef的设计意图的主张,但事实没有得到支持。如果答案引用了一些描述可以解释这种感觉的特征和特征的文章,那将更加可口。
汤姆·达克林
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.