Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


12.9.6 Unbeaufsichtigte Aktualisierungen

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:

Um unbeaufsichtigte Aktualisierungen einzurichten, fügen Sie eine Instanz des Diensttyps unattended-upgrade-service-type wie im folgenden Beispiel zur Liste Ihrer Betriebssystemdienste hinzu:

(service unattended-upgrade-service-type)

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).

Scheme-Variable: unattended-upgrade-service-type

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).

Datentyp: unattended-upgrade-configuration

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.

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]