Title: Installation facile de l'agent Fusion Inventory sur MacOS
Category: sysadmin
Tags: GLPI, fusioninventory, script, pl-fr
Date: 2021-01-12 22:38
Cover: assets/backgrounds/article_fusioninventory.jpg


Dans le cadre de la gestion d'un parc informatique, j'ai mis en place
[GLPI][l_glpi] pour inventorier les machines et gérer les incidents. J'utilise
aussi le plugin [Fusion Inventory][l_fusioninv] pour la remontée automatique
des machines.

Le client *Fusion Inventory* pour Windows **s'installe assez simplement**; un
assistant permet de remplir les différents champs nécessaires à son paramétrage.
Il est tout autre sous *MacOS* : il faut modifier le fichier `agent.cfg`
**directement dans le package** d'installation avant de le lancer.

J'ai donc développé un script afin de faciliter le plus possible son
installation. Il est disponible sur mon [dépôt git personnel][l_gitperso] et une 
copie est disponible sur [Github][l_github].

## Quoi qu'il fait le truc?

Il télécharge automatiquement l'installeur MacOS de *Fusion Inventory* en
version `pkg` depuis les *"releases"* sur Github et modifie le fichier
`agent.cfg` en fonction des paramètres fournis en ligne de commande par 
exemple :

```shell
sudo ./install.sh -s https://glpi.exam.ple -u agent -p pass -t prodution
```

L'agent installé se connectera sur le serveur `https://glpi.exam.ple`, comme
l'accès au plugin est protégé par un mot de passe l'agent sera configuré pour
utiliser l'identifiant `agent` et le mot de passe `pass`. L'étiquette
`production` sera définie.

### Les différents arguments du script

```shell
./install.sh -t <tag> -t <tag> -s <server> -u <user> -p <password> -h -v
```

 * `-s --server` : adresse du plugin GLPI Fusion Inventory
 * `-u --user` : nom d'utilisateur (authentification par `.htaccess` ou proxy)
 * `-p --password` : mot de passe (authentification par `.htaccess` ou proxy)
 * `-t --tag` : ajouter un tag (il est possible d'en mettre plusieurs en répétant
     -t)
 * `-h` : afficher l'aide et quitter
 * `-v` : afficher la version et quitter

## Personnaliser les valeurs par défaut

Il est possible de personnaliser les valeurs par défaut. Il suffit pour ça
d'ouvrir le script `install.sh` avec votre éditeur de texte favori et de
modifier les lignes 30 à 33 :

```bash
default_tags="web production"
default_password="My@gentP4ssw0rd"
default_user="agent"
default_server="https://agent.server.com"
```

Les valeurs spécifiées en ligne de commande **remplaceront celles par défaut**

## Pour finir

J'utilise ce script régulièrement pour **installer et mettre à jour** Fusion
Inventory sur les ordinateurs *Apple* de mon parc, il fonctionne aussi sur MacOS
Big Sur et sur même ceux à base de puces M1.

Bien entendu il est très simple de le rendre compatible avec des machines Linux,
j'espère d'ailleurs en proposer une version rapidement.

Pour ce qui est de Windows, il est tout à fait possible d'automatiser
l'installation de l'agent avec un script Powershell de la même manière.

## À l'avenir

Je prévois d'ajouter la possibilité d'ajouter des fonctions à exécuter avant et
après l'installation pour jouer avec l'API de GLPI et exécuter des actions une
fois la machine inventoriée. 

[l_glpi]:https://glpi-project.org/
[l_fusioninv]:http://fusioninventory.org
[l_gitperso]:https://git.epha.se/ephase/fi_installer_macos
[l_github]:https://github.com/ephase/fi_installer_macos

*[GLPI]:Gestion Libre de Parc Informatique
*[API]:Application Programming Interface
