我可以使用什么工具来管理我的Windows Server环境的配置?

我帮助管理一个使用基于云的Windows服务器虚拟机的应用程序环境。该应用程序堆栈由Windows Server 2008和Windows Server 2012、SQL Server 2008、IIS和SharePoint 2010组成。我有几个环境:开发/测试/阶段/生产。我正在寻找一种方法来对这些环境进行配置管理,以确保任何环境变化都以一致的方式应用,并且有一种验证没有对一个环境进行未在其他环境中进行的更改的方法。 我一直在研究Puppet、Chef等工具,我喜欢使用声明性配置管理的想法。有什么好的方法或工具可以帮助管理这些环境的配置呢?我对SCCM了解一点,但它对于这种特定情况来说太昂贵了,尽管我仍然有兴趣知道它是否具备执行这些任务的能力。

2SCCM - jscott
3个回答

System Center Configuration Manager(SCCM)的期望状态配置正是您所描述的。

如果您没有预算(就像您的问题所表明的那样),您可以使用PowerShell DSC来实现。

System Center Operations Manager(SCOM)并不适用于这种情况-它是一个监控和警报平台,而不是配置管理平台。(请注意,原始问题提到了SCOM,但OP在编辑时将其删除了)

请注意,自2012年起,购买任何一个System Center产品,您将获得全部产品。总共有9个产品,对于能够成功地利用其中一部分或全部产品的Windows用户来说,这是一个巨大的福音。


1我本来打算发帖并建议使用 DSC 自己(http://blogs.msdn.com/b/powershell/archive/2013/11/01/configuration-in-a-devops-world-windows-powershell-desired-state-configuration.aspx)。我认为,像这样的 Windows 特定工具将会给系统管理提供最好的控制。 - Rob Moir

这个问题很难以广泛/泛化的方式回答,因为答案是主观的:如果工具A在Windows Server(操作系统)上表现出色,但在管理GPO方面很糟糕,而工具B则相反呢?你更喜欢哪个工具将取决于你的使用情况。 话虽如此,jscott是正确的 - SCCM和整个Systems Center套件目前是最好的,因为它来自供应商并且专为此目的构建。 现在,如果您在问题中没有包含其他要求,这可能会改变适当的答案并缩小范围,那将是很好的。与其专注于工具,不如给我们一个详细描述您所面临的问题?Windows Server免费提供的功能(WDS和带有GPO的AD)本身就能很好地构建和管理Windows环境。

我想要对Windows服务器基础架构进行声明式配置管理,并且正在寻找开源工具。我应该关闭/删除这个问题然后以这种方式重新提问吗? - Shane Wealti
1你还没有告诉我你想解决什么问题,你只是告诉我们你打算用什么方法去做。你是在建立很多Windows服务器吗?你需要重新配置很多Windows服务器吗?你要配置/重新配置什么?IIS,SQL,还是自定义应用程序? - mfinni
我很感激你对如何提出一个好问题的指导。我已经按照这个网站的要求重新提出了我的问题,希望这次的格式更加符合要求。链接:http://serverfault.com/questions/575656/what-tool-can-i-use-to-manage-the-configuration-of-my-windows-server-environment - Shane Wealti

据我所知,截至今天(2014年2月14日),Chef和Salt在Windows上有最好的支持。

《使用Chef在Windows上烹饪》:

Chef长期以来一直支持Microsoft Windows平台,自从Opscode于2011年首次发布knife-windows插件以引导和管理Windows服务器以来。您可以使用内置的Chef资源和大量社区食谱来管理Internet Information Services(IIS)、SQL服务器及其数据库、注册表键、安装Windows功能和角色等等。您还可以使用knife-azure插件与Microsoft Azure平台交互,无缝地提供Azure服务器并将其注册到Chef中。

Salt/SaltStack支持Windows平台,并且将许多标准Salt模块移植到了Windows上

Puppet对Windows有一些支持:

Puppet可以在Windows客户端上运行,但Windows节点不能充当Puppet主节点或证书颁发机构,并且大多数附属的Puppet子命令在Windows上不受支持。 目前Ansible尚不支持Windows,但他们在路线图中提供了对Windows服务器作为终点的支持链接1。通过Cygwin提供了一些实验性的支持。

  • 相关问题