我正在寻找一种解决方案(或者至少是一些指南/途径/手册)来从网络引导和同步 Linux 映像。我已经了解网络引导(PXE、DHCP、TFTP)的工作原理。
在我的组织中,我们有许多 PC 具有与 Linux (Ubuntu LTS) 相同(或不同)的硬件配置。当我们进行升级时,我需要手动升级每台 PC。当有人要求软件更新(例如,LibreOffice、Eclipse、VMware)时也是如此。当然,我不喜欢手动操作。
现在我正在寻找允许我使用自定义软件集创建自定义 Linux 映像并在启动过程中将其与用户 PC 同步的解决方案。
目标是在所有(一个部门)用户的计算机上拥有一个操作系统,具有相同的配置和软件。
我对无盘客户端或 Linux 终端服务器不感兴趣。而且我不仅在寻找网络安装。我想制作一个自定义 Linux 映像,然后在引导期间将其安装在用户的计算机上 - 在每台用户计算机上创建一个本地安装。
但是,如果我在映像中更改某些内容(例如,将新软件添加到此映像中,或者只是运行“apt-get upgrade”),我希望这些更新在下次网络启动/同步期间出现在用户的计算机上。我想同步系统配置(/etc、/usr、/opt 和其他),而不需要用户的 /home 或 /media 中的数据。
非常感谢您。
PS 我也在寻找支持具有不同硬件的用户计算机的选项。
PPS 另一种选择是将自定义手动预安装的 Linux 与来自网络的映像同步(映像应覆盖自定义安装)。
PPPS 我也梦想为 Windows 做同样的事情。
您的许多问题都由 Puppet、Chef 或 cfengine 等配置管理工具处理。它的工作方式与您想象的不同,但重要的是目标,对吧?
使用例如 Puppet,您可以使用 Puppet 客户端安装基本操作系统(可能来自映像),然后 Puppet 会处理软件的安装/配置。
在某种程度上,它也适用于 Windows。
我以前用 rsync 做过这个。您只需设置一台“金主”PC,在其上安装软件,然后对其进行 rsync。您将需要 rsync -x 选项来避免跨文件系统同步,然后建立其他不同步内容的列表,例如大部分 /var、/etc/hostname 和其他一些内容。