我们目前正在使用 PXE 启动来自动安装和重新安装我们的专用服务器。这对于所有基于 Linux 的系统(如 Debian、CentOS、VMware 和 Ubuntu)与 kickstart/preseed 结合使用效果很好。
但是,对于 Windows 来说,这似乎是不可能的。您需要将 WDS/MDT 与 Active Directory 一起使用,而我根本不希望为此更改整个部署系统。
因此,我们正在寻找 WDS/MDT 的替代方案,它允许我们以自动方式部署定制的 Windows Server 2003/2008 服务器,并在单独的文件中设置 IP 地址/密码/许可证密钥等设置,这样我们就不必为每个服务器创建一个映像。
我们有一个基于 Linux 的部署系统,它完全融入我们的后端/控制面板等。因此,我正在寻找一个可以在 Linux 上运行的部署解决方案。
我发现的指南建议使用 PXE 启动 WinPE,然后使用 Windows Server 的 EXE 安装程序。这是建议的方法吗,还是有更好的方法来实现它?
答案1
概述
您可以使用 pxelinux 或任何其他 PXE 启动技术分发 WinPE 映像。这将为您提供一个可编写脚本的命令提示符,能够启动无人值守的安装。
您可以使用 WAIK 创建一个 unattend.xml 文件,该文件在安装过程中被调用,您可以在其中创建自己的构建脚本以满足您的任何需求。无人值守文件可以在安装后阶段调用批处理或 powershell 脚本以及任何其他应用程序进行自定义。
我非常怀疑是否有任何商业产品可以做到这一点。如果您想要将 Windows 映像环境与 Linux 映像环境集成,您将不得不自己手动完成很多工作。好消息是,执行此操作的工具(WAIK、DISM、WinPE 等)都是免费提供的。
设计基础
您需要创建一个 SMB 共享,其中包含要部署的 Windows 操作系统安装文件的副本。您可以使用 DISM 修改这些文件(合并补丁、Windows 模块等)。
一旦你有了它,你就会想要通过你使用的任何 PXE 解决方案部署 WinPE。你可以在 WinPE 中编辑 startnet.cmd 以包含你想要的任何自定义命令。当 WinPE 加载时,会执行此 cmd 文件。这将允许你自动安装。至少,你将映射 SMB 共享与源文件
net use \\server\share
并调用
\\server\share\setup /unattend:\\server\share\unattend.xml
这将以无人值守模式运行安装程序,前提是您已正确配置无人值守文件。technet 上有许多关于如何执行此操作的示例。
在无人值守文件的 OOBE 阶段,您可以配置自动登录并调用所需的任何构建脚本。Slmgr.vbs
可以更改产品密钥并激活,您可以调用netsh
来设置 IP 信息,并且直接在 unattend.xml 中,您可以指定本地用户和组的创建。
这为您提供了一个完全可自定义的安装环境,可以从任何 TFTP 服务器进行 PXE 启动。如果您以前从未这样做过,那么需要进行大量的尝试和错误,但绝对可以做到。
答案2
在这种情况下,我所做的是构建一个主映像,其中设置了一个脚本,当新映像的机器首次启动时运行。该脚本足够智能,可以通过 DHCP 获取临时 IP,然后联系配置服务器,在那里获取另一个脚本来运行。第二个脚本执行诸如激活窗口、配置网络等操作。
这样做的好处是,无需费力尝试自动安装。我们通过 Clonezilla 推出映像,映像中已经安装了我们所有的应用软件(这几乎不可能自动完成)。