Mises à Jour Astech

Mise à jour AWO / Symphonie
www.astech-solutions.com
01.60.42.74.40
AS-TECH Solutions – FUTURE BUILDING II – 1280, Avenue des Platanes – 34970 Lattes/Boirargues
Table des matières
4 AWO / Mise à jour des postes clients 6
5 Symphonie / Mise à jour des images Docker 6
6.2 Préparation de l’Upgrade OS 7
6.3 Lancement de l’Upgrade OS 8
6.4 A réaliser après l’Upgrade OS (Même si L’Upgrade est KO) 8
7 Récupération de la mise à jour 9
8 La VM a un accès web (ONLINE) 9
8.1 Suppression des anciennes images 9
8.2 Copie du fichier de configuration (Docker-compose) 9
8.3 NOUVEAU : Ajout du fichier de configuration Redis 10
8.4 NOUVEAU : Revue de la configuration Nginx 11
8.5 Lancement de la mise à jour 12
9 La VM n’a aucun accès externe (OFFLINE) 13
9.1 Suppression des anciennes images 13
9.2 Copie des nouvelles images sur la VM 13
9.2.1 Copie depuis un environnement Windows 13
9.2.2 Copie depuis un environnement Linux 14
9.3 Préparation de la mise à jour 14
9.4 NOUVEAU : Ajout du fichier de configuration Redis 15
9.5 NOUVEAU : Revue de la configuration Nginx 15
9.6 Lancement de la mise à jour 16
Généralités
Procédure de mise à jour des applications AWO et OPUS
Cette mise à jour permet la montée de version de l’OS Ubuntu de Symphonie vers la version 24.04 qui devra être fait en priorité (si vous avez ce type d’OS), avant la mise à jour des containers (Voir §9 pour les actions)
En lien avec ce changement de version d’OS, Nous vous rappelons aussi les préconisations pour la VM Symphonie :
Processeurs : allouer au minimum 2 vcpu
Mémoire vive : allouer au minimum 8Go
Téléchargement
Les mises à jour sont disponibles sur l’espace client de notre site http://www.astech-solutions.com

Télécharger et décompresser ce fichier dans un répertoire temporaire sur le serveur d’application
(ex : \ ASTechSolutions\Update\Release\)
Contenu
Le fichier téléchargé contient plusieurs fichiers
- ASTech.Maj.exe
Mise à jour des fichiers principaux de l’application. Son exécution est obligatoire.
- ASTech.IIS.Maj.exe
Mise à jour des services web. Son exécution est obligatoire.
- ASTechSymphonie.tar.gz
Images Docker pour la mise à jour de la Symphonie Box
- SymphonieBase.tar.gz
Images de base Docker pour la mise à jour de la Symphonie Box
Exécution
ASTech.Maj.exe


Indiquer le répertoire de base de l’application.

Il est obligatoire que l’arborescence des répertoires soit respectée. Sinon, les fichiers de mise à jour ne seront pas copiés dans les bons répertoires

Une fois les fichiers extraits du setup de mise à jour, l’utilitaire de mise à jour de la base de données s’exécute automatiquement.

Utiliser la liste déroulante pour sélectionner la base de données à mettre à jour.
Ensuite, utiliser le bouton Préparation script afin d’afficher le script à exécuter.

Une fois le script affiché, il faut l’exécuter.

Une fois la mise à jour effectuée, si des messages d’erreur apparaissent, compresser et faites-nous parvenir le répertoire \Update\Tool\Log
Pour cela, merci de créer un ticket sur l’espace client https://support.astech-solutions.com/
- En fin de mise à jour de la base de données, si un écran s’ouvre automatiquement, cela veut dire que vous possédez une SymphonieBox.

Dans ce cas, merci de vous reporter au $5 de ce document.
ASTech.IIS.Maj.exe
Ce setup de mise à jour de la partie Web s’exécute de la même façon que précédemment.

Indiquer le répertoire de base de l’application.
Si la partie Service web est installée sur un autre serveur, il faut utiliser la structure suivante :

