racqspace.unattended_upgrades

Rôle Ansible : mises à jour non surveillées

MIT État du Workflow GitHub Dernière validation GitHub Date de publication GitHub Maintenance

Installez et configurez unattended-upgrades pour Ubuntu et Debian (depuis Wheezy), afin d'installer périodiquement les mises à jour de sécurité.

Exigences

Le rôle utilise le module apt qui a des dépendances supplémentaires.

Si vous définissez unattended_upgrades_mail sur une adresse e-mail, assurez-vous que la commande mailx est disponible et que votre système peut envoyer des e-mails.

Le rôle nécessite la version 0.70 ou plus récente d'unattended-upgrades, disponible depuis Debian Wheezy et Ubuntu 12.04 respectivement. Ceci est dû à l'utilisation des Modèles d'Origine.

Redémarrage automatique

Si vous activez la fonction de redémarrage automatique (unattended_upgrades_automatic_reboot), le rôle tentera d'installer le paquet update-notifier-common, qui est requis sur certains systèmes pour détecter et exécuter un redémarrage après la mise à jour. Vous pouvez éventuellement définir un moment spécifique pour le redémarrage (unattended_upgrades_automatic_reboot_time).

Cette fonctionnalité était défectueuse dans Debian Jessie, mais a finalement été intégrée dans le paquet unattended-upgrades.

Tâches Cron désactivées

Sur certains hôtes, vous pouvez remarquer que le fichier cron de mises à jour non surveillées /etc/cron.daily/apt a été renommé en apt.disabled. Cela peut être une décision du fournisseur, pour économiser des cycles CPU. Utilisez le rôle enable-standard-cronjobs pour réactiver les mises à jour non surveillées.

Variables du Rôle

principal

  • unattended_upgrades_cache_valid_time: Met à jour le cache apt s'il est plus ancien que le temps donné en secondes ; passé au module apt lors de l'installation des paquets.
    • Par défaut : 3600

mises à jour automatiques

  • unattended_upgrades_enabled: Activer le script de mise à jour/mise à niveau (0=désactiver)
    • Par défaut : 1
  • unattended_upgrades_upgrade: Exécuter le script de mise à niveau de sécurité "unattended-upgrade" tous les n jours (0=désactivé)
    • Par défaut : 1
  • unattended_upgrades_update_package_list: Effectuer "apt-get update" automatiquement tous les n jours (0=désactiver)
    • Par défaut : 1
  • unattended_upgrades_download_upgradeable: Effectuer "apt-get upgrade --download-only" tous les n jours (0=désactiver)
    • Par défaut : 0
  • unattended_upgrades_autoclean_interval: Effectuer "apt-get autoclean" tous les n jours (0=désactiver)
    • Par défaut : 7
  • unattended_upgrades_clean_interval: Effectuer "apt-get clean" tous les n jours (0=désactiver)
    • Par défaut : 0
  • unattended_upgrades_random_sleep: Définir un maximum pour un intervalle aléatoire en secondes après lequel le travail apt commence (uniquement pour les systèmes sans systemd)
    • Par défaut : 1800 (30 minutes)
  • unattended_upgrades_dl_limit: Limiter la vitesse de téléchargement en kB/sec en utilisant la fonction limite de bande passante apt.
    • Par défaut : désactivé

