从网络启动和/或同步 Linux 映像

从网络启动和/或同步 Linux 映像

我正在寻找一种解决方案(或至少是一些指南/途径/手册)来从网络启动和同步 Linux 映像。我已经了解网络启动(PXE、DHCP、TFTP)的工作原理。

在我的组织中,我们有许多 PC 具有相同(或不同)的硬件配置,并且安装了 Linux(Ubuntu LTS)。当我们进行升级时,我需要手动升级每台 PC。当有人要求软件更新时也是如此(例如,LibreOffice、Eclipse、VMware)。当然,我不喜欢手动操作。

现在我正在寻找解决方案,它将允许我创建一个带有自定义软件集的自定义 Linux 映像,并在启动过程中将其与用户的电脑同步。

目标是使所有(一个部门内的)用户的计算机都使用具有相同配置和软件的统一操作系统。

我对无盘客户端或 Linux 终端服务器不感兴趣。而且我不仅仅在寻找网络安装。我想制作一个自定义 Linux 映像,然后在启动时将其安装在用户的计算机上 - 在每台用户计算机上创建本地安装。

但是,如果我在映像中更改了某些内容(例如,向此映像中添加新软件,或者仅运行“apt-get upgrade”),我希望这些更新在下次网络启动/同步时出现在用户的计算机上。我想同步系统配置(/etc、/usr、/opt 和其他),而不同步用户的 /home 或 /media 中的数据。

提前非常感谢您。


PS:我也在寻找支持具有不同硬件的用户计算机的选项。

PPS 另一个选择是将自定义手动预装的 Linux 与来自网络的映像同步(映像应该覆盖自定义安装)。

PPPS 我也梦想对 Windows 做同样的事情。

答案1

您的许多问题都由 Puppet、Chef 或 cfengine 等配置管理工具处理。它的工作原理与您想象的不同,但目标才是最重要的,对吧?

例如,使用 Puppet,您可以使用 Puppet 客户端安装基本操作系统(可能来自映像),然后 Puppet 处理软件的安装/配置。

从某种程度上来说,它也适用于 Windows。

答案2

我以前用 rsync 做过这个。你只需设置一台“黄金大师”电脑,在上面安装软件,然后 rsync 即可。你需要 rsync -x 选项来避免跨文件系统同步,然后建立一个不同步的其他内容列表,例如大部分 /var、/etc/hostname 和其他一些东西。

相关内容