Outils

Outils de compte

Outils de recherche


Mise à jour Esia - Debian 8 vers Debian 9

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 :

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 c'est bien réalisé en saisissant la commande suivante :

du -sh /root/BACKUP_ESIA/*
Exemples :

Sur un petit esia

root@debian-jessie:~# cd /
root@debian-jessie:/# mkdir -p /root/BACKUP_ESIA
root@debian-jessie:/# su postgres -c pg_dumpall > /root/BACKUP_ESIA/pg_database.sql
root@debian-jessie:/# cp -r /usr/local/esia/plugins /root/BACKUP_ESIA/plugins
root@debian-jessie:/# cp -r /usr/local/esia/public_html /root/BACKUP_ESIA/public_html
root@debian-jessie:/# cp -r /etc/apache2 /root/BACKUP_ESIA/apache2
root@debian-jessie:/# cp -r /etc/esia /root/BACKUP_ESIA/esia_conf
root@debian-jessie:/# iptables-save > /root/BACKUP_ESIA/iptables.txt
root@debian-jessie:/# dpkg -l > /root/BACKUP_ESIA/version.txt
root@debian-jessie:/# 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-jessie:/#

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-jessie:/# cd /
root@debian-jessie:/# mkdir -p /root/BACKUP_ESIA
root@debian-jessie:/# 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-jessie:/# cp -r /usr/local/esia/plugins /root/BACKUP_ESIA/plugins
root@debian-jessie:/# cp -r /usr/local/esia/public_html /root/BACKUP_ESIA/public_html
root@debian-jessie:/# cp -r /etc/apache2 /root/BACKUP_ESIA/apache2
root@debian-jessie:/# cp -r /etc/esia /root/BACKUP_ESIA/esia_conf
root@debian-jessie:/# iptables-save > /root/BACKUP_ESIA/iptables.txt
root@debian-jessie:/# dpkg -l > /root/BACKUP_ESIA/version.txt
root@debian-jessie:/# 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-jessie:/#

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

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 Jessie (commande sed)
  2. On met à jour la base de données système contenant la liste des paquets (commande apt-get update)
  3. On met à jour le système, (commande apt-get 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:

cat /etc/apt/sources.list

Vous devriez avoir les lignes suivantes:

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

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

nano /etc/apt/sources.list

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

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

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 :

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

apt-get -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:

apt-get dist-upgrade

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

581 upgraded, 217 newly installed, 4 to remove and 0 not upgraded.
Need to get 392 MB of archives.
After this operation, 935 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éponds avec ENTER

Question 1

Encore ENTER

Question 2

TAB pour activer le 'OK', ensuite ENTER

Question 3

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

Question 4

TAB pour activer le 'OK', ensuite ENTER

Question 5

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 license d'Esia, vous ne recevrez pas d'alertes. Mais une fois la license activée, il est possible que vous reçeviez de faux-positifs.

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

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

Supprimez les anciens paquets Debian Jessie

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.

apt-get 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 :

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

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

pg_dropcluster 9.6 main --stop
pg_lsclusters

Attention Pour le pg_dropcluster bien mettre 9.6 et pas 9.4 !

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

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

pg_upgradecluster 9.4 main
pg_lsclusters

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

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

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.

a2dismod php5
a2enmod php7.0
service apache2 restart

Accèdez à la page web principale de votre Esia et ajoutez la licence

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. Une cela fait, vous remarquerez deux messages d'erreurs dans votre Esia :

Erreur le programme Esia n'est pas démarré

et

Licence non trouvée. cliquez ici pour ajouter un fichier licence

Licence non trouvée

Ces 2 messages d'erreurs sont liés, le démon Esia ne peut démarrer tant que la licence n'est pas activée.

Pour l'activer, il suffit de :

  1. Cliquer sur le lien ici du message d'erreur.
  2. Cliquer sur le boutton charger le fichier de licence.
  3. Cliquer sur le boutton Appliquer

Activer la licence

Le message d'erreur de la licence disparaît alors. Mais Erreur le programme Esia n'est pas démarré est toujours présent. Voir étape suivante.

Attendre le rédémarrage du démon Esia ou lancez le manuellement

A cet étape, soit :

  • Vous attendez quelques minutes (entre 0 et 5 minutes)
  • Vous exécutez la commande suivante :
service esia restart

Le message d'erreur dans l'interface vas alors disparaître.

Tâches essentielles de fin de mise à jour

Vérifiez si votre VM redémarre

Rédé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 :

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 :
chmod +x /usr/local/esia/plugins/alerting/*
Vérifier si il est activé :
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

/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

La page Web est inaccessible

Configurer php7 dans Apache

Avez vous exécutez la commande suivante ?

a2dismod php5
a2enmod php7.0
service apache2 restart

Vérifiez le status du service Apache2

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

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
    rm -R /root/BACKUP_ESIA/

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

    pg_dropcluster 9.4 main
tierce/update_esia_deb8-9.txt · Dernière modification: 2020/09/17 10:35 par quentin

Outils de la page