serveurs:installation:bkp-srv:pre-prod-geonature

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveurs:installation:bkp-srv:pre-prod-geonature [2024/04/10 08:55] – [Reconfigurer l'Atlas] jpmilcentserveurs:installation:bkp-srv:pre-prod-geonature [2025/02/24 15:18] (Version actuelle) – [Création du container Docker hébergeant Postgresql & Nginx] jpmilcent
Ligne 10: Ligne 10:
   * Recréer les liens symboliques de la racine du home de geonat : <code bash>   * Recréer les liens symboliques de la racine du home de geonat : <code bash>
 ln -s www/atlas atlas ln -s www/atlas atlas
-ln -s www/atlas_old atlas_old 
 ln -s www/geonature geonature ln -s www/geonature geonature
-ln -s www/geonature_old geonature_old 
 ln -s www/taxhub taxhub ln -s www/taxhub taxhub
-ln -s www/taxhub_old taxhub_old 
 ln -s www/usershub usershub ln -s www/usershub usershub
-ln -s www/usershub_old usershub_old 
 </code> </code>
  
Ligne 47: Ligne 43:
     * Adapter le fichier //environ// aux caractéristiques du serveur de la pré-prod : ''vi ./environ''     * Adapter le fichier //environ// aux caractéristiques du serveur de la pré-prod : ''vi ./environ''
   * Recréer les liens symboliques présents dans ''frontend/src/external_assets/'' et dans ''external_modules/''   * Recréer les liens symboliques présents dans ''frontend/src/external_assets/'' et dans ''external_modules/''
-  * Réinstaller Npm et Node à l'aide de Nvm : +  * Réinstaller les modules pre-existant : <code bash> 
-    * ''cd frontend/'' +source backend/venv/bin/activate 
-    * ''nvm use''  +pip list | grep modules 
-  * Réinstaller les paquets Npm : +pip install -e /home/geonat/www/modules/<module> 
-    * ''cd frontend/'' +pip list | grep modules 
-    * '' npm install'' +</code> 
-  * Reconstruire le frontend à l'aide d'Angular : +  * Essayer de réinstaller le frontend à l'aide du script : 
-    * ''cd frontend/'' +    * ''cd install/'' 
-    * ''npm run build'' +    * ''./04_install_fontend.sh'' 
 +  * Sinon, une alternative et la réinstallation manuelle du frontend : 
 +    * Réinstaller Npm et Node à l'aide de Nvm : 
 +      * ''cd frontend/'' 
 +      * ''nvm use''  
 +    * Réinstaller les paquets Npm : 
 +      * ''cd frontend/'' 
 +      * '' npm install'' 
 +    * Reconstruire le frontend à l'aide d'Angular : 
 +      * ''cd frontend/'' 
 +      * ''npm run build'' 
   * Corriger/Créer un fichier Logrotate :   * Corriger/Créer un fichier Logrotate :
     * ''vi /etc/logrotate.d/geonature''     * ''vi /etc/logrotate.d/geonature''
Ligne 120: Ligne 126:
 npm install npm install
 npm run build npm run build
 +</code>
 +  * Créer une dossier pour les logs : <code bash>
 +mkdir /var/log/geonature/
 +mv /var/log/usershub.log /var/log/geonature/
 +chown -R geonat: /var/log/geonature/
 </code> </code>
   * Créer un fichier logrotate : <code bash>vi /etc/logrotate.d/geonature</code> <code logrotate>   * Créer un fichier logrotate : <code bash>vi /etc/logrotate.d/geonature</code> <code logrotate>
Ligne 134: Ligne 145:
 } }
 </code> </code>
-  * Corriger le service SystemD en vérifiant que les éléments suivant sont présents : <code bash>systemctl edit geonature</code> <code systemd>+  * Surcharger le service SystemD : <code bash>systemctl edit geonature</code> <code systemd>
 [Unit] [Unit]
 Description=GeoNature - PreProd Description=GeoNature - PreProd
Ligne 277: Ligne 288:
 rm -fR venv rm -fR venv
 ./install_app.sh ./install_app.sh
 +</code>
 +  * Créer une dossier pour les logs : <code bash>
 +mkdir /var/log/taxhub/
 +mv /var/log/usershub.log /var/log/taxhub/
 +chown -R geonat: /var/log/taxhub/
 </code> </code>
   * Créer un fichier logrotate : <code bash>vi /etc/logrotate.d/taxhub</code> <code logrotate>   * Créer un fichier logrotate : <code bash>vi /etc/logrotate.d/taxhub</code> <code logrotate>
Ligne 291: Ligne 307:
 } }
 </code> </code>
-  * Corriger le service SystemD : <code bash>systemctl edit taxhub</code> <code systemd>+  * Surcharger le service SystemD : <code bash>systemctl edit taxhub</code> <code systemd>
 [Unit] [Unit]
 Description=TaxHub - PreProd Description=TaxHub - PreProd
Ligne 329: Ligne 345:
   * Accéder à //Psql// avec : <code bash>psql -U ${POSTGRES_USER} ${POSTGRES_DB}</code>   * Accéder à //Psql// avec : <code bash>psql -U ${POSTGRES_USER} ${POSTGRES_DB}</code>
   * Dans le container, l'utilisateur ${POSTGRES_USER} et la base ${POSTGRES_DB} remplace l'utilisateur par défaut //postgres//. Il est donc nécessaire de se connecter avec ces arguments !   * Dans le container, l'utilisateur ${POSTGRES_USER} et la base ${POSTGRES_DB} remplace l'utilisateur par défaut //postgres//. Il est donc nécessaire de se connecter avec ces arguments !
