# Cloudinventory

## Inventaire Cloud

<figure><img src="/files/7HTVBb05TejxINcV5ChT" alt="images/providers.png"><figcaption></figcaption></figure>

## Prérequis (auto-hébergé)

| Version GLPI | PHP minimum | Recommandé |
| ------------ | ----------- | ---------- |
| 10.0.x       | 8.1         | 8.2        |
| 11.0.x       | 8.2         | 8.4        |

{% hint style="info" %}
Une souscription [GLPI Network BASIC](https://services.glpi-network.com/#offers) (ou supérieur) est requis. Ce plugin est également disponible pour toutes les instances [Cloud de GLPI Network](https://glpi-network.cloud).
{% endhint %}

## Installer le plugin

* Allez sur le marketplace. Téléchargez et installez le plugin **CloudInventory**.

<div align="left"><figure><img src="/files/L0p95bueAARLGzZCphop" alt="images/install_plugin.png"><figcaption></figcaption></figure></div>

## À savoir

Les fournisseurs et types de ressources actuellement pris en charge sont :

* **OVHcloud**

  > * Instances Public Cloud
  > * VPS (Serveurs Privés Virtuels)
  > * Serveurs dédiés (Bare Metal)
* **Scaleway**

  > * Instances Compute (Machines Virtuelles)
  > * Serveurs Bare Metal
  > * Instances Apple Silicon
* **Amazon Web Services (AWS)**

  > * Instances EC2 (Elastic Compute Cloud)
* **Microsoft Azure**

  > * Machines Virtuelles
* **Google Cloud Platform (GCP)**

  > * Google Compute Engine (Machines Virtuelles)
* **Alibaba Cloud**

  > * Elastic Compute Service (ECS)

## Identifiants des fournisseurs

Chaque fournisseur peut être configuré individuellement via l'interface du plugin. La configuration comprend généralement :

* Les identifiants d'accès API (clés, secrets)
* Les paramètres de région, de projet ou d'abonnement

### OVH

#### Créer des identifiants

* Pour obtenir des identifiants, cliquez sur le lien suivant :
  * Pour l'Europe <https://eu.api.ovh.com/createToken/>
  * Pour l'Amérique du Nord <https://ca.api.ovh.com/createToken/>
  * Pour les États-Unis <https://api.us.ovhcloud.com/createToken/>
* Connectez-vous avec votre compte

<div align="left"><figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/connect_ovh.png" alt="" width="338"><figcaption></figcaption></figure></div>

Pour accéder au formulaire `Créer des clés API`

<div align="left"><figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/ovh_api.png" alt="" width="375"><figcaption></figcaption></figure></div>

* Remplissez les informations suivantes :
  * Un `Nom d'application` (obligatoire)
  * Une `Description d'application` (optionnel)
  * Une période de `validité`.
  * Les `Droits` pour restreindre l'utilisation de l'application à certaines API

    GLPI a seulement besoin du droit `GET` sur `*` (pour autoriser toutes les API OVHcloud)
* Après soumission, `OVH` vous fournira :
  * `Application Key`
  * `Application Secret`
  * `Consumer Key`

#### Configuration GLPI

Allez dans **`Administration`** > **`Inventaire Cloud`** > **`+Ajouter`**

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/provider_ovh.png" alt=""><figcaption></figcaption></figure>

### Amazon

#### Créer des identifiants

Consultez la documentation sur la gestion des identifiants : [Documentation des identifiants AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)

Ou suivez simplement ces instructions :

* Allez sur la page IAM et connectez-vous avec votre compte : [IAM](https://us-east-1.console.aws.amazon.com/iamv2/home#/home)
* Allez dans l'onglet Utilisateur : [Onglet Utilisateur](https://us-east-1.console.aws.amazon.com/iamv2/home#/users)
* Consultez cette page : [Page des identifiants de sécurité](https://us-east-1.console.aws.amazon.com/iamv2/home#/users/details/USER?section=security_credentials)

Après validation du formulaire, `Amazon` vous fournira les informations suivantes :

* `Application Key`
* `Application Secret`

#### Configuration GLPI

Allez dans **`Administration`** > **`Inventaire Cloud`** > **`+Ajouter`**

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/provider_amazon.png" alt=""><figcaption></figcaption></figure>

### Scaleway

#### Créer des identifiants

Consultez la documentation sur la gestion des identifiants : [Comment créer une clé API](https://www.scaleway.com/en/docs/identity-and-access-management/iam/how-to/create-api-keys/)

Ou suivez simplement ces instructions :

* Allez sur la console Scaleway et connectez-vous avec votre compte : <https://console.scaleway.com/login>
* Cliquez sur **Gestion des identités et des accès (IAM)** en haut à droite de votre [Tableau de bord d'organisation](https://console.scaleway.com/organization)
* Cliquez sur l'onglet **Clés API**.
* Cliquez sur **Générer une clé API**.
* Choisissez le **propriétaire** de la clé API (**utilisateur IAM** ou **application IAM**).
* Entrez une description (facultatif) et une date d'expiration pour la clé API.
* Sélectionnez si la clé API sera utilisée pour le stockage d'objets → choisissez **Non**

Après validation du formulaire, `Scaleway` vous fournira les informations suivantes :

* `Access Key`
* `Secret key`

#### Configuration GLPI

Allez dans **`Administration`** > **`Inventaire Cloud`** > **`+Ajouter`**

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/provider_scaleway.png" alt=""><figcaption></figcaption></figure>

### Google

#### Créer des identifiants

Consultez la documentation sur la gestion des identifiants : [Comment gérer votre clé](https://cloud.google.com/anthos/run/docs/securing/service-accounts?hl=fr)

Ou suivez simplement ces instructions :

* Allez sur la page [Comptes de service](https://console.cloud.google.com/iam-admin/serviceaccounts?hl=fr&_ga=2.193077034.605580056.1710501828-763263516.1710237390) dans la **Console Google Cloud**
* Sélectionnez le **Projet** sur lequel votre **Machine virtuelle** a été créée
* Créez un nouveau **Compte de service**

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/google_service_account.png" alt=""><figcaption></figcaption></figure>

* Remplissez les informations requises, puis cliquez sur `Terminé`

<div align="left"><figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/google_service_account_details.png" alt="" width="442"><figcaption></figcaption></figure></div>

* Sélectionnez votre compte dans la liste

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/google_account_list.png" alt=""><figcaption></figcaption></figure>

* Choisissez le type JSON

<figure><img src="/files/3w6BTqRjEJ9mrff2D1aW" alt=""><figcaption></figcaption></figure>

Maintenant, votre fichier de clé a été téléchargé sur votre ordinateur

#### Configuration GLPI

Allez dans **`Administration`** > **`Inventaire Cloud`** > **`+Ajouter`**

<figure><img src="/files/VAwlTTn7G8sjxeBAv0Ju" alt=""><figcaption></figcaption></figure>

### Alibaba

#### Créer des identifiants

Consultez la documentation sur la gestion des identifiants : [Documentation des clés Alibaba Cloud](https://www.alibabacloud.com/help/en/ram/user-guide/create-an-accesskey-pair)

Ou suivez simplement ces instructions :

* Connectez-vous à la [console RAM](https://ram.console.aliyun.com/?spm=a2c63.p38356.0.0.4f8b4688KexBmn) et connectez-vous avec votre compte Alibaba Cloud.
* Survolez l'image de profil dans le coin supérieur droit de la page qui s'affiche et cliquez sur **Gestion des clés d'accès**.
* Dans le message de note, lisez les conseils de sécurité et cliquez sur **Utiliser la paire de clés d'accès actuelle**.

<div align="left"><figure><img src="/files/3emDcb9aQNwilDLyUZ5k" alt=""><figcaption></figcaption></figure></div>

* Sur la page **Paire de clés d'accès**, cliquez sur **Créer une paire de clés d'accès**.
* Dans le message Créer une paire de clés d'accès, affichez l' **ID de clé d'accès** et le **Secret de clé d'accès**.

  *Vous pouvez cliquer sur Télécharger le fichier CSV pour télécharger la paire \*\*AccessKey\** ou cliquer sur **Copier** pour copier la paire **AccessKey**.\_
* Enfin, sélectionnez J'ai enregistré le **Secret de clé d'accès**.

#### Configuration GLPI

Allez dans **`Administration`** > **`Inventaire Cloud`** > **`+Ajouter`**

<figure><img src="/files/YNXaK404osdEF2kFe2dk" alt=""><figcaption></figcaption></figure>

### Entra

#### Créer des identifiants

Comment obtenir votre `Tenant ID` et `Client ID`

* Allez dans votre Tenant et enregistrez une nouvelle application

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/entra_add_application.png" alt=""><figcaption></figcaption></figure>

* Allez dans Aperçu pour obtenir le `Tenant ID` et le `Client ID`

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/entra_overview_application.png" alt=""><figcaption></figcaption></figure>

* Allez dans `Certificats et secrets`
* Ajoutez un `Nouveau secret client`
* Définissez l'`expiration`
* Puis enregistrez

***

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/entra_secret.png" alt=""><figcaption></figcaption></figure>

La valeur `Secret` sera affichée (4)

{% hint style="warning" %}
La valeur du secret client ne peut pas être consultée, sauf immédiatement après sa création. Assurez-vous de sauvegarder le secret lors de sa création avant de quitter la page.
{% endhint %}

* Allez dans **`Abonnement`** > **`Contrôle d'accès (IAM)`** > **`Ajouter une attribution de rôle`**

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/entra_add_roles.png" alt=""><figcaption></figcaption></figure>

* Recherchez `Microsoft.ClassicCompute`
* Sélectionnez `Lecteur`
* Puis `Suivant`

<figure><img src="/files/wvMXUeCyLTBUoqtjKott" alt=""><figcaption></figcaption></figure>

* Sélectionnez `cloudinventory` (application) précédemment créée
* Puis cliquez sur `Examiner + attribuer`

<figure><img src="/files/QD1FZ1Jb6be8MXWqex5r" alt=""><figcaption></figcaption></figure>

#### Configuration de GLPI

Allez dans **`Administration`** > **`Inventaire Cloud`** > **`+Ajouter`**

<figure><img src="https://github.com/glpi-network/gitbook-fr/blob/main/doc-plugins/.gitbook/assets/provider_entra.png" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Dans certains cas, des `points de terminaison globaux` sont disponibles.

Si vous avez plus d'une zone, ou si vous ne savez pas où se trouvent vos machines, les `points de terminaison globaux` sont disponibles :

* `Tester tous les points de terminaison` regroupe tous les `points de terminaison`
* `Points de terminaison Europe uniquement` regroupe les `points de terminaison` situés en `Europe`
* etc.

Cela signifie que la synchronisation prendra plus de temps.
{% endhint %}

## Droits

Le plugin offre une gestion complète des droits.

Allez dans `Administration` > `Profils` > `Inventaire Cloud`

* **Fournisseur**
  * Lire
  * Mettre à jour
  * Supprimer
  * Purger
  * Lancer la découverte
* **InstanceCloud**
  * Mettre à jour
  * Synchroniser
  * Obtenir les données de l'API
  * Purger
* **Tableau de bord**
  * Voir le tableau de bord

<figure><img src="/files/3NqRZAsFp4hAClTGWYhW" alt="images/right.png"><figcaption></figcaption></figure>

## Découverte

Maintenant que notre fournisseur a été créé dans GLPI, nous pouvons commencer à travailler sur l'inventaire cloud.

* Pour chaque fournisseur, vous pouvez déclencher manuellement la synchronisation ici :

<figure><img src="/files/WUoeMi0i8y8bshPhlRMo" alt="images/view_discovery.png"><figcaption></figcaption></figure>

* Vous pourrez visualiser la progression de la découverte.

<figure><img src="/files/p4r0sTEJINZL2xDNOqZt" alt="images/run_discovery.png"><figcaption></figcaption></figure>

* Ou simplement configurer les actions automatiques associées (vous pouvez filtrer par nom de fournisseur (par exemple, OVH)) (voir [CronTask](https://glpi-plugins.readthedocs.io/en/latest/cloudinventory/crontask.html))

<figure><img src="/files/t7riodrHDBOTxN5dt0rs" alt="images/automatic_discovery.png"><figcaption></figcaption></figure>

## Instance Cloud

Chaque actif cloud trouvé est enregistré dans le plugin sous un objet `CloudInstance`.

* Vous pouvez trouver la liste des `CloudInstance` ici :

<figure><img src="/files/RtzyppOUE815oGfVxnUz" alt="images/view_instances.png"><figcaption></figcaption></figure>

* Ou depuis le fournisseur (et l'onglet dédié)

<figure><img src="/files/pDUR4i66XS4dZSnGZ6OD" alt="images/view_provider_instances.png"><figcaption></figcaption></figure>

{% hint style="info" %}
L'action `refresh` vous permet d'exécuter manuellement la synchronisation pour une CloudInstance.
{% endhint %}

{% hint style="info" %}
Le statut de la *CronTask* associée est affiché (voir [CronTask](#crontask)). Un bouton permet de l'activer ou de la désactiver.

<img src="/files/dksrWFYJ5uBHux9V3mGB" alt="" data-size="original">
{% endhint %}

* Cliquez sur le lien `CloudInstance` pour obtenir plus d'informations :

<figure><img src="/files/XygLn3raoTAKqJhGBqpb" alt="images/instance_details.png"><figcaption></figcaption></figure>

{% hint style="warning" %}
Les `Cloud Instances` synchronisées sont automatiquement assignées à la même `entité` que le `Fournisseur` dont elles proviennent.
{% endhint %}

* **Ordinateur GLPI**
  * Ordinateur GLPI associé trouvé
  * Type de rapprochement pour cette *CloudInstance* (nom ou MAC)

{% hint style="info" %}
**Ordinateur GLPI inconnu**

Plusieurs raisons peuvent expliquer cela :

* L'ordinateur n'existe pas encore dans GLPI (vous pouvez alors installer l'agent GLPI pour le faire apparaître, puis redémarrer la découverte des instances cloud pour établir le lien).

* Le rapprochement (en utilisant la MAC ou le nom de l'instance cloud) n'a pas pu trouver d'ordinateur.

* Vérifiez que l'adresse MAC ou le nom existe dans GLPI.

* Vous pouvez sélectionner manuellement l'ordinateur correspondant (N'oubliez pas de verrouiller l'ordinateur pour éviter que la prochaine découverte n'écrase votre sélection).

* Contactez-nous pour améliorer la méthode de rapprochement.
  {% endhint %}

* **Fournisseur**
  * Nom du fournisseur (lien vers le formulaire du fournisseur GLPI)
  * Bouton pour synchroniser cette instance maintenant

* **Instance Cloud**
  * Nom de l'instance
  * Nom d'affichage de l'instance
  * ID de l'instance
  * ID du projet
  * Nom du projet
  * Modèle
  * État
  * Emplacement
  * Centre de données

* **Sauvegardes**
  * A une sauvegarde ?
  * État de la sauvegarde
  * Liste des sauvegardes
  * Planifiée

Une section finale, `Données API`, vous donne un accès direct aux informations de l'`API` pour l'`Instance Cloud` associée.

<figure><img src="/files/5IiHCawOUXWLie59g4mC" alt="images/instance_api.png"><figcaption></figcaption></figure>

## CronTask

Pour chaque fournisseur et chaque type d'instance, une tâche automatique dédiée permet une synchronisation régulière entre les données des API et les données de GLPI.

<figure><img src="/files/bFJ7XmKzlM2CV4T4cRUB" alt="images/crontask.png"><figcaption></figcaption></figure>

## Recherche

Le plugin ajoute de nouveaux critères au moteur de recherche d'ordinateurs.

Depuis la liste des ordinateurs, il est possible de filtrer les résultats sur les données de la `CloudInstance` associée (si la `CloudInstance` y est liée).

<figure><img src="/files/Gw6DuBAoX7cOzFm2M0XC" alt="images/search.png"><figcaption></figcaption></figure>

## Tableau de bord

Le plugin `CloudInventory` propose un tableau de bord pour afficher un résumé des `CloudInstance`.

<figure><img src="/files/O8j0xQL4R3yRVvIHeY3i" alt="images/dashboard.png"><figcaption></figcaption></figure>

## Règles d'actifs

Le plugin ajoute de nouveaux critères aux `Règles métier pour les actifs`.

<figure><img src="/files/f8Uhj97cis0Jbu9hBZU0" alt="images/rules_asset.png"><figcaption></figcaption></figure>

Chaque fois qu'un ordinateur est mis à jour (manuellement ou dynamiquement), s'il est lié à une `CloudInstance`, le moteur recevra les données suivantes (lorsqu'elles sont disponibles) :

* `Inventaire Cloud - ID de l'instance`
* `Inventaire Cloud - Nom d'affichage de l'instance`
* `Inventaire Cloud - Nom de l'instance`
* `Inventaire Cloud - Nom du projet`
* `Inventaire Cloud - A une sauvegarde`
* `Inventaire Cloud - État`
* `Inventaire Cloud - Emplacement`
* `Inventaire Cloud - Centre de données`
* `Inventaire Cloud - Type d'instance`

## Journal

Si le mode débogage est activé pour un fournisseur dédié :

<figure><img src="/files/xxLH5CdL5cP1ATh1Ti6R" alt="images/log.png"><figcaption></figcaption></figure>

Un nouveau fichier journal sera automatiquement créé et contiendra diverses informations suite à l'exécution de la synchronisation.

Exemple : pour le fournisseur `Ovh` et la synchronisation `VPS`, un fichier nommé `ovh-{{instance-type}}-{{provider_name}}-error.log` sera créé dans le dossier `glpi/files/_log/` et contiendra les erreurs rencontrées lors de son exécution.

***

## FAQ

Si vous avez des questions concernant l'utilisation du plugin, n'hésitez pas à consulter notre FAQ

<a href="/spaces/VU1qbB9Oe25HAYDAQ4tR/pages/cDsLT5xEVUh6U87xcnuS" class="button secondary">Aller à la FAQ</a>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.glpi-project.org/doc-plugins/fr/plugin-glpi-network/cloudinventory.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
