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 [2025/02/18 17:05] – [Création du container Docker hébergeant Postgresql & Nginx] 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 348: Ligne 348:
 === 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 container 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 :   * 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>     * 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'').     * 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 === === Stocker les logs Postgresql sur l'hôte ===
     * Créer un dossier ''/var/log/postgresql'': <code bash>     * Créer un dossier ''/var/log/postgresql'': <code bash>
 mkdir /var/log/postgresql/ mkdir /var/log/postgresql/
-chown root:systemd-coredump /var/log/postgresql/+chown root:999 /var/log/postgresql/
 chmod 774 /var/log/postgresql/ chmod 774 /var/log/postgresql/
 </code>  </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''     * 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>     * Vérifier également que Postgresql dans le container est bien lancé avec les paramètres de config suivant :<code properties>
Ligne 371: Ligne 377:
 log_rotation_size = 0 log_rotation_size = 0
 </code> </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 =====
  • serveurs/installation/bkp-srv/pre-prod-geonature.1739898310.txt.gz
  • Dernière modification : 2025/02/18 17:05
  • de jpmilcent