Nächste: X Window, Vorige: Netzwerkdienste, Nach oben: Dienste [Inhalt][Index]
The (gnu services admin)
module provides a service to perform
unattended upgrades: periodically, the system automatically
reconfigures itself from the latest Guix. Guix System has several
properties that make unattended upgrades safe:
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"
)This is the schedule of upgrades, expressed as a string in traditional cron syntax or as a gexp evaluating to a Shepherd calendar event (siehe Timers in The GNU Shepherd Manual).
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
(default: '(unattended-upgrade)
)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.
By default, the unattended-upgrade
service is restarted. This
ensures that the latest version of the unattended upgrade job will be used
next time.
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]