# GLPI

# Configuration GLPI

# Installation de GLPI

- Tout d'abord créer un conteneur "glpi-front-01" avec Terraform sur la LA

#### **Préparation de l'installation :**

- Créer une base de donnée "GLPI" sur le serveur sql
- Créer un utilisateur "glpi"@"IP\_GLPI\_SERVER" avec un mot de passe et lui donner les droits sur la base de données GLPI.

```
CREATE DATABASE GLPI;
GRANT ALL PRIVILEGES ON glpi.* TO glpi@"IP_GLPI_SERVER" IDENTIFIED BY "MotDePasseRobuste";
FLUSH PRIVILEGES;
EXIT
```

##### **Sur glpi-front-01**

```bash
apt-get update && apt-get upgrade
```

```
apt-get install apache2 php
```

```
apt-get install php-ldap php-xml php-common php-json php-mysql php-mbstring php-curl php-gd php-intl php-zip php-bz2 php-imap php-apcu
```

L'archive sera téléchargée dans le répertoire "/tmp" :

```
cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/10.0.10/glpi-10.0.10.tgz
```

Puis, nous allons exécuter la commande ci-dessous pour **décompresser l'archive .tgz dans le répertoire "/var/www/"**, ce qui donnera le chemin d'accès "**/var/www/glpi**" pour GLPI.

```
tar -xzvf glpi-10.0.10.tgz -C /var/www/
```

Nous allons définir l'utilisateur "**www-data**" correspondant à **Apache2**, en tant que **propriétaire** sur les fichiers GLPI.

```
chown www-data /var/www/glpi/ -R
```

Ensuite, nous allons devoir **créer plusieurs dossiers** et sortir des données de la racine Web (/var/www/glpi) de manière à les stocker dans les nouveaux dossiers que nous allons créer. Ceci va permettre de faire une **installation sécurisée de GLPI, qui suit les recommandations de l'éditeur**.

- **Le répertoire /etc/glpi**

Commencez par **créer le répertoire "/etc/glpi"** qui va recevoir les fichiers de configuration de GLPI. Nous donnons des autorisations à www-data sur ce répertoire car il a besoin de pouvoir y accéder.

```
mkdir /etc/glpi
chown www-data /etc/glpi/
```

Puis, nous allons déplacer le répertoire "config" de GLPI vers ce nouveau dossier :

```
mv /var/www/glpi/config /etc/glpi
```

- **Le répertoire /var/lib/glpi**

Répétons la même opération avec la création du répertoire "/var/lib/glpi" :

```
mkdir /var/lib/glpi
chown www-data /var/lib/glpi/
```

Dans lequel nous déplaçons également le dossier "**files**" qui contient la majorité des fichiers de GLPI : CSS, plugins, etc.

```
mv /var/www/glpi/files /var/lib/glpi
```

- **Le répertoire /var/log/glpi**

Terminons par la création du répertoire "**/var/log/glpi**" destiné à stocker les journaux de GLPI. Toujours sur le même principe :

```
mkdir /var/log/glpi
chown www-data /var/log/glpi
```

Nous n'avons rien à déplacer dans ce répertoire.

- **Créer les fichiers de configuration**

Nous devons configurer GLPI pour qu'il sache où aller chercher les données. Autrement dit, nous allons déclarer les nouveaux répertoires fraichement créés.

Nous allons créer ce premier fichier :

```
nano /var/www/glpi/inc/downstream.php
```

Afin d'ajouter le contenu ci-dessous qui indique le chemin vers le **répertoire de configuration** :

```
<?php
define('GLPI_CONFIG_DIR', '/etc/glpi/');
if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
    require_once GLPI_CONFIG_DIR . '/local_define.php';
}
```

Ensuite, nous allons créer ce second fichier :

```
nano /etc/glpi/local_define.php
```

Afin d'ajouter le contenu ci-dessous permettant de **déclarer deux variables** permettant de préciser les chemins vers **les répertoires "files" et "log"** que l'on a préparé précédemment.

```
<?php
define('GLPI_VAR_DIR', '/var/lib/glpi/files');
define('GLPI_LOG_DIR', '/var/log/glpi');
```

Voila c'est terminé :p

### <span id="bkmrk-pr%C3%A9parer-la-configur-1">Préparer la configuration Apache2</span>

Passons à la configuration du serveur web Apache2. Nous allons créer un nouveau fichier de configuration qui va permettre de configurer le VirtualHost dédié à GLPI. Dans mon cas, le fichier s'appelle "megaproduction.local" en référence au nom de domaine choisi pour accéder à GLPI : **megaproduction.local**. L'idéal étant d'avoir un nom de domaine (même interne) pour accéder à GLPI afin de pouvoir positionner un certificat SSL par la suite.

