You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2022-05-25 19:13:33

homebrewtainy
Member
Registered: 2020-04-04
Posts: 135

[RESOLU] GLPI-Agent : forcer des valeurs et déploiements distants

Bonjour, Bonsoir,

J'ai deux questions concernant le GLPI-Agent.

La première, un peu " quick 'n dirty " :

Est-il possible, lors de l'inventaire (glpi-inventory), de forcer des valeurs qui seront remontées par l'Agent vers le serveur GLPI ?
Typiquement les valeur SerialNumber (BIOS / SSN) ainsi que UUID (HARDWARE / UUID).
Existe-t’il une syntaxe à passer en paramètre à l'agent d'inventaire, qu'il soit MS-Windows ou Linux / Unix pour une telle action ?


La deuxième question, un peu " noob " :

Votre seul GLPI est installé dans vos locaux, dans votre société SSII/ESN, dans son infra, derrière son accès Internet, ses firewall et ses routeurs.

Vos sites clients distants sont forts multiples et éparses sur le territoire, et pareils, chacun est derrière son accès Internet, ses firewall et ses routeurs et sans être interconnectés par des VPN (ni entre-eux, ni vers vous).

L'inventaire en mode PUSH se passe bien, les GLPI-Agent installés un peu partout poussent leurs inventaires vers votre serveur GLPI.
Par contre, dans un schéma comme celui-ci, comment fonctionne(rai) le module déploiement de paquets (avec le glpi-inventory-plugin), via un " agent-proxy " sur chaque site distant ?

Merci d'avance :-)

Last edited by homebrewtainy (2022-08-08 15:32:04)


Creuser, creuser... creuser.
GLPI 10.0.12 [ Linux el 9.2 PHP 8.2.x MariaDB 10.5 ] - reverse proxy HTTPS
GLPI Inventory 1.3.3 - Data Injection 2.13.3 - Treeview (Arborescence) 1.10.2

Offline

#2 2022-05-25 21:47:28

francois-teclib
Expert GLPI
From: TECLIB
Registered: 2006-11-05
Posts: 74
Website

Re: [RESOLU] GLPI-Agent : forcer des valeurs et déploiements distants

Salut homebrewtainy,

Si les agents poussent leurs inventaires vers le serveur GLPI, alors cela veut dire qu'ils ont bien un accès (TCP 80/443) pour recevoir des "ordres" (tâches) de télé-déploiement en réponse.

Du point de vue de l'agent, le télé-déploiement fonctionne en mode "téléchargement", pour simplifier :
- l'agent déclenche un contact vers le serveur GLPI (TCP 80/443) et push son inventaire
- GLPI lui répond les modules autorisés (inventaire / deploy / discovery / etc) et les éventuelles tâches associées
- l'agent exécute alors les tâches qu'on lui demande (ex: "deploy" avec audit / download de fichier / actions)

L'échange est donc dans ce cas à l'origine de l'agent qui vient demander (ou récolter / télécharger) au serveur GLPI ce qu'il doit faire, GLPI ne fait que lui répondre (soit avec des tâches/actions à faire, soit avec des fichiers à télécharger).

La seule fois ou le serveur GLPI doit contacter les agents (donc dans le flux origine GLPI vers > agent) c'est en utilisant les fonctions de "Réveil à distance" (action automatique) ou d'inventaire à la demande (demander l'inventaire depuis la fiche d'un PC dans GLPI).

++


Besoin d'un support professionnel pour GLPI ? Pensez à GLPI Network ! https://glpi-project.org/fr/tarifs/

Connaissez-vous l'offre Cloud maintenue et supportée par l'équipe qui édite GLPI ?
Vous pouvez tester gratuitement pendant 45 jours ! https://glpi-network.cloud (ou plus si besoin)

Offline

#3 2022-05-26 11:35:20

homebrewtainy
Member
Registered: 2020-04-04
Posts: 135

Re: [RESOLU] GLPI-Agent : forcer des valeurs et déploiements distants

Salut francois-teclib,

Pour ce qui est du module déploiement de l'Agent, je vais (re)persévérer !
Cela fait (très) longtemps que je n'arrive " à rien " que ce soit avec FI ou le glpi-inventory-plugin et ce même en loco-local.

Merci de m'avoir rapporté un peu de lueur :-)

La première question reste ouverte...

Si gbougard passe par là ;-) ^^


Creuser, creuser... creuser.
GLPI 10.0.12 [ Linux el 9.2 PHP 8.2.x MariaDB 10.5 ] - reverse proxy HTTPS
GLPI Inventory 1.3.3 - Data Injection 2.13.3 - Treeview (Arborescence) 1.10.2

Offline

#4 2022-05-31 11:10:10

