« AutoUpdate » : différence entre les versions

De Le Wiki de Lug
Aller à la navigation Aller à la recherche
 
(13 versions intermédiaires par le même utilisateur non affichées)
Ligne 24 : Ligne 24 :
  }}
  }}
  <font color = grey>...</font>
  <font color = grey>...</font>
  '''MAILTO=root'''
  <font color =blue>MAILTO=root</font>
  30      4      *      *      *      /bin/date > /var/log/apkcrontupdate.log && /sbin/apk -Uv upgrade >> /var/log/apkcrontupdate.log
  30      4      *      *      *      /bin/date > /var/log/apkcrontupdate.log && /sbin/apk -Uv upgrade >> /var/log/apkcrontupdate.log


Ligne 73 : Ligne 73 :
  }}
  }}
  <font color = grey>...</font>
  <font color = grey>...</font>
  MAILTO=root
  <font color =blue>MAILTO=root</font>
  30      4      *      *      *      /bin/date > /var/log/apk-autoupdate.log && /usr/sbin/apk-autoupdate -v >> /var/log/apk-autoupdate.log
  30      4      *      *      *      /bin/date > /var/log/apk-autoupdate.log && /usr/sbin/apk-autoupdate -v >> /var/log/apk-autoupdate.log


Ligne 81 : Ligne 81 :
  # apt update && apt upgrade
  # apt update && apt upgrade
  # apt install unattended-upgrades
  # apt install unattended-upgrades
  # systemctl enable unattended-upgrades
  # systemctl enable --now unattended-upgrades
# systemctl start unattended-upgrades
 
== Configuration ==
== Configuration ==
=== Sélection des MAJ ===
=== Sélection des MAJ ===
Ligne 117 : Ligne 117 :
  # vi /etc/apt/apt.conf.d/50unattended-upgrades
  # vi /etc/apt/apt.conf.d/50unattended-upgrades


  ...
  <font color = grey>...</font>
  <font color = blue>Unattended-Upgrade::Mail "root";</font>
  <font color = blue>Unattended-Upgrade::Mail "root";</font>
  ...
   
// Set this value to one of:
//    "<font color = green>always</font>", "<font color = green>only-on-error</font>" or "<font color = green>on-change</font>"
// If this is not set, then any legacy MailOnlyOnError (boolean) value
// is used to chose between "only-on-error" and "on-change"
<font color = blue>Unattended-Upgrade::MailReport "<font color = green>on-change</font>";</font>
<font color = grey>...</font>


=== Nettoyer automatiquement les dépendences inutiles ===
=== Nettoyer automatiquement les dépendences inutiles ===
Ligne 137 : Ligne 143 :
  ...
  ...


Ensuite on configure la fréquence des mises à jour :
=== Fréquence des mises à jour ===
  # dpkg-reconfigure -plow unattended-upgrades
  # dpkg-reconfigure -plow unattended-upgrades
-> '''<Yes>'''
-> '''<Yes>'''
Ligne 148 : Ligne 154 :
Les lignes ajoutées permettent d'avoir des rapports plus complets et de nettoyer les paquets tous les 7 jours.
Les lignes ajoutées permettent d'avoir des rapports plus complets et de nettoyer les paquets tous les 7 jours.
=== On relance le service ===
=== On relance le service ===
Pour s'assurer que toutes les modifications sont prises en comptes :
  # systemctl restart unattended-upgrades
  # systemctl restart unattended-upgrades


== Test ==
== Test ==
  # unattended-upgrades --dry-run --debug
  # unattended-upgrades --dry-run --debug
= Alma Linux / Rocky Linux =
== Installation==
On installe le programme de mise à jour automatique :
# dnf install dnf-automatic
== Configuration ==
On configure le programme :
# vi /etc/dnf/automatic.conf
On active l'installation des mises à jour :
<font color =grey>...
# install.timer override this setting.</font>
apply_updates = <font color =blue>yes</font>
<font color =grey>...</font>
On ne permet que les mises à jour de sécurité :
<font color =grey>...
# security                          = only the security upgrades</font>
upgrade_type = <font color =blue>security</font>
<font color =grey>random_sleep = 0
...</font>
On active l'envoie de rapports par courriel :
{{Méta bandeau
  | niveau = information
  | icône = loupe
  | texte  = Voir [[Postfix#Alma_Linux_/_Rocky_Linux|installation de Postfix]].
}}
<font color =grey>...</font>
<font color =grey># If emit_via is None or left blank, no messages will be sent.</font>
emit_via = <font color =blue>email</font>
<font color =grey>[email]
# The address to send email messages from.</font>
email_from = <font color =blue>root</font>
<font color =grey># List of addresses to send messages to.
email_to = root
# Name of the host to connect to to send email messages.
email_host = localhost</font>
<font color =grey>...</font>
On active le service :
# systemctl enable --now dnf-automatic.timer

Version actuelle datée du 29 novembre 2022 à 09:51

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

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

...
MAILTO=root
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 --now 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";

// Set this value to one of:
//    "always", "only-on-error" or "on-change"
// If this is not set, then any legacy MailOnlyOnError (boolean) value
// is used to chose between "only-on-error" and "on-change"
Unattended-Upgrade::MailReport "on-change";
...

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";
...

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

Pour s'assurer que toutes les modifications sont prises en comptes :

# systemctl restart unattended-upgrades

Test

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

Alma Linux / Rocky Linux

Installation

On installe le programme de mise à jour automatique :

# dnf install dnf-automatic

Configuration

On configure le programme :

# vi /etc/dnf/automatic.conf

On active l'installation des mises à jour :

...
# install.timer override this setting.
apply_updates = yes
...

On ne permet que les mises à jour de sécurité :

...
# security                           = only the security upgrades
upgrade_type = security
random_sleep = 0
...

On active l'envoie de rapports par courriel :

...
# If emit_via is None or left blank, no messages will be sent.
emit_via = email


[email]
# The address to send email messages from.
email_from = root

# List of addresses to send messages to.
email_to = root

# Name of the host to connect to to send email messages.
email_host = localhost
...

On active le service :

# systemctl enable --now dnf-automatic.timer