Procédure d'installation

Téléchargement de vMap2

L'application vMap2 est téléchargeable sur le vStore de la société Veremes. L'utilisation du vStore est gratuite. Une simple demande de création d'un utilisateur (login / mot de passe) est nécessaire pour avoir la possibilité de télécharger le produit.

Une fois connecté, se référer à la section vMap et télécharger le setup souhaité en fonction de son système d'exploitation.

Télechargement de vMap2

Installation de vMap2

vMap2 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 vMap2, dézippez le dossier zip téléchargé puis éditez le fichier dependencies.json afin de définir les paramètres de votre installation.

Les variables à modifier pour l’installation sont :

Avertissement

Les valeurs par défaut du dependencies.json peuvent être différents des exemples ci-dessous en fonction du système d'exploitation (Linux ou Windows).

Au niveau du fichier dependencies.json, ces trois paramètres sont suceptibles de nécessiter une adaptation en fonction de vos alias Apache (par défaut, ceux-ci sont corrects) :

{
  "API_ALIAS": "/rest",
  "APP_ALIAS": "/vmap",
  ...
  "WMS_ALIAS": "/wms",
  ...
}

Les clés, dans l'ordre, correspondent aux informations suivantes :

  • API_ALIAS : Alias apache vers l'API.

  • APP_ALIAS : Alias apache vers l'application/client Angular.

  • WMS_ALIAS : Alias vers le service des flux WMS (Mapserver).

Il faut également adapter les chemins d'installation et le hostname de la machine :

{
  ...
  "HOSTNAME": "",
  "HTTPSERVER_PATH": "/etc/apache2",
  "INSTALL_PATH": "/var/www/vmap",
  ...
}

Les clés, dans l'ordre, correspondent aux informations suivantes :

  • HOSTNAME : Nom de la machine.

  • HTTPSERVER_PATH : Lien vers le dossier d'Appache.

  • INSTALL_PATH : Répertoire d'installation de vMap.

Ainsi que les informations du serveur Postgres, et de la base de données vMap :

{
  ...
  "POSTGRES_DB": "vmap",
  "POSTGRES_HOST": "dbhost",
  "POSTGRES_PASSWORD": "dbpasswd",
  "POSTGRES_PORT": 5432,
  "POSTGRES_USER": "dbuser",
  "SQL_DATA": {
    "DB_NAME": "vmap",
    "SRID": 2154
  },
  ...
}

Les clés, dans l'ordre, correspondent aux informations suivantes :

  • POSTGRES_DB : Base de données de l'application.

  • POSTGRES_HOST : IP/Nom DNS du serveur Postgres.

  • POSTGRES_PASSWORD : Mot de passe de l'utilisateur Postgres.

  • POSTGRES_PORT : Port de l'application Postgres sur le serveur.

  • POSTGRES_USER : Nom d'utilisateur de l'utilisateur Postgres.

  • SQL_DATA : Objet contenant les variables pour les requêtes SQL d'installation.

  • SQL_DATA -> DB_NAME : Nom de la base de données de l'application.

  • SQL_DATA -> SRID : Système de projection de la base.

Dans la section application (tout en bas du fichier dependencies.json) il est possible de définir les utilisateurs qui seront créés lors de l'installation de vMap2 ainsi que leurs droits. Cela est défini dans le tableau users. Dans l'exemple ci-dessous, un utilisateur admin (et son mot de passe mdpadmin) sera créé avec les provilèges vitis_user et vitis_admin.

{
  ...
  "application" : {
    ...
    "users": {
      "admin": {
        "grouproles": [
          "vitis_user",
          "vitis_admin"
        ],
        "login": true,
        "password": "mdpadmin",
        "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 vMap2

  • password : mot de passe de l'utilisateur

  • roles : roles de connexion de l'utilisateur qui sera créé dans postgresql

L’installateur de vMap2 assure les opérations suivantes :

  • Copie du code du serveur d’application Vitis

  • Copie du code du moteur Vitis

  • Installation et configuration de l'exécutable JobsRunner comme un service

  • Installation de PHP et de pupeeter

  • Installation de mapserver

  • 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

Lancement de l'installeur sous Linux

Pour lancer l'installation de vMap via le VAI sous Linux, il faut exécuter les commandes suivantes :

Avertissement

Le chemin dans la commande ci-dessous est à adapter.
Le sudo n'est également peut-être pas nécessaire en fonction de votre configuration.

sudo chmod +x <chemin jusqu'au zip>/vmap/installer
sudo ./<chemin jusqu'au zip>/installer

Lancement de l'installeur sous Windows

Pour lancer l'installeur sous Windows, cliquer sur le fichier .exe suffit :

lancement_exe

Il est également possible de le lancer en ligne de commande via le chemin du fichier exe en ligne de commande :

<chemin de l'exe>/installer.exe

Pour les distributions Linux exécuter les commandes suivantes une fois que l'installeur a été lancé :

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 /var/www/vmap/vas/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 vMap2. 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 en modifiant vmap par le nom de la base de données saisie précédemment dans dependencies.json la ligne :

# IPv4 local connections
host vmap all         127.0.0.1/32 md5
# La ligne ci-dessous n'est à ajouter que pour des raisons de retro-compatibilité avec d'anciennes versions de vMap2
host vmap u_vitis     127.0.0.1/32 trust

Immédiatement après « # IPv6 local connections » insérez la ligne :

# IPv6 local connections
host vmap all         ::1/128 md5
# La ligne ci-dessous n'est à ajouter que pour des raisons de retro-compatibilité avec d'anciennes versions de vMap2
host vmap u_vitis     ::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-SHA-256: 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 vMap2

L'instance de vMap2 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 paramètre "WMS_ALIAS" du fichier de configuration dependencies.json (par défaut : vmap)

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.