Outils

Outils de compte

Outils de recherche


Mise à jour Esia - Debian 9 vers Debian 10

Introduction

Le processus de mise à jour dépend beaucoup de la personnalisation qui a été faite sur votre Esia au niveau plugins.

Plus vous avez de plugins ajoutés et plus ces plugins risques de passer en erreur après la mise à jour. Il est donc d'autant plus important de respecter le processus de backup en plus du snapshot afin d'éviter d'être obligé d'effectuer un rollback.

La suite du tuto parle de :

  • 2. Prérequis : Nécessaire pour débuter la mise à jour.
  • 3. Processus de mise à jour : Étapes nécessaires pour la réalisation de la mise à jour
  • 4. Dépannage : Se rapporter à ce chapitre uniquement si vous rencontrez un souci au point 3.
  • 5. Nettoyage : Pour récupérer de l'espace disque après la mise à jour.

Il est vivement conseillé voir nécessaire d'avoir lut au moins 1 fois ce tuto en entier avant de démarrer la mise à jour en production.

Prérequis

Avant de commencer la mise à jour, l’entièreté des points suivants doivent être remplis, il faut s'assurer :

  • D'avoir une connexion internet pour télécharger les paquets de mise à jour.
  • Réaliser au préalable un snapshot de la VM afin de vite revenir à l'état précédent en cas de GROS problèmes.
  • Réaliser quand même un backup de certains fichiers Esia. Pour éviter de faire un rollback du snapshot en cas de PETIT problème. Cette étape est NÉCESSAIRE en cas d'appel au support. Voir le point 3.1.1 « Faire un backup de votre Esia »
  • De posséder un fichier licence Esia sous la main. (habituellement appelé esia.lic) sauf si vous avez une licence Mercury. Sinon, contactez votre gestionnaire de dossier ou partners.contact@esia-sa.com

Étapes de mise à jour

Préparation pre-update

Les 3 étapes suivantes sont a effectuer dans l'ordre souhaité.

Faire un backup de votre Esia

Ceci permettra d'éviter le retour au snapshot en cas de simple erreur de plugin ou autre. Ces erreurs de plugins sont d'ailleurs parfois inévitables et rends donc cette tâche nécessaire.

Les étapes sont :

Vérifiez si vouz avez suffisament d'espace disque pour le backup via la commande :

copy
df -h /root

L'espace disque nécessaire pour le backup dépends de votre Esia. Mais si vous utilisez moins de 50% de votre espace disque. Vous êtes certain d en avoir suffisamment.

backup.sh
#!/bin/bash
cd /
mkdir -p /root/BACKUP_ESIA
su postgres -c pg_dumpall > /root/BACKUP_ESIA/pg_database.sql
cp -r /usr/local/esia/plugins /root/BACKUP_ESIA/plugins
cp -r /usr/local/esia/public_html /root/BACKUP_ESIA/public_html
cp -r /etc/apache2 /root/BACKUP_ESIA/apache2
cp -r /etc/esia /root/BACKUP_ESIA/esia_conf
iptables-save > /root/BACKUP_ESIA/iptables.txt
dpkg -l > /root/BACKUP_ESIA/version.txt

On peut vérifier si le backup s'est bien réalisé en saisissant la commande suivante :