gbougard
Moderator
From: Montpellier, France
Registered: 2021-07-21
Posts: 534
Website

Re: [RESOLU] GLPI-Agent : forcer des valeurs et déploiements distants

Salut homebrewtainy,

concernant la première question, tu as toujours le paramètre "additional-content" qui peut répondre à ce besoin. Il permet d'indiquer un fichier que tu souhaites fusionner avec ton inventaire.

Après, il reste des petits soucis avec cette option que je vais devoir corriger: déjà le contenu du fichier va dépendre du format d'inventaire envoyé (XML ou JSON) et dans le cas du JSON, ça ne se passe pas exactement comme ça le devrait.


GLPI-Agent developer from Teclib' and GLPI-Network team
Previously FusionInventory-Agent maintainer

Offline

#5 2022-06-08 20:42:36

homebrewtainy
Member
Registered: 2020-04-04
Posts: 135

Re: [RESOLU] GLPI-Agent : forcer des valeurs et déploiements distants

Bonsoir gbougard,

Si tu cherches un volontaire pour tester ça ...?   :-)

Cordialement.


Creuser, creuser... creuser.
GLPI 10.0.12 [ Linux el 9.2 PHP 8.2.x MariaDB 10.5 ] - reverse proxy HTTPS
GLPI Inventory 1.3.3 - Data Injection 2.13.3 - Treeview (Arborescence) 1.10.2

Offline

#6 2022-06-10 12:53:06

gbougard
Moderator
From: Montpellier, France
Registered: 2021-07-21
Posts: 534
Website

Re: [RESOLU] GLPI-Agent : forcer des valeurs et déploiements distants

Salut homebrewtainy,

pour info, je viens de corriger le support de l'option additional-content dans le cas où tu génères un inventaire au format json. Ce sera disponible dans la prochaine nightly, ou dans le build de dev si tu es pressé de tester (ici: https://github.com/glpi-project/glpi-ag … 474461321).

Voici un exemple d'utilisation:

1. Tu as un inventaire qui te donne (je prends volontairement un inventaire partiel pour rester concis):

[root@mabellemachine ~]$ glpi-inventory --partial cpu
[info] New partial inventory from mabellemachine-2022-06-10-12-27-46 for local0
{
   "action": "inventory",
   "content": {
     "bios": {
        "bdate": "2019-09-09",
        "bmanufacturer": "American Megatrends Inc.",
        "bversion": "1201",
        "mmanufacturer": "ASUSTeK COMPUTER INC.",
        "mmodel": "PRIME X570-P"
     },
     "cpus": [
        {
           "arch": "i386",
           "core": 12,
           "familynumber": "23",
           "manufacturer": "AMD",
           "model": "113",
           "name": "AMD Ryzen 9 3900X 12-Core Processor",
           "thread": 24
        }
     ],
     "hardware": {
        "chassis_type": "Desktop",
        "dns": "127.0.0.53",
        "name": "mabellemachine",
        "uuid": "9a81d3e3-556b-42d8-8020-e3f6d922a25f",
        "vmsystem": "Physical",
        "workgroup": "local"
     },
     "versionclient": "GLPI-Inventory_v1.3-dev"
   },
   "deviceid": "mabellemachine-2022-06-10-12-27-46",
   "itemtype": "Computer",
   "partial": true
}

2. Tu souhaites changer le nom et l'uuid de la machine. Tu crées un fichier /etc/glpi-agent/update.json qui contient:

{
   "content": {
      "hardware": {
         "name": "monbeauserveur",
         "uuid": "cb6fad1f-ff0d-498e-a748-b89e42981fff"
      }
   }
}

3. Tu utilises l'option additional-content pour mettre à jour l'inventaire:

[root@mabellemachine ~]$ glpi-inventory --partial cpu --additional-content=/etc/glpi-agent/update.json
[info] New partial inventory from mabellemachine-2022-06-10-12-38-32 for local0
{
   "action": "inventory",
   "content": {
     "bios": {
        "bdate": "2019-09-09",
        "bmanufacturer": "American Megatrends Inc.",
        "bversion": "1201",
        "mmanufacturer": "ASUSTeK COMPUTER INC.",
        "mmodel": "PRIME X570-P"
     },
     "cpus": [
        {
           "arch": "i386",
           "core": 12,
           "familynumber": "23",
           "manufacturer": "AMD",
           "model": "113",
           "name": "AMD Ryzen 9 3900X 12-Core Processor",
           "thread": 24
        }
     ],
     "hardware": {
        "chassis_type": "Desktop",
        "dns": "127.0.0.53",
        "name": "monbeauserveur",
        "uuid": "cb6fad1f-ff0d-498e-a748-b89e42981fff",
        "vmsystem": "Physical",
        "workgroup": "local"
     },
     "versionclient": "GLPI-Inventory_v1.3-dev"
   },
   "deviceid": "mabellemachine-2022-06-10-12-38-32",
   "itemtype": "Computer",
   "partial": true
}

