« AutoUpdate » : différence entre les versions

De Le Wiki de Lug
Aller à la navigation Aller à la recherche
Ligne 21 : Ligne 21 :
   | niveau = information
   | niveau = information
   | icône = loupe
   | icône = loupe
   | texte  = Voir [[Postfix#Alpine_Linux|'''installation d'un relais local Postfix''']].
   | texte  = Voir [[Postfix#Alpine_Linux|installation d'un relais local Postfix]].
  }}
  }}
  <font color = grey>...</font>
  <font color = grey>...</font>

Version du 8 octobre 2021 à 16:12

Alpine Linux

Crontab

# crontab -e

On ajoute la ligne suivante pour que chaque jour à 4h30 la mise à jour s'effectue avec les logs dans le fichier /var/log/apkcrontupdate.log

...
30      4       *       *       *       /bin/date > /var/log/apkcrontupdate.log && /sbin/apk -Uv upgrade >> /var/log/apkcrontupdate.log

On peut également recevoir le résultat par mail :

...
MAILTO=root
30      4       *       *       *       /bin/date > /var/log/apkcrontupdate.log && /sbin/apk -Uv upgrade >> /var/log/apkcrontupdate.log

APK-Autoupdate

Installation

Si absent il faut ajouter le dépôt "testing" aux sources :

# echo 'https://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories

On installe le paquêt :

# apk update && apk upgrade
# apk add apk-autoupdate

Configuration

# vi /etc/apk/autoupdate.conf

Outre les listes blanche et noire habituelles il est possible de spécifier une commande autre que "restart" (si plusieurs séparées par un espace blanc).

  • Par exemple pour recharger Nginx plutôt que le redémarrer :
...
# Note: Case patterns (shell "case") may be used in program path.
programs_services="/usr/sbin/nginx:nginx:reload"
...
  • Exemple pour recharger lighttpd plutôt que le redémarrer :
...
# Note: Case patterns (shell "case") may be used in program path.
programs_services="/usr/sbin/lighttpd:lighttpd:reload"
...

Test

# apk-autoupdate -sv

Crontab

# crontab -e

On ajoute la ligne suivante pour que chaque jour à 4h30 la mise à jour s'effectue avec les logs dans le fichier /var/log/apk-autoupdate.log

30      4       *       *       *       /bin/date > /var/log/apk-autoupdate.log && /usr/sbin/apk-autoupdate -v >> /var/log/apk-autoupdate.log

Debian / Ubuntu

On utilise l'outil fournit "unattended-upgrades"

Installation

# apt update && apt upgrade
# apt install unattended-upgrades
# systemctl enable unattended-upgrades
# systemctl start unattended-upgrades

Configuration

Sélection des MAJ

# vi /etc/apt/apt.conf.d/50unattended-upgrades

On active les mises à jour souhaitées en supprimant le "//" devant la ligne idoine, ici nous gardons la configuration par défaut qui ne met automatiquement à jour que les MAJ de sécurité :

...
// pocket these get automatically pulled in.
Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        // Extended Security Maintenance; doesn't necessarily exist for
        // every release and this system may not have it installed, but if
        // available, the policy for updates is such that unattended-upgrades
        // should also install from here by default.
        "${distro_id}ESMApps:${distro_codename}-apps-security";
        "${distro_id}ESM:${distro_codename}-infra-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
...

Activer l'envoie de rapports par mail

# vi /etc/apt/apt.conf.d/50unattended-upgrades
...
Unattended-Upgrade::Mail "root";
...

Nettoyer automatiquement les dépendences inutiles

# vi /etc/apt/apt.conf.d/50unattended-upgrades
...
// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

// Do automatic removal of newly unused dependencies after the upgrade
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
Unattended-Upgrade::Remove-Unused-Dependencies "true";
...

Ensuite on configure la fréquence des mises à jour :

# dpkg-reconfigure -plow unattended-upgrades

-> <Yes>

# vi /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Verbose "2";
APT::Periodic::AutocleanInterval "7";

Les lignes ajoutées permettent d'avoir des rapports plus complets et de nettoyer les paquets tous les 7 jours.

On relance le service

# systemctl restart unattended-upgrades

Test

# unattended-upgrades --dry-run --debug