racqspace.unattended_upgrades
Rôle Ansible : mises à jour non surveillées
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
- Par défaut :
mises à jour automatiques
unattended_upgrades_enabled
: Activer le script de mise à jour/mise à niveau (0=désactiver)- Par défaut :
1
- Par défaut :
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
- Par défaut :
unattended_upgrades_update_package_list
: Effectuer "apt-get update" automatiquement tous les n jours (0=désactiver)- Par défaut :
1
- Par défaut :
unattended_upgrades_download_upgradeable
: Effectuer "apt-get upgrade --download-only" tous les n jours (0=désactiver)- Par défaut :
0
- Par défaut :
unattended_upgrades_autoclean_interval
: Effectuer "apt-get autoclean" tous les n jours (0=désactiver)- Par défaut :
7
- Par défaut :
unattended_upgrades_clean_interval
: Effectuer "apt-get clean" tous les n jours (0=désactiver)- Par défaut :
0
- Par défaut :
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)
- Par défaut :
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']
- Par défaut pour Debian :
unattended_upgrades_package_blacklist
: paquets qui ne seront pas automatiquement mis à niveau- Par défaut :
[]
- Par défaut :
unattended_upgrades_autofix_interrupted_dpkg
: si, à la sortie non propre de dpkg, exécuterdpkg --force-confold --configure -a
- Par défaut :
true
- Par défaut :
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
- Par défaut :
unattended_upgrades_install_on_shutdown
: installer toutes les mises à jour non surveillées lorsque la machine s'éteint.- Par défaut :
false
- Par défaut :
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)
- Par défaut :
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
- Par défaut :
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
- Par défaut :
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
- Par défaut :
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
- Par défaut :
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
- Par défaut :
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 directiveXB-Upgrade-Requires: app-restart
dans leur fichier debian/control). Avec cette option définie surtrue
, les mises à jour non surveillées mettront à niveau ces paquets, quelle que soit la directive.- Par défaut :
false
- Par défaut :
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
- Par défaut :
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 siunattended_upgrades_syslog_enable
est défini surtrue
.- Par défaut :
daemon
- Par défaut :
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 rapport1
: rapport de progression2
: + sorties de commande3
: + trace activée
- Par défaut :
0
(pas de rapport)
- Options possibles :
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 :
[]
- 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 exemplestable
,trusty-security
(archive=stable
)c
,component
– par exemplemain
,crontrib
,non-free
(component=main
)l
,label
– par exempleDebian
,Debian-Security
,Ubuntu
o
,origin
– par exempleDebian
,Paquets Multimédias Non Officiels
,Ubuntu
n
,codename
– par exemplejessie
,jessie-updates
,trusty
(cela n'est pris en charge qu'avecunattended-upgrades
>= 0.80)site
– par exemplehttp.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 exempleDebian
ouUbuntu
.${distro_codename}
– Nom codé de la distribution installée, par exemplejessie
outrusty
.
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 :
Configure unattended-upgrades for Debian based systems.
ansible-galaxy install racqspace.unattended_upgrades