Astech

Mises à Jour Astech

Une image contenant texte

Description générée automatiquement

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

1 Généralités 1

2 Téléchargement 1

2.1 Contenu 1

3 Exécution 2

3.1 ASTech.Maj.exe 2

3.2 ASTech.IIS.Maj.exe 5

4 AWO / Mise à jour des postes clients 6

5 Symphonie / Mise à jour des images Docker 6

6 UPGRADE DE L’OS UBUNTU 7

6.1 Prérequis 7

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

Une image contenant texte, capture d’écran, Site web, Visage humain

Le contenu généré par l’IA peut être incorrect.

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

Mise à jour des fichiers principaux de l’application. Son exécution est obligatoire.

Mise à jour des services web. Son exécution est obligatoire.

Images Docker pour la mise à jour de la Symphonie Box

Images de base Docker pour la mise à jour de la Symphonie Box

Exécution

ASTech.Maj.exe

Une image contenant texte, capture d’écran, logiciel, Page web

Le contenu généré par l’IA peut être incorrect.

Une image contenant texte, Appareils électroniques, capture d’écran, logiciel

Le contenu généré par l’IA peut être incorrect.

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

Une image contenant texte, capture d’écran, Police, nombre

Le contenu généré par l’IA peut être incorrect.

Avertissement 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 image contenant texte, Appareils électroniques, capture d’écran, affichage

Le contenu généré par l’IA peut être incorrect.

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.

Une image contenant texte, Appareils électroniques, capture d’écran, logiciel

Le contenu généré par l’IA peut être incorrect.

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 image contenant texte, Appareils électroniques, capture d’écran, affichage

Le contenu généré par l’IA peut être incorrect.

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

Une image contenant texte, Appareils électroniques, capture d’écran, logiciel

Le contenu généré par l’IA peut être incorrect.

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/

Une image contenant texte, capture d’écran, affichage, logiciel

Le contenu généré par l’IA peut être incorrect.

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.

Une image contenant texte, Appareils électroniques, capture d’écran, logiciel

Le contenu généré par l’IA peut être incorrect.

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 :

Une image contenant texte, capture d’écran, Police

Le contenu généré par l’IA peut être incorrect.

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 :

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 :

Vérifications :

lsb_release -rs

Vérifications :

sudo apt-get update

Si la vérification est KO : demander l’ouverture du flux au niveau réseau.

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

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

if [[ -n $(ls /var/run/reboot-required) ]] ; then sudo reboot now ; fi

Lancement de l’Upgrade OS

sudo do-release-upgrade -f DistUpgradeViewNonInteractive ***

*** Répondre “ N ” pour toutes les questions

Note : cette étape prend généralement une dizaine de minutes.

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

if [[ -n $(ls /var/run/reboot-required) ]] ; then sudo reboot now ; fi

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.

sudo apt-get install docker.io docker-compose-v2

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

sudo su – symphoniedeploy

docker compose --project-directory "/home/symphoniedeploy/symphonie/" up -d --quiet-pull

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

- PROD-<containername :>/<VERSION>.tar

- docker-compose.yml

- 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

sudo docker stop $(sudo docker ps -a -q)

sudo docker rmi -f $(sudo docker images -q)

sudo docker system prune -af && sudo docker volume ls -qf dangling=true

sudo rm /home/symphoniedeploy/symphonie/docker-compose.yml

Copie du fichier de configuration (Docker-compose)

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

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

cat docker-compose.yml

Une image contenant texte

Description générée automatiquement

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 :

sudo ls /opt/config/redis/redis.conf

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.

grep 'http://es-upstream' /opt/config/symfony.conf

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

sudo echo IP_RESOLVER=127.0.0.11 >> /home/symphoniedeploy/symphonie/.env

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

sudo su symphoniedeploy

cd /home/symphoniedeploy/symphonie

echo 'REDIS_PASSWORD=RG59NYLiAnJEeF' >> /home/symphoniedeploy/symphonie/.env 

Cette action télécharge les images des containers, cela peut prendre un certain temps

sudo docker-compose up -d

sudo docker-compose exec php php app/updateparameters

sudo rm -rd cache/dev cache/prod

sudo docker-compose exec php php app/console ca:cl --env=prod && sudo docker-compose exec php php app/console ca:cl --env=dev

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

sudo docker-compose exec php php app/console astech:rabbit:configure --add-astech-user

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 :

sudo docker stop $(sudo docker ps -a -q)

sudo docker rmi -f $(sudo docker images -q)

sudo docker system prune -af && sudo docker volume ls -qf dangling=true

sudo rm /home/symphoniedeploy/symphonie/docker-compose.yml

Copie des nouvelles images sur la VM

Copie depuis un environnement Windows

Exemple avec WinSCP

Une image contenant texte

Description générée automatiquement

Une image contenant texte

Description générée automatiquement

Une fois connecté sur la VM, copier les fichiers téléchargés (ASTechSymphonie.tar.gz et SymphonieBase.tar.gz) dans /var/images/

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

cd /var/images

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.

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

sudo cp docker-compose.yml /home/symphoniedeploy/symphonie

sudo docker images

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 :

sudo ls /opt/config/redis/redis.conf

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.

grep 'http://es-upstream' /opt/config/symfony.conf

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

sudo echo IP_RESOLVER=127.0.0.11 >> /home/symphoniedeploy/symphonie/.env

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

sudo su symphoniedeploy

cd /home/symphoniedeploy/symphonie

echo "REDIS_PASSWORD=RG59NYLiAnJEeF" > /home/symphoniedeploy/symphonie/.env 

Cette action télécharge les images des containers, cela peut prendre un certain temps

sudo docker-compose up -d

sudo docker-compose exec php php app/updateparameters

sudo rm -rd cache/dev cache/prod

sudo docker-compose exec php php app/console ca:cl --env=prod && sudo docker-compose exec php php app/console ca:cl --env=dev

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

sudo docker-compose exec php php app/console astech:rabbit:configure --add-astech-user

sudo docker-compose exec php php app/console astech:elastica:populate

A la fin de cette étape l’application Symphonie est à jour