From d3727f3c377824fd2fccb33410bfb47cbdbbde76 Mon Sep 17 00:00:00 2001 From: Jason Secula Date: Tue, 17 Jun 2025 17:53:01 +0200 Subject: [PATCH] Modification du readme avec les instructions de configuration et d'installation des scripts. --- README.md | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 102 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7b06363..4430427 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,25 @@ # Scripts Airwatch GLPI -## Explication de l'usage des scripts : +## Explication de l'usage des scripts et de la configuration : + +### Fichier de configuration global settings.json +Les scripts prennent les informations de configuration du fichier settings.json, si celui-ci n'existe pas au lancement d'un script, il est automatiquement créé avec des valeurs d'exemples. +Voici une liste des paramètres du fichier de configuration et les valeurs attendues (chaque valeur doit être entre " ") : + + - **"airwatchServer"**: l'adresse du serveur Airwatch + - **"airwatchAPIKey"**: la clé API récupéré dans Airwatch + - **"airwatchAuthMethod"**: défini la méthode d'authentification, peut prendre la valeur ***"CMSURL"*** pour l'authentification par certificat ou ***"password"*** pour l'authentification par mot de passe. + - **"airwatchCertPath"**: le chemin vers le certificat si la méthode d'authentification est par certificat. + - **"airwatchCertPass"**: le mot de passe du certificat si celui-ci en possède un, laissez une chaîne vide si vous n'avez pas mis de mot de passe. + - **"airwatchAPIUser"**: le nom de l'utilisateur pour l'authentification API dans Airwatch. + - **"airwatchAPIPassword"**: le mot de passe de l'utilisateur si l'authentification par mot de passe est choisie. + - **"glpiServer"**: l'adresse du serveur GLPI avec un / à la fin. + - **"glpiAppToken"**: le token d'application GLPI. + - **"glpiUserToken"**: le token de l'utilisateur GLPI utilisé pour les requêtes API. + - **"stagingUser"**: le nom du compte de staging présent dans Airwatch. + - **"userAgent"**: Un nom pour l'user agent tel qu'il sera visible dans GLPI, cela permet d'identifier l'instance Airwatch (Prod / Pré-prod) par exemple. + +--- ### syncGLPI.py Le script syncGLPI.py permet de synchroniser les données des appareils présents dans Airwatch avec un inventaire GLPI. @@ -26,6 +45,8 @@ Ce script possède les paramètres suivants qui sont optionnels pour son exécut - **-searchValue** : la valeur pour la recherche lorsque -searchFilter est utilisé - **-force** : permet d'outrepasser la vérification du verrou posé par le script lors de son exécution +--- + ### StagingUserAssignation.py Le script StagingUserAssignation.py permet d'assigner les appareils en staging qui sont assignés à un utilisateur de staging à l'utilisateur renseigné dans l'inventaire GLPI. @@ -35,8 +56,85 @@ Il récupère le nom de l'utilisateur de staging dans le fichier settings.json. - **-debug** : affiche des informations lors de son exécution, utile pour résoudre des problèmes liés à des droits d'accès API ou des problèmes d'ouvertures réseaux - **-force** : permet d'outrepasser la vérification du verrou posé par le script lors de son exécution -### Fichier de configuration global settings.json -Les scripts prennent les informations de configuration du fichier settings.json, si celui-ci n'existe pas au lancement d'un script, il est automatiquement créé avec des valeurs d'exemples. +## Installation des scripts -TO DO +Pour installer les scripts : + +1. Télécharger le contenu de ce projet dans un répertoire du serveur : + +``` +git clone https://gitlab.forge.education.gouv.fr/jsecula/glpi-airwatch-sync.git +``` + +2. Modifier le contenu du fichier de configuration global (settings.json) avec les valeurs correspondant à votre infrastructure. +Les clés et certificats API se récupèrent aux emplacements suivants : + - **Clé API Airwatch**: Groupes et Paramètres > Tous les paramètres > Système > Avancé > Interface de programmation (API) > API REST + + - **Certificat Airwatch**: lors de la création ou la modification d'un utilisateur Admin + + - **Token d'application GLPI**: Configuration > Générale > API + + - **Token utilisateur GLPI**: Administration > Utilisateurs > choisir l'utilisateur > Jeton d'API + +3. Lancement automatique avec systemd : + +Création des services et des timers dans /etc/systemd/system/ : + +**airwatchSync.service** +``` +[Unit] +Description=Script Airwatch pour la synchronisation des données Airwatch et GLPI. + +[Service] +Type=oneshot +WorkingDirectory=/opt/airwatchSync +ExecStart=/opt/airwatchSync/syncGLPI.py +User=root +``` +**airwatchSync.timer** (exécution toutes les heures) +``` +[Unit] +Description=Script Airwatch pour la synchronisation des données Airwatch et GLPI. + +[Timer] +OnUnitInactiveSec=1h +AccuracySec=1us +Unit=airwatchSync.service + +[Install] +WantedBy=timers.target +``` + +**airwatchStaging.service** +``` +[Unit] +Description=Script qui assigne les appareils en staging aux utilisateurs en se basant sur GLPI. + +[Service] +Type=oneshot +WorkingDirectory=/opt/airwatchSync +ExecStart=/opt/airwatchSync/StagingUserAssignation.py +User=root +``` + +**airwatchStaging.timer** (exécution toutes les minutes) +``` +[Unit] +Description=Script qui assigne les appareils en staging aux utilisateurs en se basant sur GLPI. + +[Timer] +OnUnitInactiveSec=1m +AccuracySec=1us +Unit=airwatchSync.service + +[Install] +WantedBy=timers.target +``` + +Rechargement de systemd et activation des timers +``` +systemctl daemon-reload +systemctl enable airwatchSync.timer airwatchStaging.timer +systemctl start airwatchSync.timer airwatchStaging.timer +```