我使用打包程序来构建不可变的 Ubuntu 20.04 服务器。
如何实现无人值守升级顺利进行?
由于镜像不像过去那样捆绑在一起,更新不适用于新实例。这意味着当服务器启动时,无人值守升级将需要运行完整升级。这是有问题的,因为其中一些需要重新启动+这会延长服务器启动时间。
不可变服务器上无人值守升级的最佳实践是什么?
答案1
我对不可变 Linux 服务器的测试是将 /usr 在主机的整个生命周期内以只读方式挂载。启用了无人值守升级的 Debian 或 Ubuntu 机器不是不可变的。
但您仍必须应用更新。系统软件的每次软件包更新都应创建新的不可变映像。确实有很多映像,但不可变的要点是拥有一组已知的软件包,只有在重新启动时被另一组已知软件包自动替换时才会更改。
创建新映像时,安装软件包并将所有软件包更新为最新版本。禁用无人值守升级。最好完全删除 apt。实现此操作的方法各不相同,可能是预置脚本、后置命令或其他方法。在将系统存档为映像之前,请完成对系统的所有更改。
在 Red Hat 领域,他们有 ostree 作为原子升级系统,还有 composer (又名 image builder)用于一般的图像创建。Ubuntu 可能对这些问题有答案。