Installation système

Une installation système signifie que SAINet est installé directement sur la machine hôte sans passer par un environnement de type “container” comme Docker.

Architecture générale

Le schéma ci-dessous montre l’architecture générale ainsi que les différents composants d’une installation système.

Architecture générale

  • Apache2 est utilisé pour traiter les requêtes externes et les transmettre au serveur SAINet.
  • Si les requêtes sont reçues directement depuis un réseau externe en HTTPS, le certificat SSL devra être servi par Apache2. Sinon il devra être servi au niveau du firewall/proxy en amont.
  • Le serveur SAINet est le composant applicatif central de la solution qui gère tous les traitements métiers.
  • MariaDB stocke toutes les données persistentes de l’application. Ce composant peut être externalisé sur une autre machine (voir ici).
  • La GED comprends tous les fichiers relatifs à SAINet. Ils s’agit simplement d’un dossier sur le disque dur, qui peut également se trouver sur un disque partagé/réseau.
Info:

Si les communications HTTPS sont gérées par le firewall/proxy et transmises en HTTP sur le réseau interne, le composant Apache2 peut-être omis.

Paramètres

Afin de pouvoir télécharger et installer SAINet, les paramètres ci-dessous doivent être connus au préalable.

Paramètre Description
user Identifiant pour accéder aux paquets d’installation et de mises à jour.
password Mot de passe pour accéder aux paquets d’installation et de mises à jour.
customer id Identifiant du client au sein de SAINet (server.customerFile).
environment id Identifiant de l’environnement d’installation (server.sainet.domain.env). Cette valeur est en lien avec le serveur sur lequel l’application va être installée.
mobile Détermine si la partie mobile doit être déployée, notamment pour permettre l’accès à l’application par browser / tablette (server.webapp.enabled).
Base de données Paramètres de connexion à la base de données. Si aucune base de données n’est installée, il est possible d’utiliser le mot-clé h2 (pour tests uniquement).

Ces paramètres seront demandés lors de l’installation.

Paquets d’installation / mise à jour

Le serveur SAINet se compose d’un unique JAR contenant tout le nécessaire. La première étape consiste donc à récupérer un package de la version souhaitée (voir les types).

Afin de pouvoir accéder au fichier, des identifiants sont nécessaires (voir chapitre précédent).

Version Type Lien
4.12 RELEASE
RC
SNAPSHOT
Non publiée - version en cours de développement
Non publiée - version en cours de développement
Télécharger
4.11 RELEASE
RC
SNAPSHOT
Télécharger
Télécharger
Télécharger
4.10 RELEASE
RC
SNAPSHOT
Télécharger
Télécharger
Télécharger
4.9 RELEASE
RC
SNAPSHOT
Télécharger
Télécharger
Télécharger
4.8 RELEASE
RC
SNAPSHOT
Télécharger
Télécharger
Télécharger

Le fichier téléchargé est à enregistrer sous le nom sainet.jar à l’emplacement désiré.

Info:

Tous les paquets ci-dessus sont officiellement signés par un certificat QuoVadis.

Afin de vérifier la signature, il est possible d’utiliser la commande ci-dessous:

$ jarsigner -verify sainet.jar
jar verified

Organisation

Afin d’installer la solution SAINet, voici globalement les étapes à suivre:

  1. Installation de MariaDB.
  2. Installation du JDK (voir ci-dessous).
  3. Installation de SAINet (voir ci-dessous).
  4. Mise en place du service SAINet.
  5. Installation et configuration de Apache2.
Info:

Il est conseillé de suivre l’ordre d’installation ci-dessus afin de pouvoir effectuer les vérifications d’usage étape par étape.

Java SE Development Kit (JDK)

Le JDK doit être installé en fonction de la version de SAINet.

Version JDK
4.12.x Temurin 21 - Linux, Windows
4.11.x Temurin 21 - Linux, Windows
4.10.x Temurin 17 - Linux, Windows
Anciennes versions

Les anciennes versions requièrent le JDK 1.8 (Linux, Windows).

Note:

La commande java du JDK doit être disponible dans le PATH. Il est également recommandé de définir la variable système JAVA_HOME.

