# Déploiement via GlpiInventory

## Plugin GLPI Inventory

{% hint style="info" %}
**Information**

Le plugin GLPI Inventory est disponible dans le menu **`Administration`** > **`GLPI Inventory`**\
S'il n'est pas installé, veuillez aller dans le **marketplace**, et installer le plugin GLPI Inventory

\
![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-bebdcd7a6d61d2ae847303ed728a772ad3cbfa14%2Finventaire_pc-1.png?alt=media)
{% endhint %}

La configuration du déploiement de logiciels peut se faire en trois étapes :

1. détermination des fichiers et/ou commandes à déployer
2. détermination des cibles de déploiement
3. le déploiement lui-même

{% hint style="success" %}
**Recommandation**

Nous recommandons d'utiliser l'URL `https://`*`my_instance`*`/marketplace/glpiinventory` pour vos agents GLPI afin d'assurer un déploiement d'applications correct.

<img src="https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-43c26596c7de8ac16f485a02d64172916a61dad1%2Furl_agent.png?alt=media" alt="" data-size="original">
{% endhint %}

## Fichiers

* Allez dans **`Administration`** > **`GLPI Inventory`**
* Dans l'onglet **`Déployer`** > **`Gestion des packages`**
* Créez un nouveau package avec **`ajouter`**
* Nommez-le
* **`Ajouter`**

Dans ce package nouvellement créé, dans l'onglet **`Actions sur le package`** nous devons configurer les quatre parties qui forment un package :

* Audits
* Fichiers
* Actions
* Interactions utilisateur

Chaque partie est configurée via petite icône

***

### Audits

Il est possible d'effectuer des vérifications avant de démarrer le processus d'installation du package. Cette partie n'est pas essentielle mais peut être nécessaire pour un déploiement optimal.

* Vérification de registre (Windows uniquement)

<div align="left"><img src="https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-0d755385627e06608a34e108d519d6766323d61f%2Fglpiinventory_deploy-2.png?alt=media" alt="Texte alternatif"></div>

* Vérification de fichiers (tous OS)
* Vérification d'espace disque libre (tous OS)

<div align="left"><img src="https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-869722962a49d92fb5a21119ae227dae423b9030%2Fglpiinventory_deploy-3.png?alt=media" alt="Texte alternatif"></div>

Si l'audit échoue, les options suivantes sont disponibles :

* **`arrêter le processus`** : ne pas continuer les vérifications, et passer le processus de déploiement
* **`ignorer le processus`** : ne pas continuer le processus et passer le déploiement avec succès (package déjà installé)
* **`signaler information`** : les vérifications continuent, l'échec est signalé à la console centrale
* **`signaler avertissement`** : les vérifications continuent, un avertissement apparaît sur la console centrale

***

### Fichiers

Dans cette partie, vous devez sélectionner les données (fichiers) qui seront déployées.

Deux options possibles :

* Téléchargement depuis votre ordinateur (attention à la taille maximale autorisée) : si vous voulez télécharger une taille plus importante, veuillez contacter le Support Cloud.

L'administrateur peut sélectionner les fichiers depuis son ordinateur.

![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-fb05e94fa721be2a2762659acf87f84947d43ed8%2Fglpiinventory_deploy-4.png?alt=media)

Les options d'import sont disponibles pour chaque fichier :

* **`Décompresser`** : l'agent peut décompresser les archives zip ou tar.gz
* **`P2P`** : indique si les fragments de fichier peuvent être disponibles via P2P ou uniquement via le serveur
* **`Temps de rétention`** : lors d'un déplacement P2P, le nombre de minutes dans lesquelles le
* Fragment téléchargé est disponible aux autres agents du sous-réseau

Téléchargement depuis le serveur (non disponible en environnement Cloud pour le moment)

***

### Actions

Une fois les fichiers à télécharger définis, il est nécessaire de définir quelles actions doivent être exécutées dessus ou non.

Les actions sont exécutées après téléchargement réussi du/des fichier(s). Voici leurs types :

* exécuter une commande
* créer ou supprimer un répertoire
* déplacer ou copier un fichier

Comme exemple, installation de Firefox :

![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-06711e77dbbf0d8d177141fdd5559a82b1b2804c%2Fglpiinventory_deploy-5.png?alt=media)

Un mécanisme permet de vérifier si l'exécution de commande s'est bien passée. Pour cela, vous pouvez tester :

* le code de retour de la commande
* la sortie standard de la commande

<div align="left"><img src="https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-2ad28de7b4fa257bc064e10662783516bb6ef654%2Fglpiinventory_deploy-6.png?alt=media" alt="Texte alternatif"></div>

***

### Interactions utilisateur

Cette fonctionnalité n'est pas obligatoire.

