Passer au contenu principal

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

  • 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

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/

  • 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.

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 :

  • 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.

Vérifications :

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 image contenant texte

Description générée automatiquement

  • 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

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 » :

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

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 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/

  • 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

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