Sous Windows, il se peut qu’après l’installation il y ait des conflits avec l’installation du Oracle JRE. Dans ce cas, il sera nécessaire de désinstaller ce dernier et de supprimer manuellement le dossier C:\ProgramData\Oracle qui contient une copie des exécutables Java. Une manière de contrôler que le bon java est référencé est d’utiliser la commande where java dans un terminal.

Note:

Sous Windows, il est important que le seul java.exe existant soit bien celui qui a été installé (AdoptOpenJDK ou Temurin).

SAINet

L’installation s’effectue avec la commande suivante:

java -Djdk.jar.maxSignatureFileSize=32000000 -jar sainet.jar --runtime <runtime> --install

Depuis le JDK 17.0.8, il est nécessaire de spécifier la propriété jdk.jar.maxSignatureFileSize sinon le système refusera d’exécuter l’application.

Note:

S’il est prévu d’installer le service SAINet, le répertoire <runtime> doit être au même endroit que sainet.jar.

Durant l’installation, les différents paramètres seront demandés et le serveur sera installé dans <runtime> (le fichier sainet.jar reste nécessaire).

Attention:

Le chemin complet vers le dossier <runtime> ne doit pas contenir plus de 35 caractères, sinon le serveur SAINet refusera de démarrer. Il est également recommandé d’éviter les caractères spéciaux dans le chemin d’accès.

Les paramètres sont enregistrés dans <runtime>/server.properties. Il est possible de les modifier après-coup, mais cela implique qu’il faudra relancer le serveur avec l’option --update.

Info:

Seul le dossier <runtime> va être créé et utilisé par le serveur SAINet. Aucun autre fichier n’est touché durant l’installation, ni durant l’exécution. Il est possible de déplacer ce dossier après l’installation.

Exécution

Une fois le serveur installé, il peut être lancé avec la commande suivante:

java -Djdk.jar.maxSignatureFileSize=32000000 -jar sainet.jar --runtime <runtime> --start

Le serveur va démarrer et au bout de quelques minutes, le bloc de texte suivant sera affiché:

================================================
SAINet Embedded Server version 4.10.0-20201007-122115.
The domain payara is now up and running. (inst:PYA, env:#local)
The GlassFish/Payara installation dir is /tmp/gfembed14043435345614509593tmp
The SAINet runtime dir is <runtime>
Ports used: HTTP=9090, HTTPS=9191, ADMIN=5858
URL: http://<url>/SNV4SRV-ws-war/EPS
Host: sagittarius/127.0.1.1
================================================
You can use <ctrl> + C to shut it down.

A partir de là, le serveur SAINet est fonctionnel et il est possible de s’y connecter avec les indications affichées dans la console. L’identifiant par défaut est saierp avec le mot de passe bootStrap373746.

Note:

En cas de problème durant le démarrage, l’option --verbose permet d’avoir plus de détails quant à l’erreur qui s’est produite.

Une fois le serveur installé, les prochaines étapes consistent à intégrer SAINet:

Attention:

Bien qu’il soit possible de laisser tourner le serveur SAINet dans une console en arrière-plan, cela n’est pas compatible avec les mises à jour automatiques. Il est donc nécessaire d’installer le service SAINet.

Vérification

Afin de vérifier si le serveur est prêt à répondre, il est possible d’utiliser la commande suivante (ou utiliser un navigateur):

curl http://localhost:9090/SNV4SRV-ws-war/healthcheck

Cela devrait produire un résultat XML avec la forme suivante:

<health>
  <currentTime>1607264881995</currentTime>
  <java-version>17.0.1</java-version>
  <java-vendor>Debian</java-vendor>
  <java-vm>OpenJDK 64-Bit Server VM</java-vm>
  ...
</health>

Mise à jour majeure

Attention:

Il est fortement recommandé de faire une sauvegarde de la base de données avant toute mise à jour majeure !

Une mise à jour majeure peut impliquer des changements au niveau du système d’exploitation. Selon la version qui va être installée, se référer aux prérequis nécessaires (voir plus haut) ainsi qu’au guide de migration.

Note:

Afin d’appliquer la mise à jour, il est important que le serveur SAINet ne soit pas en cours d’éxecution. Il faudra donc arrêter le service au préalable.

Finalement, il faut simplement récupérer le package de la version souhaitée et lancer la commande suivante:

java -Djdk.jar.maxSignatureFileSize=32000000 -jar sainet.jar --runtime <runtime> --update