如何维护40份相同的计算机安装?

如何维护40份相同的计算机安装?

我在一个环境中为 40 个固定安装的终端(带触摸屏,未连接鼠标或键盘)提供服务。这 40 台 PC 都安装了精简版 Ubuntu 和 Chromium,因为它们的唯一目的是以全屏模式为 Web 应用程序提供服务。

现在,问题来了:几天前,我们停电了,所有终端都关闭了。当我再次重新启动它们时,没有一个终端的触摸屏可以工作,我不知道为什么。但是,使用 CloneZilla 闪存驱动器重新安装系统解决了这个问题。这需要大量工作——连接键盘和闪存驱动器,更改 BIOS 设置以从闪存驱动器启动,重新安装所有 40 个终端。

如何以更好的方式完成此操作?我的理想情况是部署一项更改(假设我也想在每个终端上安装一个小型 NodeJs 服务器,或者配置 SSH 访问)。我研究过运行 PXE 服务器,但这显然需要花费大量时间(800 MB 图像 x 40 需要相当长的时间才能下载)。

有没有人有更好的解决方案来更好地维护此设置?

答案1

好吧,PXE 不一定是您在每台服务器启动时将映像下载到它们的情况。事实上,它更传统的用途(至少在处理 UNIX 系统时)是为根文件系统在 NFS 上的系统(或者现在可能是其他网络文件系统)提供无盘启动。我不太确定这对您有多大用处(它用 PXE 的时间问题换取了 NFS 服务器中的单点故障),但它可能值得一看。您也可以使用 iSCSI 或 NBD 做类似的事情,尽管它们的设置稍微复杂一些。

你也可以研究链式加载的可能性,类似于系统救援光盘确实如此。在网络启动时,它只需要通过 TFTP 加载 syslinux、内核和初始 RAM 磁盘,然后可以通过另一个协议加载实际的系统映像(例如,在我工作的地方,我们通过 HTTP 加载)。TFTP 是一种非常低效的协议(它要求在发送下一个块之前单独确认每个块,并且默认情况下使用非常小的块大小),因此这样做可以显著加快该过程(我们将我工作所在的网络设置为网络启动 SystemRescueCD,并让它通过 HTTP 而不是 TFTP 加载系统映像,这将启动时间从我设置时测试的系统上的近 15 分钟缩短到大约 3 分钟)。

鉴于你正在运行基于 Ubuntu 的程序,你可以考虑使用以下组合玛雅斯朱朱,因为这是使用 Ubuntu 执行此类操作的标准堆栈。

除此之外,如果你可以放心地认为像你看到的大规模中断很少见(因此你不太可能需要再次重新安装所有 40 个系统),那么你可能只需要考虑使用自动化管理工具。它不会帮助安装系统,但它会大大简化在系统上部署配置或软件包的更改。我特别喜欢Ansible对于这种类型的事情,主要是因为它的设置非常简单(你实际上只需要无密码 SSH 登录和在你想要管理的系统上安装一个特定的 python 包)以及它使用有状态的(大多数)声明性语言来处理任务,这真的很容易学习。木偶厨师, 和是此类产品的另外三种流行选择,但除了粗略的评估之外,我从未有过任何个人使用经验,因此我无法真正提供任何建议,说明哪一种最适合您的使用。

答案2

我也推荐无盘 PXE 启动,但作为替代方案,您可以轻松备份一个系统,然后在此情况下将其恢复到所有 40 个系统。这比重新安装 40 次要快。

相关内容