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.

erreur_https

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 :

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.

Activation de votre licence GTF

Vous trouverez la procédure d'installation de licence ici.

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

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.