Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

AutoUpdate

De Le Wiki de Lug

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

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 >> /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