Ce Setup ne fait qu’une extraction de fichiers dans les répertoires concernés. Il n’y a pas de lancement de l’application de mise à jour des bases de données car cela est déjà fait avec le Setup précédent.
AWO / Mise à jour des postes clients
La mise à jour des postes clients se fait en automatique au lancement de l’application par l’intermédiaire de ASTechLance.exe. Si les fichiers présents sur le serveur sont différents des fichiers sur le poste client alors une mise à jour est proposée à l’utilisateur.
Donc aucune action nécessaire pour mettre à jour les postes clients
Symphonie / Mise à jour des images Docker
Ce document décrit la mise à jour manuelle d’un environnement Symphonie non ouvert à notre serveur de déploiement.
Il existe 2 possibilités de mise à jour :
- Soit la VM a un accès web permettant de télécharger les images docker à mettre à jour (voir §8)
- Soit la VM n’a aucun accès et dans ce cas les images doivent être copiées et déployées manuellement (Voir §9)
Cette mise à jour permet la montée de version de l’OS Ubuntu vers la version 24.04 qui devra être fait en priorité (si vous avez ce type d’OS), avant la mise à jour des containers (Voir §6 pour les actions)
UPGRADE DE L’OS UBUNTU
Prérequis
Dans le cas où une MAJ de la Box est prévue en parallèle, il faudra d’abord réaliser l’Upgrade OS.
Afin de procéder à la montée de version de l’OS de la Box :
- la version actuelle de l’OS est inférieure à 24.04
Vérifications :
lsb_release -rs
- la VM doit accéder au repo système d’Ubuntu.
sudo apt-get update
Si la vérification est KO : demander l’ouverture du flux au niveau réseau.
- le /boot doit disposer d’au moins 1.5Go d’espace libre
Vérifications :
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 2,0G 75M 1,8G 5% /boot
Si la vérification est KO : Exécuter les deux lignes de commande ci-dessous (Puis vérifier à nouveau)
sudo dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/ { print $2 }' |grep -v "$(uname -r | cut -f1,2 -d"-")" | grep -e '[0-9]' |sudo xargs apt-get -y purge
sudo dpkg --list | grep ^rc | awk '{ print $2; }' | xargs -r sudo apt-get -y purge
Préparation de l’Upgrade OS
- Préparation des packages système :
sudo apt-get remove docker.io
sudo apt-get autoremove
sudo DEBIAN_FRONTEND=noninteractive dpkg --configure -a
sudo apt-get update
sudo apt-get upgrade ***
sudo apt dist-upgrade
sudo apt-get install update-manager-core
*** Répondre “ Y ” pour la mise à jour de zabbix.list

- Reboot du serveur si nécessaire, via cette ligne de commande :
if [[ -n $(ls /var/run/reboot-required) ]] ; then sudo reboot now ; fi
Lancement de l’Upgrade OS
- Lancement de la montée de version :
sudo do-release-upgrade -f DistUpgradeViewNonInteractive ***
*** Répondre “ N ” pour toutes les questions
Note : cette étape prend généralement une dizaine de minutes.
- Mise à jour des packages de base et de sécurité :
sudo apt-get install libjansson-dev
sudo apt list --upgradable | grep security | cut \-d\/ -f1|xargs sudo apt-get install -y || /bin/true
sudo apt-cache search linux-image-[0-9] | grep generic | sort -V | tail -1 | cut -d' ' -f 1 | xargs sudo apt-get install -y || /bin/true
sudo apt-cache search linux-headers-[0-9] | grep generic | sort -V | tail -1 | cut -d' ' -f 1 | xargs sudo apt-get install -y || /bin/true
- Reboot du serveur si nécessaire :
if [[ -n $(ls /var/run/reboot-required) ]] ; then sudo reboot now ; fi
- Vérifier que la version de l’OS est correctement montée :
lsb_release -rs
Note : il faudra répéter la procédure jusqu’à atteindre la version 24.04.
A réaliser après l’Upgrade OS (Même si L’Upgrade est KO)
Les étapes suivantes devront être réalisées, même dans le cas où l’Upgrade OS est en erreur.
- Réinstaller docker :
sudo apt-get install docker.io docker-compose-v2
- Se connecter à Docker Hub avec le mot de passe 352bd13d-5e39-4441-8360-44f8fb6b60a3
sudo docker login -u astechsolutions
Note : Suite à la mise à jour de docker-compose, il est possible d’obtenir des messages de warning sur les commandes docker, ces messages sont sans impact et à ignorer :
WARN[0000] /home/symphoniedeploy/symphonie/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
- Démarrer les containers :
sudo su – symphoniedeploy
docker compose --project-directory "/home/symphoniedeploy/symphonie/" up -d --quiet-pull
- Vérifier que tous les containers sont en statut « UP » :
sudo docker ps -a
A la fin de cette étape l’Upgrade OS est terminé, il est possible de procéder à la MAJ applicative de la Box si nécessaire.
Récupération de la mise à jour
Le setup de mise à jour récupéré depuis l’espace client contient la mise à jour AWO ainsi que les images Docker pour Symphonie
- Le fichier ASTechSymphonie.tar.gz contient :
- PROD-<containername :>/<VERSION>.tar
- docker-compose.yml
- Le fichier SymphonieBase.tar.gz contient :
- elasticsearch:<VERSION>.tar
- mercure:<VERSION>.tar
- rabbitmq:<VERSION>.tar
- redis:<VERSION>.tar
La VM a un accès web (ONLINE)
Suppression des anciennes images
Afin de mettre en place le nouvel environnement il est nécessaire de supprimer l’environnement actuel.
Pour commencer, connectez-vous à la VM Symphonie et effectuez les commandes suivantes
- Arrêt des différents containers :
sudo docker stop $(sudo docker ps -a -q)
- Suppression des différentes images
sudo docker rmi -f $(sudo docker images -q)
- Nettoyage du système docker et suppression des partages entres les containers
sudo docker system prune -af && sudo docker volume ls -qf dangling=true
- Suppression du docker-compose de la version précédente
sudo rm /home/symphoniedeploy/symphonie/docker-compose.yml
Copie du fichier de configuration (Docker-compose)
- Le fichier docker-compose.yml est disponible dans le Zip téléchargé.
Si vous n’avez pas la possibilité de copier vers la VM ou si vous ne souhaitez pas mettre en place la clé SSH, vous pouvez télécharger directement le fichier depuis la VM
- Télécharger le fichier docker-compose.yml lié à la version à installer
cd /home/symphoniedeploy/symphonie
https://astech34970.sharepoint.com/:u:/s/Externe/EcRK064cDpVLhqBXlCkDAyIB6Cstd1RArxWM9BR0_ia6tA?download=1
Le lien de téléchargement est mis à jour à chaque version
- Vérifier que la version des containers dans le docker-compose est bien celle attendue
cat docker-compose.yml