mises à jour non surveillées

  • unattended_upgrades_origins_patterns: tableau de modèles d'origines pour déterminer si le paquet peut être installé automatiquement. Pour plus de détails, voir Modèles d'Origine ci-dessous.
    • Par défaut pour Debian : ['origin=Debian,codename=${distro_codename},label=Debian-Security']
    • Par défaut pour Ubuntu : ['origin=Ubuntu,archive=${distro_codename}-security,label=Ubuntu']
  • unattended_upgrades_package_blacklist: paquets qui ne seront pas automatiquement mis à niveau
    • Par défaut : []
  • unattended_upgrades_autofix_interrupted_dpkg: si, à la sortie non propre de dpkg, exécuter dpkg --force-confold --configure -a
    • Par défaut : true
  • unattended_upgrades_minimal_steps: diviser la mise à niveau en morceaux aussi petits que possible pour qu'ils puissent être interrompus par SIGUSR1.
    • Par défaut : true
  • unattended_upgrades_install_on_shutdown: installer toutes les mises à jour non surveillées lorsque la machine s'éteint.
    • Par défaut : false
  • unattended_upgrades_mail: adresse e-mail pour envoyer des informations sur les mises à niveau ou des problèmes avec les mises à jour non surveillées
    • Par défaut : false (ne pas envoyer d'e-mail)
  • unattended_upgrades_mail_only_on_error: envoyer un e-mail uniquement en cas d'erreurs, sinon un e-mail sera envoyé chaque fois qu'il y a une mise à niveau de paquet.
    • Par défaut : false
  • unattended_upgrades_remove_unused_dependencies: effectuer une suppression automatique de toutes les dépendances inutilisées après la mise à jour.
    • Par défaut : false
  • unattended_upgrades_remove_new_unused_dependencies: effectuer une suppression automatique des nouvelles dépendances inutilisées après la mise à jour.
    • Par défaut : true
  • unattended_upgrades_automatic_reboot: Redémarrer automatiquement le système si un paquet mis à jour l'exige, immédiatement après la mise à jour.
    • Par défaut : false
  • unattended_upgrades_automatic_reboot_time: Redémarrer automatiquement le système à l'heure spécifiée (HH:MM) si un paquet mis à jour l'exige, au lieu de le faire immédiatement après la mise à jour.
    • Par défaut : false
  • unattended_upgrades_update_days: Définir les jours de la semaine où les mises à jour doivent être appliquées. Les jours peuvent être spécifiés sous forme de noms abrégés ou complets. Ou sous forme d'entiers où "0" est le dimanche, "1" est le lundi, etc. Exemple : {"Mon";"Fri"};
    • Par défaut : désactivé
  • unattended_upgrades_ignore_apps_require_restart: les mises à jour non surveillées ne mettront pas automatiquement à niveau certains paquets critiques nécessitant un redémarrage après une mise à jour (c'est-à-dire qu'il y a la directive XB-Upgrade-Requires: app-restart dans leur fichier debian/control). Avec cette option définie sur true, les mises à jour non surveillées mettront à niveau ces paquets, quelle que soit la directive.
    • Par défaut : false
  • unattended_upgrades_syslog_enable: Écrire des événements dans syslog, ce qui est utile dans les environnements où les messages syslog sont envoyés à un stockage central.
    • Par défaut : false
  • unattended_upgrades_syslog_facility: Écrire des événements dans la facilité syslog spécifiée, ou la facilité daemon si elle n'est pas spécifiée. Cela n'aura d'effet que si unattended_upgrades_syslog_enable est défini sur true.
    • Par défaut : daemon
  • unattended_upgrades_verbose: définir le niveau de verbosité d'APT pour les exécutions périodiques. La sortie sera envoyée à root.
    • Options possibles :
      • 0: pas de rapport
      • 1: rapport de progression
      • 2: + sorties de commande
      • 3: + trace activée
    • Par défaut : 0 (pas de rapport)
  • unattended_upgrades_dpkg_options: tableau d'options de ligne de commande dpkg utilisées lors des exécutions de mises à jour non surveillées, par exemple ["--force-confdef"], ["--force-confold"]
    • Par défaut : []

Modèles d'Origine

Le Modèle d'Origine est une alternative plus puissante à l'option Origines Autorisées utilisée dans les versions précédentes de mises à jour non surveillées.

Le modèle est composé de mots-clés spécifiques :

  • a,archive,suite – par exemple stable, trusty-security (archive=stable)
  • c,component – par exemple main, crontrib, non-free (component=main)
  • l,label – par exemple Debian, Debian-Security, Ubuntu
  • o,origin – par exemple Debian, Paquets Multimédias Non Officiels, Ubuntu
  • n,codename – par exemple jessie, jessie-updates, trusty (cela n'est pris en charge qu'avec unattended-upgrades >= 0.80)
  • site – par exemple http.debian.net

Vous pouvez consulter les dépôts disponibles en utilisant apt-cache policy et déboguer votre choix en utilisant la commande unattended-upgrades -d sur un système cible.

De plus, les mises à jour non surveillées supportent deux macros (variables), dérivées de /etc/debian_version :

  • ${distro_id} – Nom de la distribution installée, par exemple Debian ou Ubuntu.
  • ${distro_codename} – Nom codé de la distribution installée, par exemple jessie ou trusty.

Il est préférable d'utiliser ${distro_codename} plutôt que stable ou oldstable comme sélectionnée, car une fois que stable passe à oldstable, aucune mise à jour de sécurité ne sera installée, ou pire, des paquets d'une version plus récente de la distribution seront installés par accident. Il en va de même pour la mise à niveau de votre installation de oldstable à stable. Si vous oubliez de changer cela dans vos modèles d'origine, vous pouvez ne pas recevoir les mises à jour de sécurité pour votre version plus récente de la distribution. Avec ${distro_codename}, ces deux cas ne se produiront jamais.

Exemples d'Utilisation du Rôle

Exemple pour Ubuntu, avec des modèles d'origine personnalisés, des paquets mis sur liste noire et une notification par e-mail :

- hosts: all
  roles:
  - role: racqspace.unattended_upgrades
    vars:
      unattended_upgrades_origins_patterns:
        - 'origin=Ubuntu,archive=${distro_codename}-security'
        - 'o=Ubuntu,a=${distro_codename}-updates'
    unattended_upgrades_package_blacklist: [cowsay, vim]
    unattended_upgrades_mail: '[email protected]'

Remarque : Vous n'avez pas besoin de spécifier unattended_upgrades_origins_patterns, le rôle utilisera la valeur par défaut de la distribution si la variable n'est pas définie.

Exécution uniquement sur les systèmes basés sur Debian

Si vous gérez plusieurs distributions avec le même playbook, vous voudrez peut-être éviter d'exécuter ce rôle sur des systèmes non-Debian. Vous pouvez utiliser une condition when avec le rôle pour limiter le rôle à des systèmes particuliers :

- hosts: all
  roles:
     - role: racqspace.unattended_upgrades
       when: ansible_facts['os_family'] == 'Debian'

Exemples de Modèles

Par défaut, seules les mises à jour de sécurité sont autorisées tant pour Ubuntu que pour Debian. Vous pouvez ajouter d'autres modèles pour permettre aux mises à jour automatiques d'installer davantage de paquets automatiquement, mais sachez que des mises à jour majeures automatisées peuvent potentiellement endommager votre système.

Pour Debian

unattended_upgrades_origins_patterns:
  - 'origin=Debian,codename=${distro_codename},label=Debian-Security' # mises à jour de sécurité
  - 'o=Debian,codename=${distro_codename},label=Debian' # mises à jour incluant les mises à jour non-sécuritaires
  - 'o=Debian,codename=${distro_codename},a=proposed-updates'

Sur Debian Wheezy, en raison de unattended-upgrades étant 0.79.5, vous ne pouvez pas utiliser la directive codename.

Vous devrez donc effectuer une correspondance basée sur l'archive :

unattended_upgrades_origins_patterns:
  - 'origin=Debian,a=stable,label=Debian-Security' # mises à jour de sécurité
  - 'o=Debian,a=stable,l=Debian' # mises à jour incluant les mises à jour non-sécuritaires
  - 'o=Debian,a=proposed-updates'

Veuillez vous assurer de lire les problèmes relatifs à cela dans la documentation sur les modèles d'origine ci-dessus.

Pour Ubuntu

Dans Ubuntu, l'archive contient toujours le nom codé de la distribution :

unattended_upgrades_origins_patterns:
  - 'origin=Ubuntu,archive=${distro_codename}-security'
  - 'o=Ubuntu,a=${distro_codename}'
  - 'o=Ubuntu,a=${distro_codename}-updates'
  - 'o=Ubuntu,a=${distro_codename}-proposed-updates'

Pour Raspbian

Sur Raspbian, il n'est possible de mettre à jour tous les paquets du dépôt par défaut, y compris les mises à jour non-sécuritaires, ou de ne rien mettre à jour.

Mettre à jour tout, y compris les mises à jour non-sécuritaires :

unattended_upgrades_origins_patterns:
  - 'origin=Raspbian,codename=${distro_codename},label=Raspbian'

Vous ne pouvez pas utiliser la directive codename sur Raspbian Wheezy, comme avec Debian Wheezy ci-dessus.

Pour ne pas installer de mises à jour sur un hôte Raspbian, il suffit de définir unattended_upgrades_origins_patterns sur une liste vide :

unattended_upgrades_origins_patterns: []

Licence

MIT

Informations sur l'Auteur

Ce rôle a été créé en 2021 par Clemens Kaserer.

Contributions de :

À propos du projet

Configure unattended-upgrades for Debian based systems.

Installer
ansible-galaxy install racqspace.unattended_upgrades
Licence
mit
Téléchargements
1.4k
Propriétaire