Vous pouvez utiliser un éditeur de texte comme nano pour créer et éditer le fichier.
nano glpi_config.txt
## Contenu du fichier de configuration: glpi_config.txt
Assurez-vous que le fichier de configuration glpi_config.txt contient les variables nécessaires :
DB_NAME1="glpi_db1"
DB_USER1="glpi_user1"
DB_PASSWORD1="glpi_password1"
DOMAIN1="glpi_domain1"
DB_NAME2="glpi_db2"
DB_USER2="glpi_user2"
DB_PASSWORD2="glpi_password2"
DOMAIN2="glpi_domain2"
## Voici mon script bash
#!/bin/bash
# Charger les variables depuis le fichier de configuration
source ./glpi_config.txt
# Installation des prérequis
apt-get update
apt-get install -y apache2 mariadb-server php php-mysql php-gd php-ldap php-curl php-cli php-xml php-mbstring unzip
# Demande du mot de passe root MySQL une seule fois
echo "Veuillez entrer le mot de passe root MySQL :"
read -s ROOT_PASSWORD
# Fonction pour installer GLPI pour un domaine donné
install_glpi() {
local DB_NAME=$1
local DB_USER=$2
local DB_PASSWORD=$3
local DOMAIN=$4
# Création de la base de données et de l'utilisateur MySQL
mysql -u root -p"$ROOT_PASSWORD" -e "CREATE DATABASE IF NOT EXISTS $DB_NAME;"
mysql -u root -p"$ROOT_PASSWORD" -e "CREATE USER IF NOT EXISTS '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASSWORD';"
mysql -u root -p"$ROOT_PASSWORD" -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"
mysql -u root -p"$ROOT_PASSWORD" -e "FLUSH PRIVILEGES;"
# Téléchargement et extraction de GLPI
wget -O /tmp/glpi.tgz https://github.com/glpi-project/glpi/releases/download/9.5.0/glpi-9.5.0.tgz
tar -xzf /tmp/glpi.tgz -C /var/www/html/
mv /var/www/html/glpi /var/www/html/$DOMAIN/
rm /tmp/glpi.tgz
# Configuration des permissions d'accès
chown -R www-data:www-data /var/www/html/$DOMAIN
chmod -R 755 /var/www/html/$DOMAIN
}
# Itérer sur chaque groupe de variables dans glpi_config.txt
for i in 1 2; do
DB_NAME_VAR="DB_NAME$i"
DB_USER_VAR="DB_USER$i"
DB_PASSWORD_VAR="DB_PASSWORD$i"
DOMAIN_VAR="DOMAIN$i"
DB_NAME=${!DB_NAME_VAR}
DB_USER=${!DB_USER_VAR}
DB_PASSWORD=${!DB_PASSWORD_VAR}
DOMAIN=${!DOMAIN_VAR}
# Vérifier que les variables sont définies
if [ -z "$DB_NAME" ] || [ -z "$DB_USER" ] || [ -z "$DB_PASSWORD" ] || [ -z "$DOMAIN" ]; then
echo "Les variables pour la configuration $i ne sont pas correctement définies. Veuillez vérifier le fichier glpi_config.txt."
continue
fi
# Appel de la fonction d'installation
install_glpi $DB_NAME $DB_USER $DB_PASSWORD $DOMAIN
done
# Redémarrage des services
systemctl restart apache2
echo "GLPI a été installé avec succès pour tous les domaines."
## Explications des sections du script
### Chargement des Variables de Configuration
La commande `source ./glpi_config.txt` permet d'intégrer les variables définies dans le fichier `glpi_config.txt` afin qu'elles soient accessibles dans le script.
### Installation des Prérequis
- `apt-get update` : Actualise la liste des paquets disponibles.
- `apt-get install -y ...` : Installe les paquets essentiels pour assurer le bon fonctionnement de GLPI (Apache, MariaDB, PHP et ses extensions).
### Définition de la Fonction `install_glpi`
Cette fonction requiert quatre paramètres :
- Nom de la base de données
- Nom de l'utilisateur associé à cette base
- Mot de passe de cet utilisateur
- Nom de domaine pour GLPI
Son rôle consiste à :
- Créer la base de données et l'utilisateur MySQL correspondant.
- Télécharger et extraire GLPI.
- Configurer les autorisations d'accès.
### Boucle d'Installation pour Plusieurs Instances de GLPI
À travers une boucle `for i in 1 2`, l'itération se fait deux fois (ou plus si vous avez défini davantage de configurations) en vue d'installer plusieurs instances distinctes de GLPI.
Cette démarche exploite l'expansion des variables indirectes `${!VAR}` pour récupérer les valeurs des variables déclarées dans `glpi_config.txt`.
### Redémarrage du Service Apache
Par l'exécution `systemctl restart apache2`, Apache est redémarré pour appliquer les nouvelles configurations.
Ladresse IP de notre serveur GLPI est 172.18.1.60, voici la procédure pour nous connecter à GLPI depuis notre navigateur web :
- Formuler l'URL : L'URL complète permettant d'accéder à GLPI via cette adresse IP serait http://172.18.1.60/glpi
- Ouvrir notre Navigateur : Lancez notre navigateur web habituel (tel que Chrome, Firefox, etc.).
- Saisir l'URL : Dans la barre d'adresse du navigateur, entrez http://172.18.1.60/glpi.
- Page de Connexion : Nous devrions maintenant visualiser la page de connexion de GLPI.
- Suivre les instructions d'installation de GLPI en spécifiant les informations de la base de données MariaDB configurées précédemment.
Après avoir installé et configuré GLPI, vous pouvez configurer la synchronisation avec Active Directory (AD) pour importer des utilisateurs, groupes et ordinateurs. Voici une procédure détaillée pour configurer la synchronisation AD dans GLPI.
- Accédez à GLPI via un navigateur web. Connectez-vous en tant qu'administrateur.
- Installer le plugin LDAP:
- Allez dans
Configuration > Plugins > Marketplace
. - Recherchez le plugin
ldap
et installez-le. - Activez le plugin une fois l'installation terminée.
- Allez dans
-
Ajouter un serveur LDAP:
- Allez dans
Configuration > Authentification > LDAP directories
. - Cliquez sur
+
pour ajouter un nouveau répertoire LDAP. - Remplissez les informations du serveur LDAP :
- Nom: Nom descriptif de votre serveur LDAP.
- Serveur LDAP: Adresse de votre serveur AD.
- Port LDAP: Par défaut, 389 pour LDAP ou 636 pour LDAPS (sécurisé).
- Version de protocole LDAP: 3.
- BaseDN: La racine de votre arbre LDAP (par exemple,
dc=example,dc=com
). - Connexion DN: L'utilisateur avec lequel GLPI se connectera à AD (par exemple,
cn=admin,dc=example,dc=com
). - Mot de passe: Mot de passe de l'utilisateur de connexion.
- Filtre utilisateur: Filtre LDAP pour trouver les utilisateurs (par exemple,
(objectClass=user)
). - Filtre groupe: Filtre LDAP pour trouver les groupes (par exemple,
(objectClass=group)
).
- Allez dans
-
Tester la connexion:
- Après avoir rempli les informations, cliquez sur
Tester la connexion LDAP
pour vérifier que GLPI peut se connecter à votre AD.
- Après avoir rempli les informations, cliquez sur
-
Configurer les champs utilisateurs:
- Toujours dans la section
LDAP directories
, après avoir ajouté et testé votre serveur LDAP, cliquez surConfigurer les champs
. - Mappez les champs LDAP aux champs utilisateurs GLPI. Par exemple :
- Login:
sAMAccountName
- Nom:
sn
- Prénom:
givenName
- Email:
mail
- Login:
- Toujours dans la section
-
Configurer les options de synchronisation:
- Dans la même section, configurez les options de synchronisation selon vos besoins (par exemple, fréquence de synchronisation, création automatique de comptes, etc.).
-
Accédez à la configuration des groupes dans GLPI :
- Allez dans
Configuration > Authentification > LDAP directories
. - Sélectionnez votre serveur LDAP, puis cliquez sur
Groupes
.
- Allez dans
-
Remplissez les champs avec les valeurs appropriées :
- Type de recherche :
Dans les utilisateurs
- Attribut utilisateur indiquant ses groupes :
memberOf
- Filtre pour la recherche dans les groupes :
(objectClass=group)
- Attribut des groupes contenant les utilisateurs :
member
- Utiliser le DN pour la recherche :
Non
- Type de recherche :
-
Cliquez sur
Enregistrer
pour sauvegarder la configuration.
Il est primordial d'installer le plugin FusionIventory sur le serveur GLPI et sur les ordinateurs clients afin de permettre cette synchronisaiton,
je me suis basé sur cet execellent tutoriel du site : www.tutos-info.fr pour la réalisation.
-
Tester la connexion LDAP :
- Allez dans
Configuration > Authentification > LDAP directories
. - Sélectionnez votre serveur LDAP et cliquez sur
Tester la connexion
.
- Allez dans
-
Lancer une synchronisation :
- Allez dans
Administration > Groupes / Utilisateurs
. - Cliquez sur
Importer un groupe / utilisateur LDAP
. - Sélectionnez votre serveur LDAP et cliquez sur
Rechercher
. - Sélectionnez les groupes ou utilisateurs à importer et cliquez sur
Importer
.
- Allez dans
Résultat pour utilisateurs :
Résultat pour les groupes :
Résultat pour les ordinateurs :
-
Configurer les catégories de tickets :
- Allez dans
Assistance > Configuration > Catégories
. - Ajoutez des catégories de tickets selon vos besoins (par exemple,
Incident
,Demande
, etc.).
- Allez dans
-
Configurer les règles de notification :
- Allez dans
Configuration > Notifications
. - Ajoutez des règles de notification pour les tickets (par exemple, notification par e-mail lors de la création d'un ticket).
- Allez dans
-
Configurer les profils et les droits d'accès :
- Allez dans
Administration > Profils
. - Configurez les profils d'utilisateurs pour définir les droits d'accès au système de ticketing.
- Allez dans
-
Configurer le formulaire de ticket :
- Allez dans
Assistance > Tickets > +
. - Configurez le formulaire de ticket selon vos besoins.
- Allez dans
-
Tableau de bord de la configuration :
Résultat ticketing lors de la réception d'un incident par l'admin :