# Mise à jour d'Ubuntu via APT-Cacher-NG ## 1. Déployer le service APT-Cacher-NG ### 1.1 Flux réseau requis Pour mettre à jour les serveurs Linux via le proxy APT, ouvrir les flux suivants. **Cas SI-OPS :** | Source | Destination | Port | | --- | --- | --- | | `GRP_SERVER_LINUX` | `GRP_TELEML` | `9999` | | `DMZ_TELEM` | `OPS-APT-CACHER` (`172.31.232.6`) | `9999` | **Cas TELEML avec OpenVPN :** | Source | Destination | Port | | --- | --- | --- | | `GRP_SERVER_LINUX` | `GRP_TELEML` | `9999` | | `DMZ_TELEM` | Internet (`37.58.143.231`) | `49494` | Ces règles de pare-feu sont normalement configurées lors du déploiement de la TELEML sur l'infrastructure. Après le déploiement de la TELEML et la mise en place du tunnel OpenVPN vers le SI Systel, vérifier que la règle entre la TELEML et Gothmog autorise le téléchargement des mises à jour. ### 1.2 Installer et configurer APT-Cacher-NG sur la TELEML Le service APT-Cacher-NG doit être installé sur la TELEML. Les modèles TELEML sont généralement déjà configurés. Si le service n'est pas installé, exécuter : ```bash apt-get install apt-cacher-ng ``` Modifier le fichier `/etc/apt-cacher-ng/acng.conf` avec les paramètres suivants : ```text CacheDir: /var/cache/apt-cacher-ng #Répertoire Cache LogDir: /var/log/apt-cacher-ng #Répertoire Log #Port:3142 PassThroughPattern:.* Port:9999 #Port du Proxy Proxy=172.31.232.6:9999 VerboseLog: 1 ReportPage: acng-report.html #Page de Gestion Nettoyage du Cache (besoin d’apache) ExTreshold: 4 #jour avant suppression de ficher non référencer ``` ## 2. Configurer le proxy sur les machines Linux clientes Pour rediriger les requêtes de mise à jour vers la TELEML, modifier le fichier `/etc/apt/apt.conf` : ```bash nano /etc/apt/apt.conf ``` Le fichier doit contenir les paramètres suivants, en remplaçant `IP-DE-LA-TELEML` par l'adresse IP de la TELEML concernée : ```text Acquire::http { Proxy "http://IP-DE-LA-TELEML:9999"; }; ``` ## 3. Mettre à jour les machines Linux > **Important : effectuer une sauvegarde de la machine avant toute tentative de mise à jour.** ### 3.1 Précaution pour les machines Swarm/Worker/Manager sous Ubuntu 18.04 ou 20.04 Avant de lancer les mises à jour sur une machine Swarm/Docker, commenter dans les fichiers du répertoire `/etc/apt` toutes les sources qui ne concernent pas le système Ubuntu, notamment celles de GlusterFS, Docker et Ansible. Les listes de sources doivent uniquement contenir les dépôts du système Ubuntu. Sur les machines Swarm, arrêter les services suivants avant toute mise à jour : ```bash service glusterfs stop service dockerd stop ``` ### 3.2 Installer les mises à jour de la version actuelle Commencer par installer les dernières mises à jour disponibles pour la version Ubuntu actuellement installée : ```bash apt-get update sudo apt-get install -y software-properties-common sudo apt-get install update-manager-core sudo apt dist-upgrade --fix-missing ``` Pendant la mise à jour, l'OS peut poser des questions. Lire chaque demande et, lorsque le choix est proposé, conserver de préférence la configuration actuelle (touche **N**), conformément à la consigne de la procédure. La mise à jour peut prendre un certain temps, selon la date de la dernière mise à jour. Une fois l'opération terminée, redémarrer la machine si nécessaire. ### 3.3 Mettre à niveau la version d'Ubuntu Les versions Ubuntu citées dans cette procédure sont : - Ubuntu 16.04 LTS - Ubuntu 18.04 LTS - Ubuntu 20.04 LTS - Ubuntu 22.04 LTS La montée de version se fait par paliers. Par exemple, il n'est pas possible de passer directement d'Ubuntu 18.04 à Ubuntu 22.04. Avant de commencer, vérifier la version actuelle : ```bash cat /etc/lsb-release ``` Vérifier également que le système est configuré pour suivre la branche LTS : ```bash cat /etc/update-manager/release-upgrades ``` Exécuter ensuite les commandes correspondant au palier voulu. **Ubuntu 16.04 vers Ubuntu 18.04 :** ```bash sudo sed -i 's/xenial/bionic/g' /etc/apt/sources.list sudo apt update && sudo apt -y dist-upgrade ``` **Ubuntu 18.04 vers Ubuntu 20.04 :** ```bash sudo dpkg --force depends -P lxd; sudo dpkg --force depends -P lxd-client sudo sed -i 's/bionic/focal/g' /etc/apt/sources.list sudo apt update && sudo apt -y dist-upgrade ``` **Ubuntu 20.04 vers Ubuntu 22.04 :** ```bash sudo sed -i 's/focal/jammy/g' /etc/apt/sources.list sudo apt update && sudo apt -y dist-upgrade ``` **Ubuntu 22.04 vers Ubuntu 24.04 :** ```bash sudo sed -i 's/jammy/noble/g' /etc/apt/sources.list sudo sed -i 's/jammy/noble/g' /etc/apt/sources.list.d/*.list ``` La montée de version peut prendre plusieurs minutes. Redémarrer la machine à la fin de l'opération. Pendant la mise à niveau, lire attentivement les questions de l'OS et conserver de préférence la configuration actuelle (touche **N**), conformément à la consigne de la procédure. ## 4. Dépannage ### Erreurs 500 ou 503 pendant `apt update` Si des erreurs 500 ou 503 se produisent pendant `apt update`, vider le cache de la TELEML : ```bash sudo systemctl stop apt-cacher-ng sudo rm -rf /var/cache/apt/* sudo rm -rf /var/cache/apt-cacher-ng/* sudo systemctl start apt-cacher-ng ``` Puis purger le cache d'APT-Cacher-OPS depuis la page suivante : Il peut être nécessaire de répéter cette opération plusieurs fois.