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.

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]