Table des matières
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 :
- On modifie le fichier des sources de paquets pour indiquer qu'on passe en bookworm (commande sed)
- On met à jour la base de données système contenant la liste des paquets (commande apt update)
- 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 :
Notez quelle heure il est.
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
On garde toujours réponse par défaut 'N', il suffit donc de faire ENTER
La mise à jour est 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
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.
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 :
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 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 :
Exemple de 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.