```
nano /etc/apache2/sites-available/glpi.megaproduction.local.conf
```

Ce qui donne la configuration suivante (selon le modèle officiel de la documentation) :

```
<VirtualHost *:80>
    ServerName glpi.megaproduction.local

    DocumentRoot /var/www/glpi/public

    # If you want to place GLPI in a subfolder of your site (e.g. your virtual host is serving multiple applications),
    # you can use an Alias directive. If you do this, the DocumentRoot directive MUST NOT target the GLPI directory itself.
    # Alias "/glpi" "/var/www/glpi/public"

    <Directory /var/www/glpi/public>
        Require all granted

        RewriteEngine On

        # Redirect all requests to GLPI router, unless file exists.
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>
</VirtualHost>

```

Quand la configuration est prête, enregistrez le fichier.

Puis, nous allons **activer ce nouveau site dans Apache2** :

```
a2ensite megaproduction.local.conf
```

Nous en profitons également pour **désactiver le site par défaut** car il est inutile :

```
a2dissite 000-default.conf
```

Nous allons aussi **activer le module "rewrite"** (pour les règles de réécriture) car on l'a utilisé dans le fichier de configuration du VirtualHost (*RewriteCond / RewriteRule*).

```
a2enmod rewrite
```

Il ne reste plus qu'à **redémarrer le service Apache2** :

```
systemctl restart apache2
```

### <span id="bkmrk-utilisation-de-php8.-1">Utilisation de PHP8.2-FPM avec Apache2</span>

Pour utiliser PHP en tant que moteur de scripts avec Apache2, il y a deux possibilités : **utiliser le module PHP pour Apache2 (libapache2-mod-php8.2) ou utiliser PHP-FPM**.

Il est **recommandé d'utiliser PHP-FPM** car il est plus performant et se présente comme un service indépendant. Dans l'autre mode, chaque processus Apache2 exécute son propre moteur de scripts PHP.

Si vous souhaitez utiliser PHP-FPM, suivez les étapes ci-dessous. Sinon, passez à la suite mais veillez à **configurer l'option "session.cookie\_httponly"** évoquée ci-dessous.

Nous allons commencer par **installer PHP8.2-FPM** avec la commande suivante :

```
apt-get install php8.2-fpm
```

Puis, nous allons activer deux modules dans Apache et la configuration de PHP-FPM, avant de recharger Apache2 :

```
a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm
systemctl reload apache2
```

Pour **configurer PHP-FPM pour Apache2**, nous n'allons pas éditer le fichier "**/etc/php/8.2/apache2/php.ini**" mais **plutôt** ce fichier :

```
nano /etc/php/8.2/fpm/php.ini
```

Dans ce fichier, recherchez l'option "**session.cookie\_httponly**" et indiquez la valeur "on" pour l'activer, afin de protéger les cookies de GLPI.

```
; Whether or not to add the httpOnly flag to the cookie, which makes it
; inaccessible to browser scripting languages such as JavaScript.
; https://php.net/session.cookie-httponly
session.cookie_httponly = on
```

Enregistrez le fichier quand c'est fait. Par la suite, vous pourriez être amené à effectuer d'autres modifications, notamment pour augmenter la taille des uploads sur GLPI, etc.

Pour appliquer les modifications, nous devons redémarrer PHP-FPM :

```
systemctl restart php8.2-fpm.service
```

Pour finir, nous devons **modifier notre VirtualHost** pour préciser à Apache2 que PHP-FPM doit être utilisé pour les fichiers PHP :

```
<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
```

Voici un exemple :

<figure class="wp-block-image size-full" id="bkmrk-">![Apache2 et PHP-FPM - Exemple](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Apache2-et-PHP-FPM-Exemple.png)</figure>Quand c'est fait, relancer Apache2 :

```
sudo systemctl restart apache2
```

**Voilà, tout est prêt ! Il ne reste plus qu'à installer GLPI !**

## <span id="bkmrk-installation-de-glpi-1">Installation de GLPI</span>

- Creer un tunnel SSH pour accéder à la page web

Pour effectuer l'installation de GLPI, nous devons utiliser un navigateur Web afin d'accéder à l'adresse du GLPI. Il s'agit de l'adresse déclarée dans le fichier de configuration Apache2 (*ServerName*). Pensez à l'ajouter au DNS.

Si vous avez suivi toutes les étapes correctement, vous devriez arriver sur cette page. Nous allons commencer par choisir la langue.

<figure class="wp-block-image size-full" id="bkmrk--1">![Installation de GLPI - Etape 1](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-Etape-1.jpg)</figure>Puisqu'il s'agit d'une nouvelle installation, nous cliquons sur "**Installer**".

