我帮助管理使用基于云的 Windows 服务器虚拟机的应用程序的环境。应用程序堆栈由 Windows Server 2008 和 Windows Server 2012、SQL Server 2008、IIS 和 SharePoint 2010 组成。我有多个环境 Dev/Test/Stage/Prod。我正在寻找一种方法来对这些环境进行配置管理,以确保以一致的方式应用任何环境更改,并且有一种方法可以验证对一个环境所做的更改是否与对其他环境所做的更改相同。
我一直在阅读有关 Puppet、Chef 等的文章,我喜欢进行分布式配置管理的想法。有什么好的方法或工具可以帮助管理这些环境的配置。我对 SCCM 了解一点,但它对于这种特殊情况来说太贵了,尽管我仍然想知道它是否有能力做这些事情。
答案1
系统中心配置管理器 (SCCM) 的所需状态配置正是您所描述的。
如果你没有这方面的预算(就像你的问题所表明的那样),你可以利用PowerShell 数据安全反而。
System Center Operations Manager (SCOM) 不在此考虑 - 它是一个监控和警报平台,而不是配置管理平台。(请注意,原始问题询问的是 SCOM,但 OP 将其删除)
请注意,自 2012 年起,只要您购买一款 System Center 产品,即可获得所有产品。总共有 9 种产品,对于能够成功利用其中部分或全部产品的 Windows 商店来说,它们是一个巨大福音。
答案2
据我所知,截至今天(2014 年 2 月 14 日),Chef 和 Salt 对 Windows 的支持最为出色。
Chef 长期以来一直支持 Microsoft Windows 平台,可以追溯到 2011 年,当时 Opscode 首次发布了 knife-windows 插件来引导和管理 Windows 服务器。您可以使用内置的 Chef 资源和大量社区手册来管理 Internet 信息服务 (IIS)、SQL Server 及其数据库、注册表项、安装 Windows 功能和角色等。您还可以使用 knife-azure 插件与 Microsoft Azure 平台交互,以无缝配置 Azure 服务器并将其注册到 Chef。
Salt/SaltStack 为 Windows 平台提供了 Salt Minion 支持,并且许多标准 Salt 模块已移植到 Windows。
Puppet 在 Windows 客户端上运行,但 Windows 节点不能充当 Puppet Master 或证书颁发机构,并且大多数辅助 Puppet 子命令在 Windows 上不受支持。
Ansible 尚不支持 Windows,但支持将 Windows 服务器作为端点在他们的路线图上. 通过 Cygwin 提供一些实验性支持。
答案3
这个问题很难广泛/笼统地回答,因为答案是主观的:如果Tool A
对 Windows Server(操作系统)来说很棒,但在管理 GPO 方面却很糟糕,而Tool B
反过来呢?您更喜欢哪种工具取决于您的用例。
话虽如此,jscott 是正确的 - SCCM 和整个系统中心套件目前是最好的,因为它来自供应商并且是专门构建的。
现在,如果您有其他未包含在问题中的要求,这可能会改变适当的答案并缩小范围,那就太好了。与其专注于工具,不如给我们详细描述您所面临的问题?Windows Server(WDS 和带有 GPO 的 AD)免费提供的功能本身就很好地完成了构建和管理 Windows 环境的工作。