- 
  
 === Installer le client Postgresql sur l'hôte === === Installer le client Postgresql sur l'hôte ===
   * Vérifier la présence du dépôt de paquets deb pour Postgresql dans : ''/etc/apt/sources.list.d/ ''   * Vérifier la présence du dépôt de paquets deb pour Postgresql dans : ''/etc/apt/sources.list.d/ ''
-  * Vérifier la version de Postgresql utilisé par le contenair Docker Postgresql de la pré-prod. +  * **Vérifier la version de Postgresql utilisé par le container Docker Postgresql de la pré-prod.** 
-    * Utiliser la même version pour l'installation du paquet postgresql-client. Ex. : ''apt install postgresql-client-15''+    * Utiliser la même version pour l'installation du paquet postgresql-client. Ex. ici la v15 : ''apt install postgresql-client-15'' 
 +  * Afin de pouvoir utiliser la commande ''psql'' sur l'hôte mais également le  script ''install_db.sh'' de l'Atlas, il est nécessaire de : 
 +    * Créer un utilisateur ''postgres'' sur l'hôte : <code bash>adduser --system --no-create-home postgres</code> 
 +    * S'assurer que le fichier ''docker-compose.yml'' de la préprod lançant la base Postgres créé bien un mapping des sockets sur ''/run/postgresql'' dans les volumes (''- /run/postgesql/:/var/run/postgresql''). 
 +    * Il semble aussi nécessaire de modifier le mapping utilisateur des Foreign Data Tables en indiquant que le mot de passe n'est pas requis :<code bash> 
 +      sudo -u postgres -s psql -d $db_name -c "CREATE USER MAPPING FOR $owner_atlas SERVER geonaturedbserver OPTIONS (user '$atlas_source_user', password_required 'false') ;"  &>> log/install_db.log 
 +</code>  
 +    * Le problème c'est que ce mécanisme ne marche pas en PROD où le mot de passe est bien requis ! Il faudrait chercher l'origine de la différence de fonctionnement... 
 +      * En attendant, le plus simple semble de corriger le script ''install_db.sh'' sur la Préprod si besoin. 
 + 
 +=== Stocker les logs Postgresql sur l'hôte === 
 +    * Créer un dossier ''/var/log/postgresql'': <code bash> 
 +mkdir /var/log/postgresql/ 
 +chown root:999 /var/log/postgresql/ 
 +chmod 774 /var/log/postgresql/ 
 +</code>  
 +      * Sur l'hôte l'utilisateur du container créant le socket correspond à l'utilisateur dont l'id vaut 999 (''systemd-coredump'' | ''systemd-timesync''). <todo>Il faudrait voir à utiliser l'utilisateur système "postgres"...</todo> 
 +    * Assurerez vous que le fichier ''docker-compose.yml'' de la préprod lançant la base Postgres créé bien un mapping du dossier suivant''- /var/log/postgesql/:/var/log/postgresql'' 
 +    * Vérifier également que Postgresql dans le container est bien lancé avec les paramètres de config suivant :<code properties> 
 +# Log 
 +#log_destination = stderr 
 +log_directory = '/var/log/postgresql' 
 +log_filename = 'postgresql-%a.log' 
 +log_file_mode = 0600 
 +log_truncate_on_rotation = on 
 +log_rotation_age = 1440 
 +log_rotation_size = 0 
 +</code> 
 +  * TODO :<todo>Voir comment forcer l'id de l'utilisateur "postgres" créant les fichier de log</todo> : dans le container. Par défaut il s'agit de "postgres" avec un id 999, il semblerait...
  
 ===== Remplacer la base par la dernière version sauvegardée ===== ===== Remplacer la base par la dernière version sauvegardée =====
Ligne 345: Ligne 388:
       * **<color #ed1c24>ATTENTION</color>** : le nom du fichier du dump récupéré doit contenir le nom de la base de donnée //geonature2db// ou //gnatlas//. Cette information est récupéré par le script de restauration pour effectuer certaines tâches spécifiques.       * **<color #ed1c24>ATTENTION</color>** : le nom du fichier du dump récupéré doit contenir le nom de la base de donnée //geonature2db// ou //gnatlas//. Cette information est récupéré par le script de restauration pour effectuer certaines tâches spécifiques.
     * Donner les droits à //geonat// sur les dumps : <code bash> chown geonat: /home/geonat/docker/preprod/postgres/restore/*.custom </code>     * Donner les droits à //geonat// sur les dumps : <code bash> chown geonat: /home/geonat/docker/preprod/postgres/restore/*.custom </code>
-    * Démonter le dépôt : <code bash> borg umount /tmp/repo </code>+    * Démonter le dépôt : <code bash> cd ; borg umount /tmp/repo </code>
   * Se connecter en //geonat// sur //bkp-srv// :    * Se connecter en //geonat// sur //bkp-srv// : 
     * Se placer dans le dossier de la stack //preprod// : <code bash>cd ~/docker/preprod/</code>     * Se placer dans le dossier de la stack //preprod// : <code bash>cd ~/docker/preprod/</code>
Ligne 384: Ligne 427:
     * Recréer un lien symbolique : '' ln -s ~/data/gn2pg/config ~/.gn2pg''     * Recréer un lien symbolique : '' ln -s ~/data/gn2pg/config ~/.gn2pg''
   * Copier TOUS les fichiers de config depuis le serveur ''db-srv''   * Copier TOUS les fichiers de config depuis le serveur ''db-srv''
 +
 +
  • serveurs/installation/bkp-srv/pre-prod-geonature.1712739319.txt.gz
  • Dernière modification : 2024/04/10 08:55
  • de jpmilcent