- Une fois le fichier téléchargé se connecter au serveur Docker Hub avec le mot de passe dckr_pat_15b9hTo-bR_xSLWMn35NDMFFsz8
sudo docker login -u astechsolutions
Le mot de passe est soumis à une politique de sécurité et peut donc être modifié. Dans ce cas merci de contacter notre support
NOUVEAU : Ajout du fichier de configuration Redis
A partir de la version 6.07.800, un container REDIS a été ajouté à l'application afin d'optimiser les temps de réponse. Le fichier de configuration de ce container est donc à ajouter manuellement la première fois en suivant les étapes suivantes :
- Vérifier si le fichier redis.conf existe déjà sur la Box Symphonie :
sudo ls /opt/config/redis/redis.conf
- Si le fichier n’existe pas, il faut l’ajouter :
sudo mkdir -p /opt/config/redis
echo -ne 'bind 0.0.0.0\nport 6379\nprotected-mode yes\nsave ""\nappendonly no\nmaxmemory 1gb\nmaxmemory-policy allkeys-lru\nloglevel notice\nlogfile ""' | sudo tee /opt/config/redis/redis.conf
sudo chown -R symphoniedeploy:symphoniedeploy /opt/config/redis/
NOUVEAU : Revue de la configuration Nginx
A partir de la version 6.07.900, la configuration par défaut du container nginx diffère, ce qui implique des modifications de la configuration nginx déjà présente sur votre Box Symphonie.
- Vérifier le fichier symfony.conf
grep 'http://es-upstream' /opt/config/symfony.conf
- Si la commande ci-dessus retourne une ligne proxy_pass http://es-upstream;
sudo /opt/config/symfony.conf /opt/config/symfony.conf.backup
sudo sed -i '/location ~ \^\(\/_aliases\|.*_search\|.*_mapping.*\)/,/^}/ {
/proxy_pass http:\/\/es-upstream;/!d
}' /opt/config/symfony.conf
sudo sed -i '/^\s*# ELASTICSEARCH\s*$/d' /opt/config/symfony.conf
sudo sed -i '/^\s*proxy_pass http:\/\/es-upstream;\s*$/d' /opt/config/symfony.conf
- En complément, uniquement si vous utilisez Docker (serveur Ubuntu)
sudo echo IP_RESOLVER=127.0.0.11 >> /home/symphoniedeploy/symphonie/.env
- En complément, uniquement si vous utilisez Podman (serveur RedHat)
sudo sed -i 's/^\([[:space:]]*\)resolver 127\.0\.0\.11 10\.89\.0\.1;/\1resolver 10.89.0.1;/' /opt/config/symfony.conf
sudo echo IP_RESOLVER=10.89.0.1 >> /home/symphoniedeploy/symphonie/.env
Lancement de la mise à jour
Note : Suite à la mise à jour de docker-compose, il est possible d’obtenir des messages de warning sur les commandes docker, ces messages sont sans impact et à ignorer :
WARN[0000] /home/symphoniedeploy/symphonie/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
- Changer d’utilisateur pour utiliser « symphoniedeploy » :
- Se positionner dans le répertoire « symphonie » :
cd /home/symphoniedeploy/symphonie
- Configurer le mot de passe Redis :
echo 'REDIS_PASSWORD=RG59NYLiAnJEeF' >> /home/symphoniedeploy/symphonie/.env
- Lancer les containers docker :
Cette action télécharge les images des containers, cela peut prendre un certain temps
sudo docker-compose up -d
- Mise à jour du fichier parameters.yml:
sudo docker-compose exec php php app/updateparameters
- Supprimer les anciens caches de l’application :
sudo rm -rd cache/dev cache/prod
- Créer les caches de l’application :
sudo docker-compose exec php php app/console ca:cl --env=prod && sudo docker-compose exec php php app/console ca:cl --env=dev
- Changer les droits sur les dossiers :
sudo docker-compose exec php chown -R www-data:www-data app/cache app/logs app/config web/uploads
sudo chown -R www-data:www-data cache logs config
sudo chmod -R 777 cache logs config
- Création de l’utilisateur astech pour rabbitMQ :
sudo docker-compose exec php php app/console astech:rabbit:configure --add-astech-user
- La dernière étape consiste à lancer une indexation des données :
sudo docker-compose exec php php app/console astech:elastica:populate
A la fin de cette étape l’application Symphonie est à jour
La VM n’a aucun accès externe (OFFLINE)
Suppression des anciennes images
Afin de mettre en place le nouvel environnement il est nécessaire de supprimer l’environnement actuel.
Pour commencer, connectez-vous à la VM Symphonie et effectuez les commandes suivantes :
- Arrêt des différents containers
sudo docker stop $(sudo docker ps -a -q)
- Suppression des différentes images
sudo docker rmi -f $(sudo docker images -q)
- Nettoyage du système docker et suppression des partages entres les containers
sudo docker system prune -af && sudo docker volume ls -qf dangling=true
- Suppression du docker-compose de la version précédente
sudo rm /home/symphoniedeploy/symphonie/docker-compose.yml
Copie des nouvelles images sur la VM
Copie depuis un environnement Windows
Exemple avec WinSCP



