Scripts d'intégration - Pré-Production GeoNature
Mise en place des scripts
- Configurer le script import_parser en suivant la doc d'installation présente dans le fichier README.md :
vi import-parser/README.md
- Modifier le fichier de configuration partagé :
vi shared/config/settings.ini
Configuration machine locale
- Ajouter une ligne dans son fichier /etc/hosts contenant l'alias du serveur et son IP. Ex. :
57.128.162.43 bkp-paca-sinp
- Ajouter une entrée dans son fichier ~/.ssh/config pour indiquer le port SSH spécifique au serveur hébergeant la pré-prod :
Host bkp-paca-sinp Port <port-ssh-bkp-srv>
- Ajouter sa clé publique dans le fichier ~/.ssh/authorized_keys de l'utilisateur hébergeant la pré-prod. Ex :
ssh-copy-id geonat@bkp-paca-sinp
Procédure d'utilisation des scripts d'intégration
- Au préalable, il est nécessaire de préparer un fichier .tar.bz2 au format :
<date-yyyy-mm-dd>_sinp_paca_<nom-organisme>
contenant les fichiers csv et ini. Ex. :2023-10-04_sinp_paca_cenpaca/
- Créer en local, un dossier au format
<date-yyyy-mm-dd>_sinp_paca_<nom-organisme>/
- Placer dans le dossier l'ensemble des fichiers .csv au format d'échange à transmettre ainsi qu'un fichier meta_archive.ini
- Ouvrir un terminal, placez vous dans le dossier créé et utilisez la commande suivante pour créer l'archive :
tar ../2023-10-04_sinp_paca_cenpaca.tar.bz2 .
(attention à la présence du point final)
- Utiliser ensuite Filezilla (ou autre logiciel de SFTP) pour stocker le fichier .tar.bz2 sur l'espace SFTP du SINP dans le dossier correspondant à l'organisme concerné.
- Se connecter sur le serveur de pré-production avec l'utilisateur geonat :
ssh geonat@bkp-<region>-sinp
- Se rendre dans le dossier correspondant à l'organisme pour lequel nous voulons intégrer les données. Ex. CEN PACA :
cd ~/data/cenpaca/
- Éditer le fichier config/settings.ini pour y modifier la date de l'archive à prendre en compte :
vi config/settings.ini
- Modifier le paramètre <…>_import_date pour la nouvelle date. Ex. :
cp_import_date="2023-10-04"
- Vider le dossier data/raw/ de tous les fichiers .csv et .ini d'une éventuelle intégration précédente :
rm data/raw/*.{csv,ini}
- Lancer le script d'intégration :
./bin/import_update.sh -v
- L'option
-v
permet de rendre le script plus bavard. - Pour afficher l'aide du script utiliser :
./bin/import_update.sh -h
- Le script se charge de :
- télécharger depuis le dépôt SFTP l'archive et la place dans le dossier
data/raw/
- décompresser l'archive dans le dossier
data/raw/
- intégrer les données (ajout, modification, suppression) dans l'ordre indiqué dans la format d'échange à l'aide de script SQL.
- Les logs du script s'affiche à l'écran mais sont aussi stocké dans un fichier .log au format
<yyyy-mm-dd>_imports.log
présent dans :var/log/
- Surveiller l'exécution du script et l'apparition éventuelle d'un ROLLBACK. Dans ce cas là, arrêter l'execution du script à l'aide de CTRL+C et consulter les logs pour déterminer l'origine du problème. Il est souvent nécessaire de corriger les fichiers csv fournis pour corriger le problème.
- Pour relancer le script suite à sa première exécution, vous pouvez utiliser la commande suivante qui se charge de supprimer les fichiers *_rti.csv préalablement créés et de réinitialiser l'affichage de la console :
reset; rm -f data/raw/*_rti.csv; ./bin/import_update.sh -v