Nächste: X Window, Vorige: Netzwerkdienste, Nach oben: Dienste [Inhalt][Index]
Guix stellt einen Dienst zum Durchführen unbeaufsichtigter Aktualisierungen zur Verfügung: Das System rekonfiguriert sich selbst in regelmäßigen Abständen mit der neuesten Version von Guix. Guix System verfügt über mehrere Eigenschaften, durch die unbeaufsichtigtes Aktualisieren zu einer sicheren Angelegenheit wird:
guix system list-generations
einsehen – und Rücksetzungen auf
vorherige Generationen sind möglich, für den Fall, dass das System nach der
Aktualisierung nicht mehr funktioniert oder sich nicht wie gewollt verhält.
guix system reconfigure
verweigert ein Herabstufen auf alte
Versionen; das macht Herabstufungsangriffe („Downgrade Attacks“)
unmöglich.
Um unbeaufsichtigte Aktualisierungen einzurichten, fügen Sie eine Instanz
des Diensttyps unattended-upgrade-service-type
wie im folgenden
Beispiel zur Liste Ihrer Betriebssystemdienste hinzu:
Durch die Vorgabeeinstellungen hat dies wöchentliche Aktualisierungen zur Folge, jeden Sonntag um Mitternacht. Sie müssen keine Betriebssystemkonfigurationsdatei angeben: /run/current-system/configuration.scm wird benutzt, wodurch immer Ihre letzte Konfiguration weiter verwendet wird – siehe den provenance-service-type für mehr Informationen über diese Datei.
Mehrere Dinge können konfiguriert werden, insbesondere die Zeitabstände
zwischen Aktualisierungen und die Dienste (also die Daemons), die nach
Abschluss neu gestartet werden sollen. Wenn die Aktualisierung erfolgreich
ist, dann stellt das System sicher, dass Systemgenerationen mit einem Alter
größer als ein festgelegter Schwellwert gelöscht werden, wie bei
guix system delete-generations
. Siehe die folgende Referenz der
Konfigurationsmöglichkeiten für Näheres.
Um sicherzugehen, dass unbeaufsichtigte Aktualisierungen auch tatsächlich
durchgeführt werden, können Sie guix system describe
ausführen. Um
Fehlschläge zu untersuchen, schauen Sie in die Protokolldatei für
unbeaufsichtigte Aktualisierungen (siehe unten).
Dies ist der Diensttyp für unbeaufsichtigte Aktualisierungen. Damit wird ein
mcron-Auftrag eingerichtet (siehe Geplante Auftragsausführung), der
guix system reconfigure
mit der neuesten Version der angegebenen
Kanäle ausführt.
Sein Wert muss ein unattended-upgrade-configuration
-Verbundsobjekt
sein (siehe unten).
Dieser Datentyp repräsentiert die Konfiguration des Dienstes für unbeaufsichtigte Aktualisierungen. Folgende Felder stehen zur Verfügung:
schedule
(Vorgabe: "30 01 * * 0"
)Dies ist der Aktualisierungsplan, ausgedrückt als ein G-Ausdruck mit einem mcron-Auftragsplan (siehe mcron-Auftragsspezifikationen in GNU mcron).
channels
(Vorgabe: #~%default-channels
)Dieser G-Ausdruck gibt an, welche Kanäle für die Aktualisierung benutzt
werden sollen (siehe Kanäle). Nach Vorgabe wird die Spitze des
offiziellen guix
-Kanals benutzt.
operating-system-file
(Vorgabe: "/run/current-system/configuration.scm"
)Dieses Feld gibt an, welche Betriebssystemkonfigurationsdatei verwendet werden soll. Nach Vorgabe wird die Konfigurationsdatei der aktuellen Konfiguration wiederverwendet.
Es gibt jedoch Fälle, wo es nicht ausreicht, auf
/run/current-system/configuration.scm zu verweisen, zum Beispiel weil
sich diese mit local-file
oder Ähnlichem auf weitere Dateien wie
öffentliche SSH-Schlüssel, andere Konfigurationsdateien usw. bezieht. Dann
empfehlen wir, etwas wie hier zu schreiben:
(unattended-upgrade-configuration
(operating-system-file
(file-append (local-file "." "config-dir" #:recursive? #t)
"/config.scm")))
Das bewirkt, dass das ganze aktuelle Verzeichnis in den Store importiert
wird und Bezug auf die config.scm darin genommen wird. So
funktioniert die Nutzung von local-file
in config.scm wie
erwartet. Siehe G-Ausdrücke für Informationen zu local-file
und file-append
.
operating-system-expression
(Vorgabe: #f
)In diesem Feld können Sie einen Ausdruck angeben, der zu dem Betriebssystem
auswertet, auf das aktualisiert werden soll. Wenn hier kein Wert angegeben
wird, wird der Wert des Feldes operating-system-file
benutzt.
(unattended-upgrade-configuration
(operating-system-expression
#~(@ (guix system install) installation-os)))
reboot?
(default: #f
)This field specifies whether the system should reboot after completing an unattended upgrade.
When reboot?
is #t
, services are not restarted before
rebooting. This means that the value for services-to-restart
is
ignored. The updated services will be started after the system reboots.
services-to-restart
(Vorgabe: '(mcron)
)Dieses Feld gibt die Shepherd-Dienste an, die nach Abschluss der Aktualisierung neu gestartet werden sollen.
Die Dienste werden direkt nach Abschluss neu gestartet, so wie es
herd restart
tun würde. Dadurch wird sichergestellt, dass die
neueste Version läuft – bedenken Sie, dass guix system
reconfigure
nach Vorgabe nur diejenigen Dienste neu startet, die zurzeit
nicht laufen, was einem konservativen Verhalten entspricht: Störungen werden
minimiert, aber veraltete Dienste laufen weiter.
Führen Sie herd status
aus, um herauszufinden, welche Dienste Sie
neu starten lassen können. Siehe Dienste für allgemeine Informationen
über Dienste. Oft würde man Dienste wie unter anderem ntpd
und
ssh-daemon
neu starten lassen.
Nach Vorgabe wird nur der mcron
-Dienst neu gestartet. Dadurch wird
beim nächsten Mal sicherlich die neueste Version des Auftrags für
unbeaufsichtigte Aktualisierungen benutzt.
system-expiration
(Vorgabe: (* 3 30 24 3600)
)Nach wie vielen Sekunden Systemgenerationen auslaufen. Systemgenerationen,
die dieses Alter überschritten haben, werden über guix system
delete-generations
gelöscht, nachdem eine Aktualisierung abgeschlossen
wurde.
Anmerkung: Der Dienst für unbeaufsichtigte Aktualisierungen lässt jedoch den Müllsammler nicht laufen. Sie möchten wahrscheinlich Ihren eigenen mcron-Auftrag einrichten, der regelmäßig
guix gc
ausführt.
maximum-duration
(Vorgabe: 3600
)Wie viele Sekunden eine Aktualisierung höchstens dauern darf. Nach dieser Zeit wird die Aktualisierung abgebrochen.
Diese Begrenzung dient vor allem dazu, zu verhindern, dass „die ganze Welt“ neu erstellt oder neu heruntergeladen wird.
log-file
(Vorgabe: "/var/log/unattended-upgrade.log"
)Die Datei, in die über unbeaufsichtigte Aktualisierungen Protokoll geführt wird.
Nächste: X Window, Vorige: Netzwerkdienste, Nach oben: Dienste [Inhalt][Index]