Une fois connecté sur la VM, copier les fichiers téléchargés (ASTechSymphonie.tar.gz et SymphonieBase.tar.gz) dans /var/images/
- Si le dossier /var/images/ n’existe pas il faut l’ajouter
sudo mkdir /var/images
sudo chown -R $USER:$USER /var/images
Copie depuis un environnement Linux
Le transfert de fichier se fera en ligne de commande :
Exemple de commande dans laquelle il faut remplacer <MaClePrivee> et <Fichier à envoyer>
scp -i <MaClePrivee> -P 3422 <Fichier a envoyer> administrateur@<IP SYMPHONIE BOX>:/var/images
Préparation de la mise à jour
Etape pour décompresser et charger les nouvelles images
- Se positionner dans le dossier
cd /var/images
- Décompresser les fichiers en utilisant les commandes
sudo tar -xvf ASTechSymphonie.tar.gz
sudo tar -xvf SymphonieBase.tar.gz
Le résultat de cette commande sera la création d’un dossier contenant les images docker des différentes parties essentielles au fonctionnement du logiciel.
Une fois la décompression faite, on peut supprimer les 2 fichiers gz pour gagner de la place qui sera nécessaire sinon il faut /var avec 40Go.
Mais même si les 2 fichiers gz sont supprimés il faudra quand même 30Go pour /var.
- Charger les nouvelles images.
Se positionner dans les dossiers décompressés, par exemple :
cd prod-6.06.500.00.00
Puis charger les images (une par une depuis les 2 répertoires : prod et base) :
sudo docker load -i <NomDesImages>.tar
- Copier le fichier de configuration (Docker-compose) qui se trouve dans le dossier de la nouvelle version (ex : 6.06.500.00.00) dans le répertoire de configuration
sudo cp docker-compose.yml /home/symphoniedeploy/symphonie
- Vérifier la présence des nouvelles images dans DOCKER
sudo docker images
- Une fois les images vérifiées vous pouvez supprimer les fichiers de mise à jour
sudo rm -rd /var/images/prod-6.06.500.00.00 && sudo rm prod-6.06.500.00.00.tar.gz
NOUVEAU : Ajout du fichier de configuration Redis
A partir de la version 6.07.800, un container REDIS a été ajouté à l'application afin d'optimiser les temps de réponse. Le fichier de configuration de ce container est donc à ajouter manuellement la première fois en suivant les étapes suivantes :
- Vérifier si le fichier redis.conf existe déjà sur la Box Symphonie :
sudo ls /opt/config/redis/redis.conf
- Si le fichier n’existe pas, il faut l’ajouter :
sudo mkdir -p /opt/config/redis
echo -ne 'bind 0.0.0.0\nport 6379\nprotected-mode yes\nsave ""\nappendonly no\nmaxmemory 1gb\nmaxmemory-policy allkeys-lru\nloglevel notice\nlogfile ""' | sudo tee /opt/config/redis/redis.conf
sudo chown -R symphoniedeploy:symphoniedeploy /opt/config/redis/
NOUVEAU : Revue de la configuration Nginx
A partir de la version 6.07.900, la configuration par défaut du container nginx diffère, ce qui implique des modifications de la configuration nginx déjà présente sur votre Box Symphonie.
- Vérifier le fichier symfony.conf
grep 'http://es-upstream' /opt/config/symfony.conf
- Si la commande ci-dessus retourne une ligne proxy_pass http://es-upstream;
sudo /opt/config/symfony.conf /opt/config/symfony.conf.backup
sudo sed -i '/location ~ \^\(\/_aliases\|.*_search\|.*_mapping.*\)/,/^}/ {
/proxy_pass http:\/\/es-upstream;/!d
}' /opt/config/symfony.conf
sudo sed -i '/^\s*# ELASTICSEARCH\s*$/d' /opt/config/symfony.conf
sudo sed -i '/^\s*proxy_pass http:\/\/es-upstream;\s*$/d' /opt/config/symfony.conf
- En complément, uniquement si vous utilisez Docker (serveur Ubuntu)
sudo echo IP_RESOLVER=127.0.0.11 >> /home/symphoniedeploy/symphonie/.env
- En complément, uniquement si vous utilisez Podman (serveur RedHat)
sudo sed -i 's/^\([[:space:]]*\)resolver 127\.0\.0\.11 10\.89\.0\.1;/\1resolver 10.89.0.1;/' /opt/config/symfony.conf
sudo echo IP_RESOLVER=10.89.0.1 >> /home/symphoniedeploy/symphonie/.env
Lancement de la mise à jour
Note : Suite à la mise à jour de docker-compose, il est possible d’obtenir des messages de warning sur les commandes docker, ces messages sont sans impact et à ignorer :
WARN[0000] /home/symphoniedeploy/symphonie/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
Téléchargement des containers Docker et mise à jour des dossiers
- Changer d’utilisateur pour utiliser « symphoniedeploy » :
sudo su symphoniedeploy
- Se positionner dans le répertoire « symphonie » :
cd /home/symphoniedeploy/symphonie
- Configurer le mot de passe Redis :
echo "REDIS_PASSWORD=RG59NYLiAnJEeF" > /home/symphoniedeploy/symphonie/.env
- Lancer les containers docker :
Cette action télécharge les images des containers, cela peut prendre un certain temps
sudo docker-compose up -d
- Mise à jour du fichier parameters.yml:
sudo docker-compose exec php php app/updateparameters
- Supprimer les anciens caches de l’application :
sudo rm -rd cache/dev cache/prod
- Créer les caches de l’application :
sudo docker-compose exec php php app/console ca:cl --env=prod && sudo docker-compose exec php php app/console ca:cl --env=dev
- Changer les droits sur les dossiers :
sudo docker-compose exec php chown -R www-data:www-data app/cache app/logs app/config web/uploads
sudo chown -R www-data:www-data cache logs config
sudo chmod -R 777 cache logs config
- Création de l’utilisateur astech pour rabbitMQ :
sudo docker-compose exec php php app/console astech:rabbit:configure --add-astech-user
- La dernière étape consiste à lancer une indexation des données :
sudo docker-compose exec php php app/console astech:elastica:populate
A la fin de cette étape l’application Symphonie est à jour
Pas de commentaires