Post

Alpine Linux - Mises à jour automatique

Alpine Linux - Mises à jour automatique

De nombreuses distributions Linux ont un moyen de configurer les mises à jour automatiques, mais de manière assez surprenante, Alpine Linux ne le fait pas.

Mises à jour automatique

Solution minimale pour maintenir vos systèmes Alpine Linux à jour

Pour chaque nouveau serveur Alpine Linux, créer un script shell nommé apk-autoupgrade dans le dossier /etc/periodic/daily/ avecles permissions suivantes : 700

Vous pouvez le créer en une seule commande

1
2
echo -e "#!/bin/sh\napk upgrade --update | sed \"s/^/[\`date\`] /\" >> /var/log/apk-autoupgrade.log" > /etc/periodic/daily/apk-autoupgrade && \
	chmod 700 /etc/periodic/daily/apk-autoupgrade

Votre serveur Alpine Linux se met désormais à jour automatiquement à condition que les tâches cron soient en cours d’exécution.
Activer les tâches cron

1
2
rc-service crond start
rc-update add crond

Le script exécute la commande apk upgrade --update une fois par jour, apk par défaut ne demande jamais l’intervention de l’utilisateur. Le reste du script est là pour vous aider en fournissant des journaux. Vous pouvez consulter le fichier /var/log/apk-autoupgrade.log pour vous assurer que tout fonctionne correctement.

Modification script pour envoi notication ntfy

1
2
3
4
5
6
7
8
9
10
#!/bin/sh
apk upgrade --update | sed "s/^/[`date`] /" >> /var/log/apk-autoupgrade.log
#
curl \
    -H "Title: Alpine Linux serveur ntfy" \
    -H "Authorization: Bearer tk_fjh5bfo3zu2cpibgi2jyfkif49xws" \
    -H prio:low \
    -H tags:information_source \
    -d "Fin exécution script /etc/periodic/daily/apk-autoupgrade" \
    https://noti.rnmkcy.eu/yan_infos

Journal

Voici un exemple de résultat obtenu sur l’un des serveurs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[Wed Mar 12 14:07:35 CET 2025] fetch http://dl-cdn.alpinelinux.org/alpine/v3.21/main/x86_64/APKINDEX.tar.gz
[Wed Mar 12 14:07:35 CET 2025] fetch http://dl-cdn.alpinelinux.org/alpine/v3.21/community/x86_64/APKINDEX.tar.gz
[Wed Mar 12 14:07:35 CET 2025] Upgrading critical system libraries and apk-tools:
[Wed Mar 12 14:07:35 CET 2025] (1/1) Upgrading apk-tools (2.14.6-r2 -> 2.14.6-r3)
[Wed Mar 12 14:07:35 CET 2025] Executing busybox-1.37.0-r9.trigger
[Wed Mar 12 14:07:35 CET 2025] Continuing the upgrade transaction with new apk-tools:
[...]
[Wed Mar 12 14:07:35 CET 2025] (35/42) Upgrading openssh (9.9_p1-r2 -> 9.9_p2-r0)
[Wed Mar 12 14:07:35 CET 2025] (36/42) Upgrading openssl (3.3.2-r4 -> 3.3.3-r0)
[Wed Mar 12 14:07:35 CET 2025] (37/42) Upgrading libffi (3.4.6-r0 -> 3.4.7-r0)
[Wed Mar 12 14:07:35 CET 2025] (38/42) Upgrading python3 (3.12.8-r1 -> 3.12.9-r0)
[Wed Mar 12 14:07:35 CET 2025] (39/42) Upgrading python3-pycache-pyc0 (3.12.8-r1 -> 3.12.9-r0)
[Wed Mar 12 14:07:35 CET 2025] (40/42) Upgrading pyc (3.12.8-r1 -> 3.12.9-r0)
[Wed Mar 12 14:07:35 CET 2025] (41/42) Upgrading python3-pyc (3.12.8-r1 -> 3.12.9-r0)
[Wed Mar 12 14:07:35 CET 2025] (42/42) Upgrading blkid (2.40.2-r4 -> 2.40.4-r0)
[Wed Mar 12 14:07:35 CET 2025] Executing busybox-1.37.0-r12.trigger
[Wed Mar 12 14:07:35 CET 2025] Executing kmod-33-r2.trigger
[Wed Mar 12 14:07:35 CET 2025] Executing mkinitfs-3.11.1-r0.trigger
[Wed Mar 12 14:07:35 CET 2025] ==> initramfs: creating /boot/initramfs-lts for 6.12.18-0-lts
[Wed Mar 12 14:07:35 CET 2025] Executing syslinux-6.04_pre1-r16.trigger
[Wed Mar 12 14:07:35 CET 2025] OK: 224 MiB in 93 packages

Ce script ne redémarre pas les services une fois mis à jour.
Il faut envisager d’étendre le script en vérifiant les mises à jour du noyau ou des services en cours d’exécution, puis en redémarrant le système ou le service en fonction des journaux.
En attendant , soit redémarrer automatiquement les serveurs à un moment donné (les redémarrages sont quasi instantanés).

Liens

Cet article est sous licence CC BY 4.0 par l'auteur.