我想创建一个中央配置文件存储库,这样我就可以在修订控制 (Mercurial) 下对任何配置进行更改。这将包括一些 GNU/Linux 盒(将使用 etckeeper)、网络设备的配置文件、打印机的配置文件以及最后但并非最不重要的 Windows 配置。
我知道您可以将某些配置(例如 ISA 和 DHCP)导入为文本/xml 文件,甚至可以将共享文件夹导入为注册表项,但对于 GPO 和 AD、IIS、MSSql 等内容,是否有办法将配置作为平面文件获取?基本上,您是否可以在 Windows 下使用与 etckeeper 类似的东西?类似于一些基于 powershell 的命令之类的东西?
另外,ACL 和其他文件权限可以在版本控制 (hg) 下保存吗?
顺便说一句,我已经读过了
无济于事。
答案1
把包裹拿住!
这是 Michael J Ginter 提供的脚本,用于创建服务器上所有 DHCP 作用域的备份。(请注意,它将停止并重新启动 DHCP 服务器服务。):
http://gallery.technet.microsoft.com/ScriptCenter/en-us/ff25d864-6ff0-411b-b242-97fbe34f011b
您可以使用 LDIFDE 从 AD 导入和导出数据: http://support.microsoft.com/kb/237677
可以使用 ADMX.exe 导出 GPO(由 Microsoft 提供,网址为 http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/techref/en-us/Default.asp?url=/resources/documentation/windowsServ/2003/all/techref/en-us/w2k3tr_gp_tools.asp
可以通过 %systemroot%\system32 中的 iiscnfg.vbs 导出 IIS 配置 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/81f04967-f02f-4845-9795-bad2fe1a1687.mspx?mfr=true
答案2
确实没有,反正不是免费的。有商业产品可以做到这一点,我知道它们很大而且很贵。Opsware(或现在的 HP Server Automation)可以做到这一点。
MRTG 的开发者尝试过但失败了大约 10 年前,他们就做过类似的事情。环境已经发生了很大变化,所以你也许能够借鉴他们的工作,想出一些好东西。例如,你现在可以抛弃 GPO,这是他们的问题之一。
/edit - 您始终能够将 AD 转储到 LDIF 或 CSV。每晚将 AD 导出到其中一个,然后将其导入 CSV。IIS 全部位于文件系统和元数据库中,元数据库也位于文件系统中。将它们正常备份和/或复制到 CSV 中会很好。SQL 配置,我不太确定;我认为它们都是注册表,PS 可能有钩子来显示它们。
需要注意的是 - 您询问备份文件的 ACL?天哪 - 请告诉我您正在备份文件,并且您的备份软件会保留 ACL。如果您根本没有备份文件,ACL 对您有什么好处?如果您没有备份带有 ACL 的文件,您的备份软件有什么问题?您可以本地启用 ACL 更改审核,也许您想这样做?
答案3
我没听说过。虽然注册表可能是 Windows 上 (大多数) 配置的所在地,并且 (某种程度上) 可以以文本形式表示,但您所能期望的最好方式是配置文档而不是配置管理。有用于监控注册表更改的 API,如几个 System Internals 工具所示,理论上它们允许基于事件的操作(例如恢复到旧配置)。不幸的是,有些东西(组策略是最大的)被设计成突破任何基于本地机器的配置更改限制。
但是,这只是管理基本操作系统。一旦您开始添加其他 Microsoft 产品,情况就会变得复杂得多。IIS 有自己的数据库,即元数据库,它不在注册表中。MS-SQL 有大量配置存储在数据库本身和其他地方。AD 当然可以表示为平面文件,它是从 LDAP 导出的 LDIF,但同样,这是文档而不是管理。组策略本身是充满域控制器上文件的目录树。
无论如何,这都不是件容易的事。这就是为什么微软的系统中心配置管理器或 Novell 的 Zenworks 配置管理等系统如此复杂的原因。事实上,据我所知,这些产品是 Windows 最接近 etckeeper 的产品。
答案4
在 Windows 上,软件没有存储配置的标准方法,因此不可能有一种方法可以处理这些配置。在有人开始喋喋不休地谈论有某种“标准”之前,让我们先看看微软迄今为止的建议。
- 首先,我们被要求在 win.ini 中创建所有配置。
- 接下来被告知 win.ini 太大,因此将配置放在 Windows 目录中的 .ini 文件中。
- 不行,Windows 目录太乱了。使用应用程序目录。
- 瞧,我们有一个新的中央配置存储库,我们将其称为“注册表”。将所有东西都放在那里。
- 哎呀,注册表太大了。将配置放入用户配置文件中。
- 你猜怎么着,个人资料功能运行得不太好……
- 等等等等
应用程序(包括 Microsoft 自己的应用程序)没有标准的方式或位置来存储配置,而是使用上述任何或所有方法以及一些“非标准”方法。欢迎来到不一致且不断变化的 Windows 世界。