Suivant: , Précédent: , Monter: Services   [Table des matières][Index]


10.8.5 Mises à jour non surveillées (Unattended Upgrades)

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 :

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 :

(service unattended-upgrade-service-type)

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

Variable Scheme : unattended-upgrade-service-type

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

Type de données : unattended-upgrade-configuration

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.

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: , Précédent: , Monter: Services   [Table des matières][Index]