我正在考虑创建一个 linux 设备(可能使用从 USB 驱动器启动的 xubuntu,仅供参考),我很好奇如何最好地执行远程更新和管理。
我想要支持的用例是将这个盒子放在我无法控制的远程位置(某人的房子或办公室),我想远程更新它以修补某些东西,改变它的配置,也许只是升级操作系统或应用程序例如它。
在一个非常简单的一对一情况下,我认为如果它在 RAM 中运行整个操作系统,我应该能够远程覆盖 USB 驱动器上的操作系统映像并告诉机器重新启动以使更改生效.
但是,我不得不认为我不能成为第一个遇到这个问题的人。那么,哪些软件/配置可用于管理一组远程(如果不相同,则非常相似)设备。我也很想有一个仪表板,我也可以深入每个盒子来诊断问题——但是远程更新(尤其是批量更新)的想法似乎是一个全新的问题。
有什么帮助吗?
对于远程访问,我会让每台机器建立一个到中心位置的 OpenVPN 隧道。这解决了 NAT 问题,并确保您可能必须使用的任何默认未加密的协议都保持安全。
就更新而言,我将继续在Puppet鼓上敲打。这确实是目前存在的自动管理和更新许多相同或几乎相同的机器的最佳方式。
如果您还没有查看 eBox 以了解仪表板/设备/远程管理类型的情况,我强烈推荐它。
http://ebox-platform.com/
https://help.ubuntu.com/community/eBox
请注意,不要在 Ubuntu 存储库中安装软件包。使用来自 eBox 网站的官方软件包或使用他们的 Ubuntu 安装 ISO。
我认为一种常见的技术是在某种 chroot 中运行图像。这样,您可以安装一个包含新 chroot 环境以及所有更新等的新软件包,而不会影响“主”操作系统。
一些仪表板,在我的脑海中:
网民
面板
HyperVM(注意:最近的安全问题)。
只需 ssh 即可。您可以在 shell 中完成所有操作。Ubuntu 的 aptitude 程序能够从 shell 升级操作系统的每个部分。
您可以将 ssh 与 x-forwarding 一起使用。这使您可以在远程计算机上运行任何应用程序以在您自己的计算机上显示。
您无需重新安装即可更新软件包并应用补丁。但是,如果您觉得有必要重新安装,那么您可以在虚拟化环境中运行一个操作系统。这样您就可以随时更新来宾操作系统。您唯一可能想要在主机操作系统中更新的是您用于虚拟化支持的软件。
除此之外,您可以使用 chroot 环境并打开 VPN 隧道来绕过 NAT,正如其他用途所建议的那样。