copy
du -sh /root/BACKUP_ESIA/*
Exemples :

Sur un petit esia

root@debian-stretch:~# cd /
root@debian-stretch:/# mkdir -p /root/BACKUP_ESIA
root@debian-stretch:/# su postgres -c pg_dumpall > /root/BACKUP_ESIA/pg_database.sql
root@debian-stretch:/# cp -r /usr/local/esia/plugins /root/BACKUP_ESIA/plugins
root@debian-stretch:/# cp -r /usr/local/esia/public_html /root/BACKUP_ESIA/public_html
root@debian-stretch:/# cp -r /etc/apache2 /root/BACKUP_ESIA/apache2
root@debian-stretch:/# cp -r /etc/esia /root/BACKUP_ESIA/esia_conf
root@debian-stretch:/# iptables-save > /root/BACKUP_ESIA/iptables.txt
root@debian-stretch:/# dpkg -l > /root/BACKUP_ESIA/version.txt
root@debian-stretch:/# du -sh /root/BACKUP_ESIA/*
652K	/root/BACKUP_ESIA/apache2
32K	/root/BACKUP_ESIA/esia_conf
4,0K	/root/BACKUP_ESIA/iptables.txt
660K	/root/BACKUP_ESIA/pg_database.sql
7.9M	/root/BACKUP_ESIA/plugins
23M	/root/BACKUP_ESIA/public_html
96K	/root/BACKUP_ESIA/version.txt
root@debian-stretch:/#

Sur un Esia de 150 noeuds/1800 services

root@enterprise-v3:~# cd /
root@enterprise-v3:/# mkdir -p /root/BACKUP_ESIA
root@enterprise-v3:/# su postgres -c pg_dumpall > /root/BACKUP_ESIA/pg_database.sql
root@enterprise-v3:/# cp -r /usr/local/esia/plugins /root/BACKUP_ESIA/plugins
root@enterprise-v3:/# cp -r /usr/local/esia/public_html /root/BACKUP_ESIA/public_html
root@enterprise-v3:/# cp -r /etc/apache2 /root/BACKUP_ESIA/apache2
root@enterprise-v3:/# cp -r /etc/esia /root/BACKUP_ESIA/esia_conf
root@enterprise-v3:/# iptables-save > /root/BACKUP_ESIA/iptables.txt
root@enterprise-v3:/# dpkg -l > /root/BACKUP_ESIA/version.txt
root@enterprise-v3:/# du -sh /root/BACKUP_ESIA/*
692K	/root/BACKUP_ESIA/apache2
32K	/root/BACKUP_ESIA/esia_conf
4,0K	/root/BACKUP_ESIA/iptables.txt
22M	/root/BACKUP_ESIA/pg_database.sql
9,1M	/root/BACKUP_ESIA/plugins
604M	/root/BACKUP_ESIA/public_html
116K	/root/BACKUP_ESIA/version.txt
root@enterprise-v3:/#

En cas d'erreur, on a des fichiers/répertoires absents ou vides

root@debian-stretch:/# cd /
root@debian-stretch:/# mkdir -p /root/BACKUP_ESIA
root@debian-stretch:/# su postgres -c pg_dumpall > /root/BACKUP_ESIA/pg_database.sql
pg_dumpall: could not connect to database "template1": could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
root@debian-stretch:/# cp -r /usr/local/esia/plugins /root/BACKUP_ESIA/plugins
root@debian-stretch:/# cp -r /usr/local/esia/public_html /root/BACKUP_ESIA/public_html
root@debian-stretch:/# cp -r /etc/apache2 /root/BACKUP_ESIA/apache2
root@debian-stretch:/# cp -r /etc/esia /root/BACKUP_ESIA/esia_conf
root@debian-stretch:/# iptables-save > /root/BACKUP_ESIA/iptables.txt
root@debian-stretch:/# dpkg -l > /root/BACKUP_ESIA/version.txt
root@debian-stretch:/# du -sh /root/BACKUP_ESIA/*
652K	/root/BACKUP_ESIA/apache2
32K	/root/BACKUP_ESIA/esia_conf
4,0K	/root/BACKUP_ESIA/iptables.txt
0	/root/BACKUP_ESIA/pg_database.sql
7.9M	/root/BACKUP_ESIA/plugins
23M	/root/BACKUP_ESIA/public_html
96K	/root/BACKUP_ESIA/version.txt
root@debian-stretch:/#

Faire un snapshot de la VM

Afin de pouvoir revenir rapidement en cas de crash complet.

Désactiver le système d'alerting

Pour éviter de reçevoir des faux-positifs pendant la mise à jour

copy
chmod -x /usr/local/esia/plugins/alerting/*

Mise à jour

La mise à jour se déroule comme ceci :

  1. On modifie le fichier des sources de paquets pour indiquer qu'on passe en buster (commande sed)
  2. On met à jour la base de données système contenant la liste des paquets (commande apt update)
  3. On met à jour le système, (commande apt dist-upgrade). Avant d'exécuter cette commande, il est vivement conseillé de noter l'heure et vérifier l'état actuel de vos alertes. Ceci vous servira plus tard pour vérifier si les plugins Esia fonctionnent correctement après la mise à jour.

Préparer la mise à jour :

Vérifier le fichier apt source, via la commande suivante:

copy
cat /etc/apt/sources.list

Vous devriez avoir les lignes suivantes:

deb http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch main contrib non-free
deb http://stable.repository.esia-sa.com/esia stretch contrib non-free

Au besoin éditer le fichier avec la commande nano (ctrl + o pour sauvegarder et ctrl +x pour quitter).

copy
nano /etc/apt/sources.list

Nous allons maintenant remplacer tout les stretch par buster et mettre à jour la liste des paquets.

copy
sed -i s/stretch/buster/g /etc/apt/sources.list
apt update
Exemple
root@debian-stretch:/# sed -i s/stretch/buster/g /etc/apt/sources.list
root@debian-stretch:/# apt update
Get:1 http://10.8.0.9 buster InRelease [2,271 B]
Get:2 http://10.8.0.9 buster/contrib amd64 Packages [7,200 B]
Get:3 http://10.8.0.9 buster/non-free amd64 Packages [1,963 B]
Ign http://10.8.0.9 buster/contrib Translation-en_US
Ign http://10.8.0.9 buster/contrib Translation-en
Ign http://10.8.0.9 buster/non-free Translation-en_US
Ign http://10.8.0.9 buster/non-free Translation-en
Ign http://ftp.be.debian.org buster InRelease
Get:4 http://ftp.be.debian.org buster Release.gpg [2,410 B]
Get:5 http://ftp.be.debian.org buster Release [118 kB]
Get:6 http://ftp.be.debian.org buster/main amd64 Packages [7,080 kB]
Get:7 http://ftp.be.debian.org buster/main Translation-en [5,377 kB]
Fetched 12.6 MB in 2s (4,354 kB/s)
Reading package lists... Done
root@debian-stretch:/#

Vérifier l'état actuel de votre système :

  1. Faites un screenshot de l'état de vos noeuds et services.

    État des noeuds et services

  2. Notez quelle heure il est.

  3. Vérifier l'espace disque système via la commande ci-dessous :

copy
df -h |grep -v tmpfs|grep -v udev|grep -v /boot

Exemple :

root@enterprise-v3:/# df -h |grep -v tmpfs|grep -v udev|grep -v /boot
Sys. de fichiers                      Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/jessie--students--vg-root    19G    7,7G  9,9G  44% /
root@enterprise-v3:/#

Lancer la mise à jour :

Pour télécharger la mise à jours ESIA + OS

copy
apt -d dist-upgrade

Avant de confirmer, vérifier si vous aurez suffisamment d'espace disque :

Ensuite exécutez la commande suivante pour appliquer et configurer les paquets:

copy
apt dist-upgrade

Dans l'exemple ci-dessous, il faudra 392 MB + 935 MB pendant l'installation.

498 upgraded, 148 newly installed, 5 to remove and 0 not upgraded.
Need to get 0 B/323 MB of archives.
After this operation, 652 MB of additional disk space will be used.
Do you want to continue? [Y/n]
  • Pour toutes les questions posées, laissez la réponse par défaut
  • Pour la question conçernant GRUB : il est nécessaire de ne pas se tromper et de bien cocher le bon disque de démarrage de la VM. Sinon celle-ci pourrait ne plus booter.
Exemples de questions posées

On répond avec “Yes” puis ENTER

Question 1

On répond avec “Yes” puis ENTER

Question 2

On garde toujours réponse par défaut 'N', il suffit donc de faire ENTER

Question 4

On coche les cases avec la barre d'espace. On se déplace avec les flèches. TAB pour activer le 'OK', ensuite ENTER

Il faut absolument cocher le disque de démarrage de la VM.

Question 6

La mise à jour est terminée

Mise à jour terminée

Remise en route post-update des modules importants

Désactivez à nouveau le système d'alerting

La mise à jour d'Esia réactive automatiquement le système d'alerting. Tant que vous n'activez pas la licence d'Esia, vous ne recevrez pas d'alertes. Mais une fois la licence activée, il est possible que vous receviez de faux-positifs.

Il est donc préférable de rééxécuter la commande suivante avant l'activation de la licence.

copy
chmod -x /usr/local/esia/plugins/alerting/*

Supprimez les anciens paquets Debian Stretch

Cette étape est nécessaire, en plus de gagner en espace disque, gardez les anciennes versions de paquets pourrait :

  • Causer des bugs dans Esia
  • Causer des problèmes dans les mises à jour futur.

Il est donc vivement conseillé de réalisé cette étape même si votre Esia fonctionne maintenant correctement. De plus cela permet aussi de faire ressortir de suite des problèmes/bugs qui serait survenait plus tard de manière aléatoire.

copy
apt autoremove

Confirmer ensuite la suppression.

Mettez a jour votre base de donnée Esia

Les commandes suivantes permettes de mettre à jour votre base de donnée. Votre Esia fonctionne actuellement sans réaliser cette étape. Mais si vous l'ignorez des problèmes surviendront dans les mises à jour futur.

Vérifier la présence des bases de données :

copy
pg_lsclusters
Exemple
root@debian-stretch:/# pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
11  main    5433 online postgres /var/lib/postgresql/11/main  /var/log/postgresql/postgresql-11-main.log

root@debian-stretch:/# Supprimez la nouvelle base de donnée

copy
pg_dropcluster 11 main --stop
pg_lsclusters

Attention Pour le pg_dropcluster bien mettre 11 et pas 9.6 !

Exemple
root@debian-stretch:/# pg_dropcluster 11 main --stop
Redirecting stop request to systemctl
root@debian-stretch:/# pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
root@debian-stretch:/#

Copiez l'ancienne base de donnée (celle de votre Esia) vers la nouvelle version

copy
pg_upgradecluster 9.6 main
pg_lsclusters

La première commande prends du temps a s’exécuter. Une fois terminée, le pg_lscluster montre ceci :

Exemple
root@debian-stretch:/# pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5433 down   postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
11  main    5432 online postgres /var/lib/postgresql/11/main  /var/log/postgresql/postgresql-11-main.log
root@debian-stretch:/#

Vérifiez ensuite si votre interface web fonctionne correctement.

Faire fonctionner l'interface web d'Esia

Après l'installation, il est nécessaire d'exécuter les commandes suivantes pour refaire fonctionner l'interface web.

copy
a2dismod php7.0
a2enmod php7.3
service apache2 restart
apt remove php7.0
apt autoremove

Accèdez à la page web principale de votre Esia

Après la mise à jour, connectez-vous sur votre serveur Esia et il faut impérativement rafraîchir votre cache Navigateur (ctrl +F5 sous Firefox). Les bugs des boutons de menu se corrigeront.

Tâches essentielles de fin de mise à jour

Vérifiez si votre VM redémarre

Redémarrez votre VM et vérifier si le redémarrage fonctionne. Une erreur de configuration de GRUB ou dans la mise à jour du système pourrait faire en sorte que la VM ne démarre plus. Ou que certains services Esia ne redémarre pas automatiquement.

Il est nécessaire d'effectuer cette opération tant que le snapshot est suffisamment afin d'évitez de perdre trop de données.

Pour rebooter de manière propre, saisissez la commande suivante :

copy
shutdown -r now

Vérifiez l'état de vos services

Certains plugins de monitoring pourraient ne plus fonctionnez après la mise à jour. C'est souvent le cas quand des plugins supplémentaires on été manuellement installés. Il est donc préférable de vérifier le fonctionnement de ceux-ci de 2 manières :

Méthode 1 : Véfifiez le status des noeuds et des services

Comparez l'état actuel de vos noeuds et services avec le screenshot pris précédemment, si on constate une différence faible/minime, alors, l'a mise à jour s'est probablement bien déroulée.

État des noeuds et services

Si on constate une grosse différence, soit :

  • Des pannes sont survenues dans votre infrastructure
  • Soit certains de vos plugins ne fonctionnent plus après la mise à jour. (Dans ce cas contactez notre support)
Méthode 2 : Vérifiez si vous avez des nouvelles alertes

Rendez vous sur la page des alertes en cours. Si vous avez boucoup d'alertes, triez celles-ci par date.

Vous devriez avoir noté l'heure de début de la mise à jour. Utilisez cette info pour vérifier les alertes qui se sont déroulées après. Pour la plupart, dans les 10 minutes suivant :

  • l'activation de la licence.
  • le reboot de la machine.

Ces alertes peuvent être causées :

  • Par un problème dans votre infrastructure.
  • Par un dysfonctionnement du plugin après la mise à jour.
Exemple :

La mise à jour de 7h36 à probablement causé l'erreur de 7h44 dans un des plugins :

Page d'alertes en cours

Réactivez le système d'alerte

Une fois que votre Esia fonctionne correctement, n'oubliez pas de réactiver l'alerting :

Activation :
copy
chmod +x /usr/local/esia/plugins/alerting/*
Vérifier si il est activé :
copy
ls --color -l /usr/local/esia/plugins/alerting/*

On peut voir dans les exemples ci-dessous la couleur verte qui indique que le sripts sont éxécutables. Ils sont donc activés.

Exemples :

Alerting désactivé

Alerting désactivé

Alerting activé

Alerting activé

Il faut maintenant tester que vous recevez bien les mails d'alertes

copy
/usr/local/esia/plugins/alerting/send_mail_html.pl -e min -t <votre adresse mail> -D

Regardez si un mail est bien arrivé dans votre boite.

Dépannage

Toutes les unitys sont déconnectées

La configuration du pare-feux interne d'Esia a peut-être supprimer l'autorisation de connexion des unitys. Taper la ligne de commande suivante

copy
iptables -L

Si vous ne trouver pas une ligne du style:

ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:2080

Il faut taper les commandes suivantes, pour ouvrir le port et sauvegarder la configuration:

copy
iptables -A INPUT -p tcp -m tcp --dport 2080 -j ACCEPT
iptables-save > /etc/iptables.rules

La page Web est inaccessible

Configurer php7 dans Apache

Avez vous exécutez la commande suivante ?

copy
a2dismod php7.0
a2enmod php7.3
service apache2 restart

Vérifiez le status du service Apache2

copy
service apache2 status

Exemple de service Apache2 à l'arrêt :

Service Apache2 à l'arrêt

Exemple de service Apache2 démarré :

Service Apache2 démarré

Tenter de redémarrer le service Apache2

copy
service apache2 start
service apache2 status

Nettoyage

Ce petit nettoyage, non obligatoire. Permet de gagner pas mal d'espace disque. Il est conseillé de réaliser les étapes suivantes une fois qu'on est certain que tous c'est bien déroulé. Voir même d'attendre plusieurs jours après la mise à jour.

  • Suppression du snapshot
  • Suppression du backup
    copy
    rm -R /root/BACKUP_ESIA/

  • Suppression de l'ancienne base de donnée (ATTENTION à bien mettre 9.6)

    copy
    pg_dropcluster 9.6 main
advanced/update_esia_deb9-10.txt · Dernière modification : 2023/03/08 11:16 de 127.0.0.1

Outils de la page