L'administrateur peut décider s'il faut interagir avec l'utilisateur dans le processus de déploiement :

* après l'exécution des audits
* après le téléchargement des fichiers
* après les actions
* en cas d'échec du téléchargement de fichier
* en cas d'échec de l'exécution des actions

Cette fonctionnalité est divisée en deux parties :

* Définition du modèle d'interaction

Le modèle enregistre les caractéristiques d'une interaction pour être réutilisé la prochaine fois. Il décrit à la fois le type de fenêtre affichée à l'utilisateur et son comportement.

Les modèles sont accessibles via **`Administration`** > **`GLPI Inventory`** > **`Déployer`** > **`modèles d'interaction utilisateur`**

Exemple :

<div align="left"><img src="https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-41caa0b78e66c0fc752c06bb75856c677861c84e%2Fglpiinventory_deploy-7.png?alt=media" alt="Texte alternatif"></div>

Le modèle a :

* un nom
* une formation d'interaction (Windows WTS uniquement)
* un type d'interaction : définition des boutons accessibles sur la fenêtre
* si une icône est affichée ou non
* un nombre de reports possibles d'une interaction
* le temps entre 2 demandes d'interaction de l'utilisateur

Ensuite, vous devez définir quel serait le comportement du système selon les différents comportements adoptés par l'utilisateur, via l'onglet Comportements.

![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-0af79b2fff5c9189a83b5268d3b34ec49d5dbedc%2Fglpiinventory_deploy-8.png?alt=media)

Trois types de comportement sont possibles pour chaque action :

* continuer le processus de déploiement
* l'arrêter
* réessayer plus tard

Certains événements sont pré-définis, quel que soit le type de choix que fait l'utilisateur :

* Comportement en cas d'absence de session active
* Comportement en cas de plusieurs sessions actives (TSE)
* Comportement en cas de dépassement du temps d'affichage de la fenêtre (fermeture automatique)
* Application du modèle pour l'événement package Une fois le modèle configuré, il doit être appliqué.

En revenant à notre package, sélectionnez l'onglet **`Actions sur le package`** dans la section **`Interactions utilisateur`**.

L'administrateur définit le titre et le contenu de la fenêtre qui sera affichée à l'utilisateur.

<div align="left"><img src="https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-394a210ea999289d25880348c10c0593047a7c73%2Fglpiinventory_deploy-9.png?alt=media" alt="Texte alternatif"></div>

***

### Cibles de déploiement

Une fois le package défini, vous devez définir sur quel(s) poste(s) de travail il sera installé.

GLPI Inventory propose plusieurs types de cibles :

* un ordinateur particulier
* un groupe d'ordinateurs basé sur un groupe GLPI
* un groupe d'ordinateurs GLPI Inventory

Généralement nous utilisons principalement les groupes GLPI Inventory, qui sont soit statiques soit dynamiques.

Cette configuration s'effectue depuis le menu **`Administration`** > **`GLPI Inventory`** > **`Général`** > **`Groupe d'ordinateurs`**.

***

#### Groupes statiques

Un groupe statique contient des machines qui ont été sélectionnées par l'administrateur. Il ne change pas dans le temps, sauf si l'administrateur ajoute/supprime des machines.

***

**Créer un groupe statique**

* Depuis **`Administration`** > **`GLPI Inventory`** > **`Général`** > **`Groupes d'ordinateurs`**
* Cliquez sur **`Ajouter`**
* Nommez votre groupe
* Choisissez **`Groupe statique`**
* Dans l'onglet **`Critères`**, sélectionnez les informations que vous voulez dans la recherche (ici nous indiquerons tous les postes situés à Paris)
* Vous pouvez ajouter autant de critères que vous voulez, en faisant attention à l'opérateur logique (et, ou, et non, ou non). Vous pouvez créer des règles globales (critères d'entité, critères d'utilisateur, critères d'application, etc.) et/ou créer des groupes de critères (par exemple, tous les PC dont le nom est Microsoft, dont le nom contient commerce, avec un statut actif, connectés au switch du 3ème étage. Tous ces critères doivent être remplis pour que le PC soit inclus dans le groupe dynamique).
* Cliquez sur **`Aperçu`** pour voir apparaître la liste des postes de travail
* Sélectionnez les postes de travail concernés
* Utilisez le bouton **`Actions`** pour les ajouter au groupe statique
* Les résultats de recherche apparaîtront dans **`Éléments associés`**.

***

#### Groupes dynamiques.

Un groupe dynamique est le résultat d'une requête de moteur de recherche. Les machines du groupe sont calculées et la liste varie dans le temps.

***

**Créer un groupe dynamique**