<figure class="wp-block-image size-full" id="bkmrk--2">![Installation de GLPI - Etape 2](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-Etape-2.jpg)</figure>Etape importante : **GLPI vérifie la configuration de notre serveur** pour déterminer si tous les prérequis sont respectés. Tout est bon, donc nous pouvons continuer.

<figure class="wp-block-image size-full" id="bkmrk--3">![Installation de GLPI - Etape 3](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-Etape-3.png)</figure>##### <span style="color: rgb(224, 62, 45);">**ATTENTION BIEN LIRE EN DESSOUS :**</span>

A l'étape suivante, nous devons renseigner les informations pour se connecter à la base de données. Nous indiquons **"IP\_SERVER\_SQL"** en tant que serveur SQL puisque MariaDB est installé en distant. Puis, nous indiquons notre utilisateur "glpi" et le mot de passe associé créer au tout début du tuto.

<figure class="wp-block-image size-full" id="bkmrk--4">![Installation de GLPI - Etape 4](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-Etape-4.png)</figure>Après avoir cliqué sur "**Continuer**", nous devons choisir la base de données "**GLPI**" créée précédemment.

<figure class="wp-block-image size-full" id="bkmrk--5">![Installation de GLPI - Etape 5](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-Etape-5.png)</figure>Poursuivez...

<figure class="wp-block-image size-full" id="bkmrk--6">![Installation de GLPI - Etape 6](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-Etape-6.png)</figure>Suivez les dernières étapes qui n'ont pas de réel impact. Le plus dur est fait !

<figure class="wp-block-image size-full" id="bkmrk--7">![Installation de GLPI - Etape 7](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-Etape-7.png)</figure>**Félicitations, vous venez d'installer GLPI !** Comme le précise la dernière étape, le compte **administrateur** par défaut est "**glpi/glpi**" !

<figure class="wp-block-image size-full" id="bkmrk--8">![Installation de GLPI - Etape 8](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-Etape-8.png)</figure><span style="color: rgb(224, 62, 45);">**Nous allons donc nous connecter avec le compte "glpi" et le mot de passe "glpi".**</span>

<figure class="wp-block-image size-full" id="bkmrk--9">![Installation de GLPI - Etape 9](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-Etape-9.png)</figure>**Bienvenue sur votre nouveau serveur GLPI !**

<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex" id="bkmrk--10"><figure class="wp-block-image size-full">[![Installation de GLPI 10 terminée](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-10-terminee.jpg)](https://www.it-connect.fr/wp-content-itc/uploads/2023/10/Installation-de-GLPI-10-terminee.jpg)</figure></figure>Même si l'installation est terminée, nous avons encore quelques actions à réaliser pour la finaliser :

- Changer le mot de passe de tous les comptes par défaut (cliquez sur les liens situés dans l'encadré orange)
- Supprimer le fichier "install.php" puisqu'il n'est plus nécessaire et représente un risque (relancer l'installation)

```
sudo rm /var/www/glpi/install/install.php
```

Voilà, c'est fait. Désormais, votre GLPI est prêt à être utilisé et configuré (création d'utilisateurs, de catégories, de tickets, etc...).

## **Installation de GLPI Inventory**  


**Onglet configuration &gt; Plugins**

[![image.png](https://book.techoops.fr/uploads/images/gallery/2024-01/scaled-1680-/N4dimage.png)](https://book.techoops.fr/uploads/images/gallery/2024-01/N4dimage.png)

Onglet en haut &gt; Découvrir puis chercher et installer "GLPI Inventory"

[![image.png](https://book.techoops.fr/uploads/images/gallery/2024-01/scaled-1680-/mjYimage.png)](https://book.techoops.fr/uploads/images/gallery/2024-01/mjYimage.png)

Quand le plugin est installé, Administration &gt; Inventaire et cocher les cases :

- Activer l'inventaire
- Importer des machines virtuelles
- Créer un ordinateur pour les machines virtuelles

[![image.png](https://book.techoops.fr/uploads/images/gallery/2024-01/scaled-1680-/OpFimage.png)](https://book.techoops.fr/uploads/images/gallery/2024-01/OpFimage.png)

Et c'est bon, plus qu'a installer les agents sur les serveurs distants.

# Configuration GLPI agent

# GLPI Agent

Pour installer l'agent GLPI agent, il faut executer ces 4 commandes.

```
apt install libfuse2
wget https://github.com/glpi-project/glpi-agent/releases/download/1.7.1/glpi-agent-1.7.1-linux-installer.pl
perl glpi-agent-1.7.1-linux-installer.pl --install --server http://IP_GLPI_SERVER/front/inventory.php
glpi-agent
```

Après cela, l'appareil se connectera automatiquement au GLPI Inventory.