Jail升级

Jail升级可以确保隔离环境保持安全以及最新的功能和性能提升。

升级经典Jail或使用OpenZFS Snapshots的Thin Jail

Jails必须从host主机操作系统发起升级

FreeBSD的默认特性不允许在一个Jail内部使用 chflags ,这样可以避免在jail内部执行升级失败时更新一些文件。

备注

目前我使用NullFS Jail,所以这段暂时记录待后续实践

  • host 上执行以下命令更新到FreeBSD运行的最新patch:

更新名为classic的经典Jail
freebsd-update -j classic fetch install
service jail restart classic

在更新jail的主版本或从版本之前,需要先完成host主机的版本升级 FreeBSD更新和升级

  • 在host主机上升级 13.1-RELEASE13.2-RELEASE :

升级jail的RELEASE版本
freebsd-update -j classic -r 13.2-RELEASE upgrade
freebsd-update -j classic install
service jail restart classic
freebsd-update -j classic install
service jail restart classic
  • 在完成了主版本升级之后,需要重新安装jail中的软件包并重启jail:

升级jail软件包
pkg -j jailname upgrade -f
service jail restart jailname

升级使用NullFS的Thin Jail

备注

我在 docs.cloud-atlas.dev: VNET + Thin Jail 上构建的使用NullFS的Thin Jail。使用本段方法进行更新

由于NullFS Jail共享了系统目录,所以非常容易更新。只需要更新模版就能够完成,会立即对所有NullFS Jail同步更新。

  • 在host上 执行以下命令更新FreeBSD的模版补丁:

更新NullFS的Jail模版
export jail_zfs="zdata/jails"
export release_old=14.2
export release_new=14.3

freebsd-update -b /$jail_zfs/templates/$release_old-RELEASE-base/ fetch install

service jail restart

在更新jail的主版本或从版本之前,需要先完成host主机的版本升级 FreeBSD更新和升级

  • 在host上 执行以下命令将Jail的模版从 14.2-RELEASE 升级到 14.3-RELEASE :

升级NullFS的Jail模版的RELEASE
export jail_zfs="zdata/jails"
export release_old=14.2
export release_new=14.3

freebsd-update -b /$jail_zfs/templates/$release_old-RELEASE-base/ -r $release_new-RELEASE upgrade
freebsd-update -b /$jail_zfs/templates/$release_old-RELEASE-base/ install

service jail restart

freebsd-update -b /$jail_zfs/templates/$release_old-RELEASE-base/ install

service jail restart

参考