Outils

Outils de compte

Outils de recherche


Mise à jour Esia - Debian 11 vers Debian 12

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 »

Étapes de mise à jour

Préparation pre-update

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

Vérifier l'espace disponible

Avant de commencer, vérifiez que vous avez assez d'espace pour le backup ou les images linux (partition: /boot)

copy
df -h /

Si vous n'avez pas assez d'espace, il faudra faire un peut de nettoyage (fichier de log, ancienne image linux, etc)

root@debian-bullseye:~# df -h
Filesystem                 Size  Used Avail Use% Mounted on
udev                       982M     0  982M   0% /dev
tmpfs                      200M   21M  180M  11% /run
/dev/mapper/main--vg-root  8.9G  1.7G  6.7G  21% /
tmpfs                      998M   28K  998M   1% /dev/shm
tmpfs                      5.0M     0  5.0M   0% /run/lock
tmpfs                      998M     0  998M   0% /sys/fs/cgroup
/dev/sda1                  472M   49M  399M  11% /boot
tmpfs                      200M     0  200M   0% /run/user/1000

root@debian-bullseye:/#

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 suffisamment d'espace disque pour le backup via la commande :

copy
df -h /

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

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

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 bookworm (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 full-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 bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://stable.repository.esia-sa.com/esia bullseye 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 bullseye par bookworm et mettre à jour la liste des paquets.

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

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/bullseye--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 full-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 full-upgrade

Dans l'exemple ci-dessous, il faudra 475 MB + 1 195 MB pendant l'installation.

The following NEW packages will be installed:
  cpp-12 cron-daemon-common dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common dbus-user-session esia-pypsrp g++-12 gcc-11-base gcc-12 gcc-12-base guile-3.0-libs libabsl20220623 libaom3 libapache2-mod-php8.2 libasan8
  libavif15 libboost-filesystem1.81.0 libboost-program-options1.81.0 libbpf1 libcbor0.8 libdav1d6 libde265-0 libencode-perl libffi8 libfile-find-rule-perl libgav1-1 libgcc-12-dev libgprofng0 libgsasl18 libgssglue1 libheif1 libicu72
  libidn12 libjemalloc2 libjsoncpp25 libldap-2.5-0 liblerc4 libllvm14 libllvm15 libmailutils9 libnuma1 libnumber-compare-perl libperl5.36 libproc2-0 libpython3.11 libpython3.11-dev libpython3.11-minimal libpython3.11-stdlib librav1e0
  libregexp-ipv6-perl libsemanage2 libsepol2 libssl3 libstdc++-12-dev libstring-crc32-perl libsvtav1enc1 libsystemd-shared libtext-glob-perl libtiff6 libtsan2 liburing2 libwebp7 libx265-199 libxrandr2 libyuv0 linux-image-6.1.0-29-amd64
  ntpsec ntpsec-ntpdig perl-modules-5.36 php8.2-cli php8.2-common php8.2-curl php8.2-opcache php8.2-pgsql php8.2-readline php8.2-rrd php8.2-ssh2 php8.2-sybase postgresql-15 postgresql-client-15 python3-cffi python3-cffi-backend
  python3-cryptography python3-ntp python3-ply python3-pycparser python3.11 python3.11-dev python3.11-minimal rpcsvc-proto usrmerge util-linux-extra zstd
The following packages will be upgraded:
  adduser apache2 apache2-bin apache2-data apache2-utils apparmor apt apt-utils base-files base-passwd bash bind9-dnsutils bind9-host bind9-libs binutils binutils-common binutils-x86-64-linux-gnu bsdextrautils bsdutils busybox bzip2
  ca-certificates console-setup console-setup-linux coreutils cpio cpp cron dash dbus debconf debconf-i18n debian-archive-keyring debianutils dictionaries-common diffutils dirmngr discover discover-data dmeventd dmidecode dmsetup
  dnsutils dpkg dpkg-dev e2fsprogs e2fsprogs-l10n eject emacsen-common esia-config esia-cron esia-daemon esia-database esia-importation-common esia-keystore esia-plugins-open esia-poller esia-rcm esia-watchdog exim4-base exim4-config
  exim4-daemon-light fakeroot file findutils fontconfig fontconfig-config fonts-dejavu-core freeipmi-common freeipmi-tools freetds-common g++ gawk gcc gettext-base gnupg gnupg-agent gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client
  gpg-wks-server gpgconf gpgsm gpgv grep groff-base grub-common grub-pc grub-pc-bin grub2-common gsasl-common guile-2.2-libs gzip hostname htop iamerican ibritish ienglish-common ifupdown init init-system-helpers initramfs-tools
  initramfs-tools-core installation-report iproute2 iptables iputils-ping isc-dhcp-client isc-dhcp-common ispell kbd keyboard-configuration klibc-utils kmod krb5-locales less libacl1 libaio1 libalgorithm-c3-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libapparmor1 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libapt-pkg6.0 libargon2-1 libasan6 libassuan0 libatomic1 libattr1 libaudit-common libaudit1 libauthen-pam-perl
  libauthen-sasl-perl libauthen-simple-net-perl libauthen-simple-pam-perl libb-hooks-endofscope-perl libb-hooks-op-check-perl libbinutils libblas3 libblkid1 libboost-chrono1.74.0 libboost-filesystem1.74.0 libboost-program-options1.74.0
  libboost-random1.74.0 libboost-regex1.74.0 libboost-system1.74.0 libboost-timer1.74.0 libbrotli1 libbsd0 libbz2-1.0 libc-bin libc-dev-bin libc-devtools libc-l10n libc6 libc6-dev libcairo2 libcap-ng0 libcap2 libcap2-bin
  libcapture-tiny-perl libcc1-0 libcgi-pm-perl libclass-accessor-perl libclass-c3-perl libclass-c3-xs-perl libclass-dbi-perl libclass-dbi-pg-perl libclass-inspector-perl libclass-load-perl libclass-load-xs-perl
  libclass-method-modifiers-perl libclass-singleton-perl libclass-tiny-perl libclass-trigger-perl libclass-xsaccessor-perl libclone-choose-perl libclone-perl libcom-err2 libcommon-sense-perl libconfig-inifiles-perl
  libconvert-binhex-perl libcrypt-dev libcrypt-passwdmd5-perl libcrypt1 libcrypto++8 libcryptsetup12 libctf-nobfd0 libctf0 libcurl4 libdata-dump-perl libdata-optlist-perl libdatetime-format-mail-perl libdatetime-format-strptime-perl
  libdatetime-locale-perl libdatetime-perl libdatetime-timezone-perl libdatrie1 libdb5.3 libdbd-pg-perl libdbd-pgsql libdbi-perl libdbix-contextualfetch-perl libdbus-1-3 libdebconfclient0 libdeflate0 libdevel-callchecker-perl
  libdevel-caller-perl libdevel-globaldestruction-perl libdevel-lexalias-perl libdevel-overloadinfo-perl libdevel-partialdump-perl libdevel-stacktrace-perl libdevmapper-event1.02.1 libdevmapper1.02.1 libdigest-hmac-perl libdiscover2
  libdist-checkconflicts-perl libdpkg-perl libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libdynaloader-functions-perl libedit2 libelf1 libemail-abstract-perl libemail-address-xs-perl
  libemail-date-format-perl libemail-messageid-perl libemail-mime-contenttype-perl libemail-mime-encodings-perl libemail-mime-perl libemail-sender-perl libemail-simple-perl libencode-locale-perl libestr0 libeval-closure-perl
  libevent-2.1-7 libevent-core-2.1-7 libevent-pthreads-2.1-7 libexception-class-perl libexpat1 libexpat1-dev libexporter-tiny-perl libext2fs2 libfakeroot libfastjson4 libfcgi-perl libfdisk1 libfido2-1 libfile-fcntllock-perl
  libfile-listing-perl libfile-sharedir-perl libfont-afm-perl libfontconfig1 libfreeipmi17 libfreetype6 libfribidi0 libfstrm0 libfuse2 libgc1 libgcc-s1 libgcrypt20 libgd3 libgdbm-compat4 libgdbm6 libgl1 libgl1-mesa-dri libglapi-mesa
  libglib2.0-0 libglib2.0-data libglvnd0 libglx-mesa0 libglx0 libgmp10 libgnutls-dane0 libgnutls30 libgomp1 libgpg-error-l10n libgpg-error0 libgpm2 libgssapi-krb5-2 libharfbuzz0b libhogweed6 libhtml-form-perl libhtml-format-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libhttp-server-simple-perl libidn2-0 libima-dbi-perl libimport-into-perl libio-html-perl
  libio-pty-perl libio-socket-ssl-perl libip4tc2 libip6tc2 libipc-run-perl libipc-shareable-perl libipmiconsole2 libipmidetect0 libiptc0 libisl23 libitm1 libjansson4 libjbig0 libjpeg62-turbo libjs-jquery libjs-jquery-metadata
  libjs-jquery-tablesorter libjs-jquery-ui libjs-sphinxdoc libjs-underscore libjson-c5 libjson-perl libjson-xs-perl libk5crypto3 libkeyutils1 libklibc libkmod2 libkrb5-3 libkrb5support0 libksba8 libldap-common liblingua-en-inflect-perl
  liblist-moreutils-xs-perl liblocale-gettext-perl liblog-log4perl-perl liblognorm5 liblsan0 libltdl7 liblua5.3-0 liblvm2cmd2.03 liblwp-mediatypes-perl liblz4-1 liblzma5 libmagic-mgc libmagic1 libmail-imapclient-perl
  libmail-pop3client-perl libmail-sendmail-perl libmailtools-perl libmariadb3 libmath-round-perl libmaxminddb0 libmd0 libmime-lite-perl libmime-tools-perl libmime-types-perl libmodule-implementation-perl libmodule-pluggable-perl
  libmodule-runtime-conflicts-perl libmodule-runtime-perl libmoo-perl libmoose-perl libmoox-types-mooselike-perl libmount1 libmpc3 libmpfr6 libmro-compat-perl libnamespace-autoclean-perl libnamespace-clean-perl libncurses5 libncurses6
  libncursesw5 libncursesw6 libnet-http-perl libnet-ip-perl libnet-libidn-perl libnet-openssh-perl libnet-smtp-ssl-perl libnet-smtp-tls-perl libnet-smtps-perl libnet-snmp-perl libnet-ssleay-perl libnetfilter-conntrack3 libnettle8
  libnewt0.52 libnfnetlink0 libnftables1 libnftnl11 libnghttp2-14 libnl-3-200 libnl-genl-3-200 libnss-systemd libntlm0 libnumber-format-perl libonig5 libopts25 libp11-kit0 libpackage-deprecationmanager-perl libpackage-stash-perl
  libpackage-stash-xs-perl libpadwalker-perl libpam-cap libpam-modules libpam-modules-bin libpam-runtime libpam-systemd libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libparams-classify-perl libparams-util-perl
  libparams-validate-perl libparams-validationcompiler-perl libparse-recdescent-perl libpcap0.8 libpci3 libpciaccess0 libpcre2-8-0 libpcre3 libpipeline1 libpixman-1-0 libpng16-16 libpopt0 libpq5 libprotobuf-c1 libpsl5 libpython3-dev
  libpython3-stdlib libquadmath0 libreadline8 libref-util-perl libref-util-xs-perl librrd8 librrds-perl librrdtool-oo-perl libsasl2-2 libsasl2-modules libsasl2-modules-db libscalar-list-utils-perl libseccomp2 libselinux1
  libsemanage-common libsensors-config libsensors5 libsigsegv2 libslang2 libsmartcols1 libsnmp-base libsnmp40 libsocket6-perl libspecio-perl libsql-abstract-limit-perl libsql-abstract-perl libsqlite3-0 libss2 libssh2-1 libstdc++6
  libsub-exporter-perl libsub-exporter-progressive-perl libsub-identify-perl libsub-install-perl libsub-name-perl libsub-quote-perl libswitch-perl libsybdb5 libsys-hostname-long-perl libsystemd0 libtasn1-6 libtest-deep-perl
  libtest-fatal-perl libtext-charwidth-perl libtext-csv-perl libtext-csv-xs-perl libtext-iconv-perl libtext-trim-perl libtext-unidecode-perl libtext-wrapi18n-perl libthai-data libthai0 libthrowable-perl libtime-duration-perl libtinfo5
  libtinfo6 libtirpc-common libtirpc-dev libtirpc3 libtry-tiny-perl libtsan0 libubsan1 libudev1 libunbound8 libunistring2 libuniversal-moniker-perl libunwind8 liburi-perl libusb-1.0-0 libustr-1.0-1 libuuid1 libuv1 libvariable-magic-perl
  libvulkan1 libwayland-client0 libwrap0 libwww-mechanize-perl libwww-perl libx11-6 libx11-data libx11-xcb1 libxapian30 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-render0 libxcb-shm0
  libxcb-sync1 libxcb-xfixes0 libxcb1 libxdamage1 libxext6 libxfixes3 libxfont2 libxml-dom-perl libxml-libxml-perl libxml-namespacesupport-perl libxml-parser-perl libxml-perl libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl
  libxml-simple-perl libxml2 libxmlrpc-epi0 libxmu6 libxmuu1 libxpm4 libxrender1 libxslt1.1 libxstring-perl libxt6 libxtables12 libxxhash0 libz3-4 libzstd1 linux-base linux-image-amd64 linux-libc-dev locales login logrotate logsave
  lsb-base lua-lpeg lvm2 mailcap mailutils mailutils-common man-db manpages manpages-dev mariadb-common mawk media-types mesa-vulkan-drivers mount mysql-common nano ncal ncurses-base ncurses-bin ncurses-term ndiff net-tools netbase
  nftables nmap nmap-common ntp openssh-client openssh-server openssh-sftp-server openssl os-prober passwd pci.ids pciutils perl perl-base perl-openssl-defaults php-cli php-common php-curl php-pgsql php-rrd php-ssh2 php-sybase
  pinentry-curses postgresql postgresql-client-common postgresql-common postgresql-contrib procps psmisc python-bareos python3 python3-bs4 python3-chardet python3-dev python3-distutils python3-lib2to3 python3-lxml python3-minimal
  python3-pip python3-pkg-resources python3-setuptools python3-soupsieve python3-wheel qemu-guest-agent readline-common rrdcached rrdtool rsyslog runit-helper sed sensible-utils shared-mime-info snmp snmpd sntp ssl-cert sudo sysstat
  systemd systemd-sysv sysvinit-utils tar task-english task-ssh-server tasksel tasksel-data thin-provisioning-tools tzdata ucf udev usbutils util-linux util-linux-locales vim vim-common vim-runtime vim-tiny wamerican wget whiptail
  x11-common x11-xkb-utils xauth xdg-user-dirs xfonts-75dpi xfonts-base xfonts-encodings xkb-data xserver-common xvfb xxd xz-utils zlib1g zlib1g-dev
677 upgraded, 95 newly installed, 46 to remove and 0 not upgraded.
Need to get 475 MB of archives.
After this operation, 1,195 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 garde toujours réponse par défaut 'N', il suffit donc de faire ENTER

Question 2

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 bullseye

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-bullseye:/# pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
13 main    5432 online postgres /var/lib/postgresql/13/main /var/log/postgresql/postgresql-13-main.log
15 main    5433 online postgres /var/lib/postgresql/15/main /var/log/postgresql/postgresql-15-main.log

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

copy
pg_dropcluster 15 main --stop
pg_lsclusters

Attention Pour le pg_dropcluster bien mettre 15 et pas 13 !

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

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

copy
pg_upgradecluster 13 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-bullseye:/# pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
13 main    5433 down   postgres /var/lib/postgresql/13/main /var/log/postgresql/postgresql-13-main.log
15 main    5432 online postgres /var/lib/postgresql/15/main /var/log/postgresql/postgresql-15-main.log
root@debian-bullseye:/#

Pour éviter des bugs dans Esia. La commande ci-dessous doit être exécutée après un upgrade vers un postgresql15, ce qui est votre cas ici.

copy
/usr/local/esia/sql/webp/ipam/run_postgres_15.sh

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.4
a2enmod php8.2
service apache2 restart
apt remove php7.4
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.4
a2enmod php8.2
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 13)

    copy
    pg_dropcluster 13 main
advanced/update_esia_deb.txt · Dernière modification : 2025/02/18 09:18 de q.george

Outils de la page