En utilisant l'inventaire partiel, tu peux rapidement vérifier ce que ça donne. Ensuite, si tu veux que ça fonctionne systématiquement, tu définis additional-content au niveau de ta conf locale.
Note bien que ça ne changera pas le deviceid de l'agent, mais c'est sans conséquence pour l'import: une nouvelle machine sera créée et liée à ce deviceid.


GLPI-Agent developer from Teclib' and GLPI-Network team
Previously FusionInventory-Agent maintainer

Offline

#7 2022-06-11 12:17:05

homebrewtainy
Member
Registered: 2020-04-04
Posts: 135

Re: [RESOLU] GLPI-Agent : forcer des valeurs et déploiements distants

Bonjour gbougard,

Merci pour l'évol sur le GLPI Agent (1.3-git2cfc7f4b) !

Cela peut répondre proprement, par contournement logiciel, aux problématiques rencontrées.

L'idéal étant de pouvoir faire confiance aux infos SMBIOS du matériel, du moment qu'elles sont solidement implémentées (et stables) dans la le BIOS / UEFI.
Mais d'expérience, ce n'est (rarement) pas toujours le cas !

Retour d'usage :
- cela fonctionne très bien lors de l’utilisation en ligne de commande sous PowerShell (pour un Agent sous MS_x64), tel quel :

PS C:\Program Files\GLPI-Agent> .\glpi-inventory.bat --partial cpu --additional-content="C:\Program Files\GLPI-Agent\etc\update.json"

Le résultat escompté est obtenu, les valeurs sont modifiées.

Par contre si j'insère la valeur de configuration :

C:\Program Files\GLPI-Agent\etc\update.json

en Base de Registre dans la clef :

HKEY_LOCAL_MACHINE\SOFTWARE\GLPI-Agent\additional-content

  que ce soit tel quel, ou entre ' ' ou bien entre " " et que le relance la commande :

PS C:\Program Files\GLPI-Agent> .\glpi-inventory.bat --partial cpu

rien n'est modifié, même après avoir redémarré l'Agent... et même la machine (on sait jamais).

Je ne regarde pas au bon endroit ou j'ai loupé la syntaxe dans la BDR ?

Cordialement.


Creuser, creuser... creuser.
GLPI 10.0.12 [ Linux el 9.2 PHP 8.2.x MariaDB 10.5 ] - reverse proxy HTTPS
GLPI Inventory 1.3.3 - Data Injection 2.13.3 - Treeview (Arborescence) 1.10.2

Offline

#8 2022-06-11 15:33:34

homebrewtainy
Member
Registered: 2020-04-04
Posts: 135

Re: [RESOLU] GLPI-Agent : forcer des valeurs et déploiements distants

re Bonjour gbougard,

Rectification, en exécution autonome de l'Agent (en tant que service), les valeurs contenues dans le fichier pointé (sans ' ' ou " ") par la conf en BDR :

HKEY_LOCAL_MACHINE\SOFTWARE\GLPI-Agent\additional-content REG_SZ C:\Program Files\GLPI-Agent\etc\update.json

sont intégrées dans l'inventaire et poussées au GLPI.

Dorénavant la machine de test est mise à jour sans démultiplication (testé sur trois remontées à 15 min d'intervalle).

Merci encore gbougard.

Ceci dit, je vais tout même préparer de la matière pour le sujet https://forum.glpi-project.org/viewtopic.php?id=283941 , il y a potentiellement quelque chose à y regarder.

Cordialement.

Last edited by homebrewtainy (2022-06-11 16:39:46)


Creuser, creuser... creuser.
GLPI 10.0.12 [ Linux el 9.2 PHP 8.2.x MariaDB 10.5 ] - reverse proxy HTTPS
GLPI Inventory 1.3.3 - Data Injection 2.13.3 - Treeview (Arborescence) 1.10.2

Offline

#9 2022-06-13 10:29:03

gbougard
Moderator
From: Montpellier, France
Registered: 2021-07-21
Posts: 534
Website

Re: [RESOLU] GLPI-Agent : forcer des valeurs et déploiements distants

Bonjour homebrewtainy,

merci pour ton retour positif ;-)

Concernant glpi-inventory, ce script ne prend pas en compte la configuration en base de registre. Un moyen de contourner pour tester est de lancer:

glpi-agent -l - --partial cpu

ou sur un inventaire complet:

glpi-agent -l - --json

GLPI-Agent developer from Teclib' and GLPI-Network team
Previously FusionInventory-Agent maintainer

Offline

Board footer

Powered by FluxBB