Procédure d'installation
Installation de GTF
GTF dispose d’un installateur spécifique VAI qui permet d’assurer l’installation et la mise à jour du produit sans perte de configuration ni de données.
Pour installer GTF, éditez le fichier dependencies.json afin de définir les paramètres de votre installation.
Les variables à modifier pour l’installation sont :
Variable |
Description |
---|---|
API_ALIAS |
Alias pour accéder à l'API de GTF (par défaut : /rest) |
APP_ALIAS |
Alias pour accéder au client de GTF (par défaut : /gtf) |
HTTPSERVER_PATH |
Chemin jusqu'au répertoire d'Apache24 (C:/.../Apache24/conf pour windows et /etc/apache2 pour linux) |
INSTALL_PATH |
Répertoire d'installation (/var/www/gtf préférable pour Linux C:/server/gtf conseillé pour Windows) |
POSTGRES_HOST |
Serveur de la base de données |
POSTGRES_PORT |
Port d'accès à la base de données |
POSTGRES_DB |
Nom de la base de données (la base de données peut être existante) |
POSTGRES_USER |
Compte d'un superutilisateur de la base |
POSTGRES_PASSWORD |
Mot de passe du compte superutilisateur |
Dans la section application il possible de définir les utilisateurs qui seront insérés lors de l'installation dans le tableau users.
{
...
"application" : {
...
"users": {
"admin": {
"grouproles": [
"vitis_user",
"vitis_admin"
],
"login": true,
"password": "admin",
"roles": [
"LOGIN",
"CREATEROLE"
]
}
}
}
}
Les clés dans users seront utilisées comme identifiants. En fonction des informations associées, l'utilisateur aura plus ou moins de droits :
grouproles : permet de définir des privilèges qui seront associés à l'utilisateur
login : identifiant permettant de se connecter à la base ainsi qu'à l'application
password : mot de passe de l'utilisateur
roles : roles de l'utilisateur dans postgres
L’installateur de GTF assure les opérations suivantes :
Copie du code du serveur d’application Vitis
Copie du code du moteur GTF
Installation et configuration de l'exécutable JobsRunner comme un service
Installation de PHP et de PhantomJS
Configuration du serveur HTTPS Apache
Création de la base de données dans PostgreSQL
Création d’un compte administrateur dans PostgreSQL
Nettoyage des caches
Pour les distributions Linux exécuter les commandes suivantes :
sudo apt update
sudo apt install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm-dev
Avertissement
Si un paquet vient à manquer, c'est que la version n'est peut-être pas disponible pour votre distribution. Dans ce cas vous pouvez soit trouver une version compatible, soit retirer le paquet de la commande.
Pour vérifier la présence des librairies vous pouvez lancer l'éxécutable de chromium chrome qui se trouve dans le dossier gtf/src/vitis/engine/vitis/node_modules/puppeteer/.local-chromium/linux-901912/chrome-linux ou lancer la commande ldd
dessus.
Pour la distribution Debian, qui bloque certaines fonctionnalités du chromium embarqué pour des raisons de sécurité, il faut ajouter la properties chromium_args comme dans l'exemple suivant :
"chromium_args" : [
"--no-sandbox",
"--disable-setuid-sandbox"
]
Configuration de PostgreSQL
Il est nécessaire de configurer le serveur PostgreSQL pour permettre à l’application d’accéder à la base de données.
Note
La procédure ci-dessous s’applique si le serveur PostgreSQL est sur la même machine que GTF. Si ce n’est pas le cas, il faut prévoir une configuration spécifique.
1. Editer le fichier pg_hba.conf de PostgreSQL
Immédiatement après « # IPv4 local connections » insérer la ligne :
```
# IPv4 local connections
host gtfdatabase all 127.0.0.1/32 md5
# Les deux lignes ci-dessous ne sont à ajouter que pour des raisons de retro-compatibilité avec d'anciennes versions de GTF
host gtfdatabase u_vitis 127.0.0.1/32 trust
host gtfdatabase u_scheduler 127.0.0.1/32 trust
```
Immédiatement après « # IPv6 local connections » insérez la ligne :
```
# IPv6 local connections
host gtfdatabase all ::1/128 md5
# Les deux lignes ci-dessous ne sont à ajouter que pour des raisons de retro-compatibilité avec d'anciennes versions de GTF
host gtfdatabase u_vitis ::1/128 trust
host gtfdatabase u_scheduler ::1/128 trust
```
2. Redémarrer le service PostgreSQL
Configuration avancée de PostgreSQL
Il est possible de configurer votre base de données applicative pour être plus sûre. Il est par exemple possible de forcer l'utilisation de connexion SSL ou de stocker les mot de passe via le système SASL de postgres plutôt qu'en MD5 comme cela fait par défaut.
Connexion SSL à la base de donnée
Il existe plusieurs niveaux de configuration pour l'utilisation du SSL avec PostgreSQL (Vous trouverez toutes les infos ici).
Par défaut, l'application utilisera le mode prefer, c'est à dire qu'elle utilisera le chiffrement si le serveur l'accepte. Il est tout de même préconisé de changer cette configuration pour utiliser require qui est plus restrictif.
Si vous voulez utiliser un niveau de sécurité supérieur (verify-ca ou verify-full), il est nécessaire d'utiliser des certificats (la procédure pour générer des certifcats auto-signés est ici). Dans ce cas là, les certifcats seront à renseigner au niveau de la configuration, dans le fichier properties.json de Vitis.
db_ssl_mode : définit le niveau de sécurité souhaité (par défaut prefer)
db_ssl_root_cert : chemin jusqu'au certifcat root de l'autorité de confiance (par défaut vide)
db_ssl_cert : certifcat à utiliser pur se connecter (par défaut vide)
db_ssl_key : clé privée du certificat (par défaut vide)
db_ssl_crl : certificat révoqué par l'autorité de confiance (par défaut vide)
Stockage des mots de passe en SCRAM-SHA-256
Dans la majorité des cas, PostgreSQL est configuré pour stocker les mots de passe en MD5. PostgreSQL pousse à changer ce paramètrage vers l'utilisation de l'algorithme SCRAM-SHA-256.
Cette configuration se fait au niveau du fichier postgresql.conf :
password_encryption = scram-sha-256
Il faut également retoucher le fichier pg_hba.conf pour changer la méthode de connexion, en remplaçant md5 par scram-sha-256.
# TYPE DATABASE USER ADDRESS METHOD
local all all 127.0.0.1/32 scram-sha-256
Dans le fichier properties.json de Vitis il faut définir le paramètre db_password_hash, il peut prendre trois valeurs différentes :
PLAIN : le mot de passe reste en clair
MD5 : un hash MD5 conforme à ce qu'attend postgres est utilisé lors des interactions avec le mot de passe
SCRAM-SHA256: un hash complexe est utilisé lors des interactions avec le mot de passe
Avertissement
Le passage du système de stockage en MD5 vers le système en SCRAM-SHA-256, impliquera une redéfinition de tous les mots de passe actuellement stockés. Il faut que l'administrateur change tous les mots de passe au niveau de la base, puis que chaque utilisateur se reconnecte avec ce mot de passe et redéfinisse un nouveau mot de passe personnalisé.
Test de l'installation de GTF
L'instance de GTF doit désormais être disponible à l’adresse https://[serveur]/[alias]
[serveur] : l’adresse de la machine où vous avez installé l’application
[alias] : la clé que vous avez saisie dans le fichier de configuration de vai (par défaut : gtf)
Si vous vous connectez avec le protocole HTTP, la connexion sera automatiquement redirigée vers HTTPS.
Si vous avez créé vous-même votre propre certificat, votre serveur n’est pas sécurisé et votre navigateur va sans doute afficher un message d’alerte.
Vous devrez créer une exception de sécurité dans votre navigateur avant de pouvoir accéder à votre site.
Si vous utilisez un certificat valide ou si vous avez créé une exception de sécurité, vous devez arriver à la page de connexion :
Vous pouvez vous connecter en utilisant le compte et le mot de passe définis lors de l’installation.
Configuration de GTF
Configuration Générale
Il est préférable de configurer un serveur SMTP pour pouvoir utiliser GTF.
Création d'un moteur GTF
Il faut commencer par définir un moteur FME. Il faut ensuite créer un moteur GTF.
Test du moteur GTF
Se connecter à GTF puis ajouter une demande via "Mon travail".
S'assurer que la demande a bien été traitée.
A ce stade, pour s'assurer du bon fonctionnement de GTF, il est recommandé de procéder à l'import de nouveaux traitements. Pour cela, Veremes met à disposition sur son site de téléchargement vStore un projet exemple au format .gex ou .fmw.
Vous pouvez aussi ajouter un de vos propre projets via le mode Publication.
Composants optionnels
InstantClient Oracle
GTF permet d'utiliser les données d'une base de données Oracle pour des listes déroulantes (via une source de données de type "base de donnée externe").
Pour activer cette fonctionnalité, il est nécessaire d'installer un instantclient Oracle et d'activer la librairie dans le PHP.
La version 12.2 64 bits est disponible pour Linux et 11.2 64 bits pour Windows telle qu'elle est utilisée pour compiler le PHP installer avec GTF.
Si une autre instance d'Oracle est installée sur la machine, elle est utilisable si elle est plus récente que la version 11.2. Cependant, des conflits au niveau des librairies dynamiques restent possibles : rapprochez-vous au maximum des versions 11/12 pour une architecture 64 bits.
Windows
La suite de cette procédure se base sur la procédure officielle d'Oracle que vous trouverez ici.
Décompressez l'archive précédemment téléchargée dans C:/oracle
(vous devez créer le dossier s'il n'existe pas).
Il faut ensuite ajouter le chemin C:/oracle/instantclient_11_2_x64
à la variable d'environnement PATH système. Si un autre outil Oracle est déjà installé, il faut que ce chemin apparaisse avant.
Il faut activer l'extension dans le php.ini de votre application. Ce fichier est à l'emplacement [GTF]/vas/bin/php/php.ini où [GTF] est le dossier d'installation de GTF. Il faut éditer le fichier pour retirer le ;
au début de la ligne ;extension=pdo_oci
.
Redémarrez le service Apache pour rendre effectif les modifications.
Linux
La suite de cette procédure se base sur la procédure officielle d'Oracle que vous trouverez ici.
Décompressez l'archive précédemment téléchargée dans /opt/oracle
(vous devez créer le dossier s'il n'existe pas).
cd /opt/oracle
unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
Une fois l'archive décompressée, créez les liens adaptés pour la version d’Instant Client.
cd /opt/oracle/instantclient_12_2
ln -s libclntsh.so.12.1 libclntsh.so
ln -s libocci.so.12.1 libocci.so
Installer le paquet libaio1 avec la commande apt-get install libaio1
.
Ajouter les variables d'environnement suivantes dans le fichier /etc/bashrc
ou /etc/bash.bashrc
:
export ORACLE_HOME=/opt/oracle/instantclient_12_2
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
Il faut activer l'extension dans le php.ini de votre application. Ce fichier est à l'emplacement [GTF]/vas/bin/php/bin/php.ini ou [GTF] est le dossier d'installation de GTF. Il faut éditer le fichier pour retirer le ;
au début de la ligne ;extension=pdo_oci
.
Redémarrez le service Apache pour rendre effectif les modifications, avec la commande systemctl restart apache2
.