FreeBSD-Jails auf neue Version aktualisieren

FreeBSD-Jails können mittlerweile nicht nur sehr einfach auf ein aktuelles Patchlevel gebracht, sondern auch auf neue Major-Versionen aktualisiert werden.

Damit der Erfolg der einzelnen Vorgänge nicht von der Stabilität der SSH-Verbindung abhängt, sollten die folgenden Befehle in screen (oder tmux) ausgeführt werden.

Umgebung definieren

Sämtliche Befehle werden im Hostsystem gegeben. Die meisten verwenden die Variable JAILNAME, welche daher entsprechend gesetzt sein muss:

JAILNAME=

Dienste finden und stoppen

Kritische Dienste der Jail sollten deaktiviert werden.

Eine Auflistung erhält man via “iocage exec $JAILNAME service -e”. Einzelne Dienste kann man dann mittels “iocage exec $JAILNAME service $SERVICE stop” beenden.

Jail aktualisieren

Der update-Befehl bringt die Jail auf das aktuelle Patchlevel.

Das darauf folgende upgrade aktualisiert die Jail auf ein neues Release. Es weist auf Änderungen hin und fordert den Nutzer zu deren Prüfung und Bestätigung auf.

# Diese Variable auf die gewünschte Version setzen
RELEASE=13.2

iocage update $JAILNAME
iocage upgrade -r $RELEASE $JAILNAME

Pakete innerhalb der Jail aktualisieren

Bei größeren Versionsschritten kann “pkg bootstrap” erforderlich werden, dessen Ausführung generell unproblematisch sein sollte.

iocage exec $JAILNAME pkg bootstrap -f
iocage update $JAILNAME --pkgs

Jail neu starten

iocage restart $JAILNAME

Quellen