Bienvenue
Jalios Community
Tout ce que vous souhaitez savoir sur l'écosystème Jalios
Cette fiche détaille l'installaltion du composant serveur Horizon sous Windows Server.
Cette installation a été testée sous Windows Server 2019, mais devrait également être compatible avec les versions 2012 R2 et 2016.
Disposé d'un compte avec les privilèges d'administration du serveur.
Avoir accès à une commande PowerShell en version 5.1 ou utlérieure.
Une base de données PostgreSQL doit exister, et être accessible par le serveur Windows sur lequel Horizon sera installé. Se reporter à la documentation suivante pour l'installation d'une base PostgreSQL sous Windows Server : Postgres sous Windows Server
Dans cette documentation, les propriétés suivantes seront utilisées pour la connexion à la base de données Horizon :
Ouvrir une commande PowerShell en tant qu'administrateur.
Définir la version de Node.js à installer :
$env:NODEJS_MAJOR_VERSION="14"
$env:NODEJS_MINOR_VERSION="18.1"
$env:NODEJS_VERSION="$env:NODEJS_MAJOR_VERSION.$env:NODEJS_MINOR_VERSION"
Créer les répertoires suivants :
md "D:\jalios\download\nodejs"
md "D:\jalios\bin\nodejs\$env:NODEJS_VERSION"
Créer le lien symbolique vers la dernière version :
New-Item -ItemType SymbolicLink -Path "D:\jalios\bin\nodejs\latest" -Value "D:\jalios\bin\nodejs\$env:NODEJS_VERSION"
Télécharger Node.js :
Invoke-WebRequest https://nodejs.org/dist/latest-v$env:NODEJS_MAJOR_VERSION.x/node-v$env:NODEJS_VERSION-x64.msi -OutFile "D:\jalios\download\nodejs\node-v$env:NODEJS_VERSION-x64.msi"
Lancer l'installation du msi
, avec les options suivantes :
D:\jalios\bin\nodejs\latest\
Définir la version du serveur Horizon à installer :
$env:HORIZON_VERSION="1.3.1"
Créer les répertoires suivants :
md "D:\jalios\bin\horizon"
md "D:\jalios\app\horizon"
md "D:\jalios\download\horizon"
Télécharger la dernière version du serveur Horizon, et la déposer à l'emplacement suivant :
D:\jalios\download\horizon
Extraire l'archive du serveur Horizon :
Expand-Archive "D:\jalios\download\horizon\horizonserver-horizon-$env:HORIZON_VERSION.zip" -DestinationPath "D:\jalios\bin\horizon"
Rename-Item "D:\jalios\bin\horizon\horizonserver-horizon-$env:HORIZON_VERSION" "$env:HORIZON_VERSION"
Vérification :
ls "D:\jalios\bin\horizon\$env:HORIZON_VERSION"
Répertoire : D:\jalios\bin\horizon\1.3.1
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 24/11/2021 09:03 cypress
d----- 24/11/2021 09:03 src
-a---- 07/10/2021 16:45 2367 .gitignore
-a---- 07/10/2021 16:45 386 Dockerfile
-a---- 07/10/2021 16:45 2046 Jenkinsfile
-a---- 07/10/2021 16:45 419556 package-lock.json
-a---- 07/10/2021 16:45 1709 package.json
Créer le lien symbolique vers la dernière version :
New-Item -ItemType SymbolicLink -Path "D:\jalios\bin\horizon\latest" -Value "D:\jalios\bin\horizon\$env:HORIZON_VERSION"
Installer les packages npm nécessaires :
cd /D D:\jalios\bin\horizon\latest
npm install convert-hrtime
Afin d'exécuter le serveur Horizon en tant que service Windows, le package pm2-installer doit être installé. Il utilise le package pm2, permettant d'exécuter et surveiller des processus Node.js.
Invoke-WebRequest https://github.com/jessety/pm2-installer/archive/main.zip -OutFile "D:\jalios\download\nodejs\pm2-installer.zip"
Expand-Archive D:\jalios\download\nodejs\pm2-installer.zip -DestinationPath D:\jalios\download\nodejs
pm2-installer
:cd /D D:\jalios\download\nodejs\pm2-installer-main
pm2-installer
:npm run configure
npm run configure-policy
npm run setup
A l'issue de cette installation, le service Windows PM2 est créé et démarré, et configuré pour s'exécuter avec l'utilisateur Local Service
.
Fermer Node.js command prompt et l'ouvrir à nouveau, afin de prendre en compte les nouvelles variables d'environnement.
cd /D D:\jalios\app\horizon
pm2 init simple
Editer le fichier D:\jalios\app\horizon\ecosystem.config.js
tout juste initialisé, avec le contenu suivant (à adapter suivant l'environnement) :
module.exports = {
apps : [{
name : "horizon",
script : "../../bin/horizon/latest/src/server.js",
error_file : "logs/horizon-err.log",
out_file : "logs/horizon-out.log",
env : {
"NODE_ENV": "production",
"DB_CONNECTION_URI": "postgres://horizondbuser:horizondbpwd@vm-postgres:5432/horizondb",
"JPLATFORM_SERVER_URL": "https://intranet.fr",
"AUTH_SERVER_URL": "http://vm-jplatform:8080",
"AUTH_SERVER_JWT": "<JWT_TOKEN>"
}
}]
}
Liste des variables de paramétrage du serveur Horizon
Il est également possible de démarrer le serveur en HTTPS, en lui fournissant le chemin du certificat et la clef en variable d'environnement :
Activation des métriques Prometheus :
Le service Windows PM2 s'exécutant avec l'utilisateur Local Service
, il faut que ce dernier ait les droits sur les différents répertoires créés précédemment :
Pour chacun de ces répertoires, définir l'utilisateur Local Service
comme propriétaire :
Cette étape permet de démarrer le serveur Horizon, et de configurer son redémarrage automatique avec Windows.
cd /D D:\jalios\app\horizon
pm2 start ecosystem.config.js
pm2 save
Consulter les logs Horizon pour s'assurer de son bon fonctionnement :
Le package pm2
permet de surveiller simplement le statut et la consommation des ressources du serveur Horizon.
pm2 monit
Les commandes suivantes permettent de gérer l'exécution du serveur Horizon (arrêt, démarrage, redémarrage) :
pm2 stop all
pm2 start all
pm2 restart all
Se reporter à la documentation de pm2 pour connaitre l'ensemble des commandes disponibles.