* Depuis **`Administration`** > **`GLPI Inventory`** > **`Général`** > **`Groupes d'ordinateurs`**
* Cliquez sur **`Ajouter`**
* Nommez votre groupe
* Choisissez **`Groupe dynamique`**
* Dans l'onglet **`Critères`**, sélectionnez les informations désirées dans la recherche (ici nous indiquerons tous les postes de travail dont le nom d'OS contient Microsoft et sont situés à Barcelone).
* Vous pouvez ajouter autant de critères que vous voulez, en faisant attention à l'opérateur logique (et, ou, et non, ou non). Vous pouvez créer des règles globales (critères d'entité, critères d'utilisateur, critères d'application, etc.) et/ou créer des groupes de critères (par exemple, tous les PC dont le nom est Microsoft, dont le nom contient commerce, avec un statut actif, connectés au switch du 3ème étage. Tous ces critères doivent être remplis pour que le PC soit inclus dans le groupe dynamique).
* Cliquez sur **`Enregistrer`**.
* Les résultats de la recherche apparaîtront dans **`Éléments associés`**.

![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-f7c3140b277dd3d36c179d19d2f04b84c6eb0930%2Fglpiinventory_deploy-10.png?alt=media)

Votre groupe est créé. Si vous le souhaitez, vous pouvez le transformer en groupe statique en utilisant le menu **`Actions`**.

![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-16f248a813aa78d1c662c37461fdfdb784cc0669%2Fglpiinventory_deploy-10bis.png?alt=media)

{% hint style="success" %}
**Groupes dynamiques <-> groupes statiques**

Vous pouvez changer le type de groupe de dynamique à statique à tout moment en le modifiant directement dans les paramètres du groupe

<img src="https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-50a7f0f3cabee6a105f0f611d637c31aa5358baf%2Fglpiinventory_deploy-10ter.png?alt=media" alt="Texte alternatif" data-size="original">
{% endhint %}

## Déploiement

***

### Tâches

Le déploiement de package se fait en ajoutant des tâches dédiées. Les tâches sont accessibles via **`Administration`** > **`GLPI Inventory`** > **`Tâches`** > **`Gestion des tâches`**.

Une tâche de déploiement peut contenir plusieurs jobs, qui sont plusieurs actions que l'agent exécutera les unes après les autres.

Une tâche est divisée en 3 étapes :

* **`préparation`** : c'est l'étape de calcul des cibles pour lesquelles la tâche doit être exécutée
* **`exécution`** : c'est l'étape d'envoi de l'ordre de déploiement depuis le serveur vers l'agent
* **`le suivi`** : c'est l'étape d'affichage du suivi de déploiement Après création d'une tâche, rendez-la active et définissez son exécution.

Il est possible d'indiquer la plage de validité de la tâche :

* **`heure de début planifiée`** : commencer les actions de préparation à partir de cette date
* **`heure de fin planifiée`** : arrêter la validation de tâche après cette date

![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-bcdc3b0c00714eb0e76d662b1dbbfea3f820ec5a%2Fglpiinventory_deploy-11.png?alt=media)

{% hint style="warning" %}
**Actions automatiques**

Vérifiez si l'action automatique **`Planificateur de tâches`** est correctement configurée
{% endhint %}

***

### Jobs

Dans la tâche, dans l'onglet **`Configuration de job`**.

Un job est une action pour déployer un package vers un ordinateur ou un ensemble d'ordinateurs.

{% hint style="warning" %}
**Information**

Assurez-vous que le module de déploiement distant est activé pour chaque agent. Il est possible d'activer le module par défaut dans la configuration générale de GLPI Inventory
{% endhint %}

Un job contient :

* **`Méthode`** (déploiement de package ici)
* **`Cibles`** (package à déployer)
* **`Acteurs`** (groupes cibles)

![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-a882c3c2e1c9ee5d7fad2f1f967a0333d4d1a1db%2Fglpiinventory_deploy-12.png?alt=media)

{% hint style="info" %}
**Information**

La tâche est déclenchée quand l'agent sur le PC cible contacte le serveur. Le serveur envoie alors sa tâche de déploiement et effectue les actions programmées
{% endhint %}

![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-c83cf3621679dc18ff6a16a74375879fa260da69%2Fglpiinventory_deploy-13.png?alt=media)

Le déploiement est suivi soit dans l'onglet **`Exécution de job`** d'une tâche, soit via le menu **`Administration`** > **`GLPI Inventory`** > **`Tâches`** > **`Suivi / Logs`**.

![Texte alternatif](https://1227510999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqmRzI15ndDbFHGd5BnM4%2Fuploads%2Fgit-blob-c5d1e79dd5ad2bae6798dd269de99b6eb1d6d38e%2Fglpiinventory_deploy-14.png?alt=media)
