与驱动器映像相比,通过自动安装进行部署的优缺点是什么?对于 Windows,我知道在克隆驱动器时 SID 生成存在问题。通过映像部署 Linux 是否存在类似的问题?
答案1
我不同意这里的一些答案。如果操作正确,您可以拍摄图像并将其加载到使用不同硬件的多个系统上。就我个人而言,我见过支持多达 30 个不同系统的图像。
如果您对映像的创建非常挑剔,我的回答是同时使用这两种方法。创建自动安装,然后对结果进行系统准备。这将产生可重复的、自文档化的图像。
此外,如果您可以在磁盘映像保存的状态下对其进行写入,则可以通过包含可在 sysprep 期间运行的脚本来扩展映像上的内容。或者,您可以在进行 sysprep 之前备份系统,然后对其进行扩展,然后再进行 sysprep。
我已经尝试过这两种方法,并获得了良好的效果。
关于 SID 问题,您应该始终使用 Sysprep 来获取新映像(尽管 NewSID 也可以),这将解决所有 SID 问题,但是,还有其他应用程序会将 GUID 写入注册表,因此需要清理。我首先想到的是 Altiris 和 WSUS 就是两个这样做的应用程序。
答案2
镜像是一种失败的做法。完整的 CentOS kickstart 安装应该需要不到 10 分钟的时间。如果您的安装速度明显较慢,那么这就是值得调查的问题。
映像的问题在于,您必须保留一份“黄金”副本,并在对构建进行更改时对其进行更新。这意味着您仍然需要一种无人值守安装的机制,并且每次更改都需要进行这样的安装、更改映像(需要一种针对您的环境进行自动自定义的机制)并将此副本设为黄金副本。如果您要直接对黄金副本进行更改,那么经过多年的修补、升级等,您很快就会陷入混乱。
如果您必须对系统进行映像处理,则应该对操作系统的默认版本进行映像处理,并在每台新机器上单独进行安装后工作(本地自定义)。这样,对版本的细微更改就不需要重建黄金副本。
如果您的硬件不完全相同,您可以利用安装程序的自动检测/配置。我在 RedHat/CentOS 3、4 和 5 以及各种硬件之间使用了几乎相同的 Kickstart 配置。
我见过的最差的映像结果是使用黄金映像(和带有多包的 dd)安装 Solaris 系统的系统。他们的安装程序和修补程序非常慢,这似乎是有道理的。不幸的是,他们让完全改变已安装系统的硬件变得非常困难。每种硬件类型都有自己的黄金映像。一个简单的构建更改需要对数十个磁盘进行更改。第二差的是 Windows 组映像机器(由于安装程序不完善,这也是合理的),而 Linux 组使用 Kickstart。Linux 组可以在几分钟内部署对 DNS 配置的更改。(一分钟更改安装后,然后进行测试构建,然后手动将配置推送到现有机器)。Windows 组必须启动每个黄金映像,进行更改,撤消启动黄金映像造成的麻烦,然后进行测试构建。(他们还必须购买特殊工具来自动更改多台机器上的系统配置,以更改现有机器)。 Windows 小组还可以选择重新安装黄金映像来进行更改,但由于这是手动安装操作系统和数十个应用程序,因此每次都会略有不同,需要数周的测试,并且存在生产系统不太一致的风险。
请注意,在这两种情况下,使用黄金映像的 Windows 和 Solaris 设置都未得到最佳处理,相关管理员做出的一些选择也暴露了他们能力的不足。但从不合理的设计入手也无济于事。
Kickstart 运行良好,没有理由考虑不这样做(我对它有很多小抱怨,但如果用成像机来做,情况会糟糕一千倍)。如果您的安装程序不是 Anaconda,而且它的自动安装不如 kickstart 有用,那么您应该考虑该发行版是否真的曾经打算用于企业用途。
答案3
驱动器映像速度更快,但您的硬件必须非常相似才能工作。自定义映像也更困难,您需要一个用于 Web 服务器、电子邮件服务器等的基础映像。使用自动安装,您可以让所有机器从同一网络位置安装,但根据您想要的服务器类型使用不同的脚本,而不需要存储和创建多个映像。
答案4
Microsoft 完全支持通过映像部署 Windows,在部署映像之前,使用 Sysprep 对映像进行“出厂密封”。Sysprep 会重置 SID,并为新机器准备映像。
但是,强烈建议(除非您是一家小公司)也进行完全脚本化的安装,原因很简单。每次您需要更新映像时,您有两个选择:
1) 不断修改现有映像并每次重新进行系统准备。由于您不断修补、修改和重新进行系统准备,这最终会导致问题。
2) 从头开始重新创建映像,这是非常可取的。但是,如果您没有脚本构建,则构建之间出现大量不一致的风险很高。
总结一下:
- 使用脚本构建来创建图像
- 使用映像进行部署
所有这一切中的另一个问题是 Windows Vista、2008 和 7 都使用基于映像的安装,因此使用基于映像的安装与脚本安装的优势已经消失。