Suivant: Système de fenêtrage X, Précédent: Services réseau, Monter: Services [Table des matières][Index]
Guix fournit un service pour effectuer des unattended upgrades : périodiquement, le système se reconfigure automatiquement à partir du dernier Guix. Guix System possède plusieurs propriétés qui rendent les mises à jour non surveillées sûres :
guix system list-generations
–et vous pouvez revenir à n’importe
quelle génération précédente, si le système mis à jour ne se comporte pas
comme prévu ;
guix system reconfigure
empêche les déclassements, ce qui le rend
immunisé contre les attaques downgrade attacks.
Pour mettre en place des mises à jour sans surveillance, ajoutez une
instance de unattended-upgrade-service-type
comme celle ci-dessous, à
la liste des services de votre système d’exploitation :
Les valeurs par défaut ci-dessus mettent en place des mises à jour hebdomadaires : tous les dimanches à minuit. Il n’est pas nécessaire de fournir le fichier de configuration du système d’exploitation : il utilise /run/current-system/configuration.scm, ce qui garantit qu’il utilise toujours votre dernière configuration—voir provenance-service-type, pour plus d’informations sur ce fichier.
Plusieurs choses peuvent être configurés, notamment la périodicité et les
services (démons) à redémarrer à la fin. Lorsque la mise à jour est
réussie, le service se charge de supprimer les générations de systèmes plus
anciennes qu’un certain seuil, conformément à guix system
delete-generations
. Voir la référence ci-dessous pour plus de détails.
Pour vous assurer que les mises à jour sont bien effectuées, vous pouvez
exécuter guix system describe
. Pour enquêter sur les échecs de
mise à jour, consultez le fichier journal des mises à jour non surveillées
(voir ci-dessous).
C’est le type de service pour les mises à jour sans surveillance. Il met en
place un job mcron (voir Exécution de tâches planifiées) qui exécute
guix system reconfigure
à partir de la dernière version des canaux
spécifiés.
Sa valeur doit être un enregistrement
unattended-upgrade-configuration
(voir ci-dessous).
Ce type de données représente la configuration du service de mise à jour non surveillée. Les champs suivants sont disponibles :
schedule
(par défaut : "30 01 * * 0"
)Il s’agit du calendrier des mises à jour, exprimé sous la forme d’une gexp contenant un calendrier des travaux mcron (voir mcron job specifications dans GNU mcron).
channels
(par défaut : #~%default-channels
)Ce gexp spécifie les canaux à utiliser pour la mise à jour
(voir Canaux). Par défaut, l’extrémité du canal officiel guix
est
utilisée.
operating-system-file
(par défaut : "/run/current-system/configuration.scm"
)Ce champ indique le fichier de configuration du système d’exploitation à utiliser. La valeur par défaut est de réutiliser le fichier de configuration de la configuration actuelle.
Il y a cependant des cas où la référence à
/run/current-system/configuration.scm n’est pas suffisante, par
exemple parce que ce fichier fait référence à des fichiers supplémentaires
(clés publiques SSH, fichiers de configuration supplémentaires, etc.)
via local-file
et constructions similaires. Pour ces cas, nous
recommandons quelque chose qui va dans ce sens :
(unattended-upgrade-configuration
(operating-system-file
(file-append (local-file "." "config-dir" #:recursive? #t)
"/config.scm")))
L’effet ici est d’importer tout le répertoire courant dans le dépôt, et de
se référer à config.scm dans ce répertoire. Par conséquent,
l’utilisation de local-file
dans config.scm fonctionnera comme
prévu. Voir G-Expressions, pour plus d’ informations sur
local-file
et file-append
.
operating-system-expression
(par défaut : #f
)Ce champ spécifie une expression qui s’évalue en un système d’exploitation à
utiliser pour la mise à jour. Si aucune valeur n’est fournie, le champ
operating-system-file
est utilisé.
(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
(par défaut : '(mcron)
)Ce champ indique les services Shepherd à redémarrer lorsque la mise à jour est terminée.
Ces services sont redémarrés dès qu’ils sont terminés, comme avec
herd restart
, ce qui garantit que la dernière version
fonctionne—souvenez-vous que par défaut guix system reconfigure
ne redémarre que les services qui ne fonctionnent pas actuellement, ce qui
est conservateur : cela minimise les perturbations mais laisse fonctionner
les services obsolètes.
Utilisez herd status
pour trouver les candidats au
redémarrage. Voir Services, pour des informations générales sur les
services. Les services courants à redémarrer sont ntpd
et
ssh-daemon
.
Par défaut, le service mcron
est redémarré. Cela garantit que la
dernière version du travail de mise à niveau non surveillée sera utilisée la
prochaine fois.
system-expiration
(par défaut : (* 3 30 24 3600)
)C’est le temps d’expiration en secondes pour les générations du système.
Les générations du système plus anciennes que ce délai sont supprimées avec
guix system delete-generations
lorsqu’une mise à jour se termine .
Remarque : Le service de mise à jour sans surveillance ne fait pas fonctionner le ramasse miettes. Vous voudrez probablement configurer votre propre job mcron pour exécuter
guix gc
périodiquement.
minimum-duration
(par défaut : 3600
)Durée maximale en secondes de la mise à jour ; passé ce délai, la mise à jour est interrompue.
Cela est surtout utile pour s’assurer que la mise à jour ne finira pas par reconstruire ou retélécharger « le monde ».
log-file
(par défaut : "/var/log/unattended-upgrade.log"
)Fichier où sont consignées les mises à jour non surveillées.
Suivant: Système de fenêtrage X, Précédent: Services réseau, Monter: Services [Table des matières][Index]