Skip to main content

Diagnostiquer et corriger les agents Medulla

S'applique à : Medulla – Serveur et agents Windows
Version : medulla_agents_V29.py
Environnement : On-Premise / Serveur Medulla
Catégorie : Diagnostic / Réparation / Maintenance des agents

Le script medulla_agents_V29.py permet de diagnostiquer les agents Medulla installés sur les postes Windows, d'identifier les anomalies de fonctionnement et de proposer des corrections après confirmation.

Il analyse les machines ON et OFF, contrôle les services, les fichiers de l'agent, les communications XMPP et SSH, l'inventaire GLPI-Agent, les journaux et certains problèmes de configuration du serveur.

Chaque relevé produit un rapport HTML comprenant une fiche par machine, un diagnostic et un plan de réparation avec les commandes à exécuter.

Important : L'audit est effectué en lecture seule sur les postes et dans la base Medulla. Depuis la V27, le rapport est toutefois publié par défaut sous forme chiffrée sur le site web du serveur. Utilisez --sans-publication pour désactiver cette publication.

1. Usage rapide

Cette première partie explique comment lancer le script, effectuer un diagnostic, consulter le rapport et corriger une machine.

1.1. Prérequis

Le script s'exécute directement sur le serveur Medulla, avec les droits root.

Les commandes suivantes doivent être disponibles :

  • mysql : interrogation de la base Medulla.
  • ssh : connexion aux machines.
  • scp : transfert des fichiers.
  • ping : diagnostic de connectivité.
  • ip : diagnostic réseau.
  • openssl : publication chiffrée des rapports.

Si des paquets sont absents, le script propose de les installer. L'option --installer permet leur installation sans question.

1.2. Lancer le script dans screen

Pour éviter qu'une coupure de connexion SSH interrompe le diagnostic, il est recommandé d'exécuter le script dans une session screen.

screen -S medulla
cd /root
./medulla_agents_V29.py

Pour détacher la session sans arrêter le script :

Ctrl+A puis D

Pour retrouver la session :

screen -r medulla

Attention : Sans screen, une coupure SSH peut interrompre le relevé. Les actions XMPP déjà lancées peuvent cependant se terminer.

1.3. Premier diagnostic sans correction

Pour auditer les machines OFF dans Medulla :

./medulla_agents_V29.py --dry-run

Pour auditer l'ensemble du parc, machines ON et OFF :

./medulla_agents_V29.py --perimetre tout --dry-run

Pour diagnostiquer une machine précise :

./medulla_agents_V29.py --cible PC1068 --dry-run

Pour diagnostiquer plusieurs machines :

./medulla_agents_V29.py --cible PC1068,10.0.0.12 --dry-run

Conseil : Pour un premier relevé, utilisez --perimetre tout --dry-run. Vous obtiendrez une vision globale des anomalies sans modifier les postes.

1.4. Consulter le rapport HTML

Depuis la V27, le script publie automatiquement une version chiffrée du rapport sur le site web du serveur Medulla.

En fin d'exécution, le bloc ACCÈS AU RAPPORT indique :

  • L'adresse du rapport.
  • Un identifiant temporaire.
  • Un mot de passe temporaire.

L'adresse suit généralement cette structure :

https://<serveur-medulla>/medulla-rapports/rapport.html

Ouvrez cette adresse dans un navigateur et renseignez les identifiants affichés par le script.

Les identifiants sont renouvelés à chaque publication. Seuls ceux du dernier relevé publié restent valides.

Attention : Utilisez obligatoirement HTTPS pour consulter la version publiée. Le navigateur refuse le déchiffrement lorsque la page est ouverte en HTTP.

1.5. Comprendre le rapport

La page d'ensemble permet de :

  • Visualiser le nombre de machines par état.
  • Consulter les anomalies du serveur.
  • Identifier les problèmes par famille.
  • Rechercher une machine par nom, adresse IP ou texte du problème.
  • Filtrer par famille, accès ou état Medulla.
  • Trier les machines par colonne.
  • Exporter en CSV la sélection affichée.

Un clic sur une machine ouvre sa fiche détaillée.

1.6. Comprendre les états des machines
État Signification
Injoignable La machine ne répond ni en SSH ni en XMPP.
Agent à réinstaller L'agent est absent ou l'accès SSH nécessaire est refusé. Une intervention manuelle est requise.
Action manuelle Au moins un problème ne peut pas être corrigé automatiquement.
Fonctionne, défaut non traité La machine fonctionne, mais présente un défaut non corrigé par défaut.
Réparable par le script Le script dispose d'une action corrective applicable.
Corrigé en partie Certaines corrections ont réussi, mais des anomalies subsistent.
Corrigé Les corrections de ce relevé ont abouti.
Sans défaut Aucune anomalie détectée.
1.7. Consulter la fiche d'une machine

La fiche individuelle contient quatre parties :

  1. Résumé : état de connexion, services, version de l'agent, inventaire, configuration et actions réalisées.
  2. Plan de réparation : problèmes prioritaires, commandes à copier et actions manuelles.
  3. Détail des anomalies : explication, traitement possible et commandes adaptées au poste.
  4. Contrôles complémentaires : valeurs techniques relevées pendant l'audit.

Le bouton Copier la fiche permet de récupérer le diagnostic et le plan de réparation pour les intégrer dans un ticket de support.

Pour afficher une fiche directement en console, sans lancer un nouvel audit :

./medulla_agents_V29.py --fiche PC1068

Pour plusieurs machines :

./medulla_agents_V29.py --fiche NB554,NB648
1.8. Corriger une machine

Après consultation du rapport, vous pouvez lancer les corrections proposées sur une machine :

./medulla_agents_V29.py --cible PC1068 --oui

L'option --oui sélectionne le mode audit et actions, puis confirme les actions sans poser de question.

Pour conserver les confirmations interactives :

./medulla_agents_V29.py --cible PC1068

Pour traiter également une machine ON qui fonctionne mais présente un défaut :

./medulla_agents_V29.py --cible PC1068 --oui --full

Attention : L'option --full autorise les corrections sur des machines qui fonctionnent déjà. Ne l'utilisez qu'après avoir examiné les anomalies signalées.

1.9. Vérifier la correction

Après intervention, le script relance automatiquement un audit du poste.

Si l'agent est temporairement occupé, une nouvelle tentative est effectuée après 30 secondes, avec un délai doublé.

Si la vérification est reportée, relancez ultérieurement :

./medulla_agents_V29.py --cible PC1068 --dry-run

Une vérification reportée ne signifie pas nécessairement que la correction a échoué.

1.10. Commandes les plus utiles
Commande Fonction
--dry-run Audit seul, sans correction.
--perimetre tout --dry-run Audit de toutes les machines.
--cible PC1068 Audit d'une machine avec choix interactif du mode.
--cible PC1068 --oui Audit et corrections sans confirmation interactive.
--full Inclut les machines fonctionnelles présentant un défaut.
--fiche PC1068 Affiche la dernière fiche sans nouvel audit.
--sans-inventaire --dry-run Recherche les machines ON sans UUID d'inventaire.
--sans-publication Désactive la publication web.
--publier-dernier Republie le dernier rapport avec de nouveaux identifiants.
-v Active les traces détaillées.
2. Usage complet

Cette partie décrit le fonctionnement technique, les contrôles, les actions de réparation et les outils complémentaires.

2.1. Fonctionnement SSH et XMPP

Le script choisit automatiquement le transport pour chaque machine.

Situation Transport Fonctionnement
Machine OFF SSH Connexion avec le compte pulseuser et une clé SSH.
Machine ON XMPP Utilisation d'un compte ejabberd temporaire et du plugin shellcommand.
Machine ON sans réponse XMPP SSH Repli automatique pour poursuivre le diagnostic.
Fiche OFF correspondant à un poste ON XMPP La fiche ON est privilégiée.
Planificateur de tâches refusant l'exécution XMPP SSH Nouvelle tentative par SSH.

Le compte XMPP temporaire utilise un mot de passe aléatoire qui n'est jamais affiché. Le compte est supprimé à la fin du traitement.

2.2. Déroulement d'un relevé
  1. Lecture des options, choix de la langue et contrôle des prérequis.
  2. Lecture des machines dans xmppmaster.machines.
  3. Choix du transport SSH ou XMPP.
  4. Audit des postes en lecture seule.
  5. Analyse des machines injoignables et contrôles serveur.
  6. Présentation des anomalies et du plan de réparation.
  7. Confirmation des actions lorsque le mode correction est activé.
  8. Corrections, relances et vérifications.
  9. Proposition éventuelle de reset ou de reconfiguration.
  10. Retour dans Medulla et mesure de l'état après correction.
  11. Génération des fichiers CSV, fiches et rapport HTML.
  12. Publication chiffrée du rapport, sauf désactivation.

Les étapes de correction sont ignorées en mode audit seul.

2.3. Protection des machines fonctionnelles

Une machine ON dont l'agent répond correctement en XMPP est considérée comme fonctionnelle.

Par défaut, ses anomalies sont signalées, mais aucune correction n'est appliquée.

En mode interactif, le script peut demander :

Traiter aussi ces N machine(s) qui fonctionnent ? [o/N]

L'option --full permet d'autoriser leur traitement sans cette question.

2.4. Contrôles sur les postes
Famille Contrôles effectués
Accès Ping, session ejabberd, connexion SSH ou XMPP, droits administrateur.
Système Version de Windows et compatibilité avec l'agent.
Medulla Cohérence entre les fiches OFF et ON.
Agent Python, service medullaagent, version, medullanetnotify, sshdaemon et mise à jour automatique.
Fichiers Fichiers de l'agent, agentrescue, bibliothèques, scripts et dossier de journaux.
Configuration agentconf.ini, agentconf.ini.local, kiosk.pid, collecte AD et espace disque.
Flux Connexion XMPP, ports TCP et résolution DNS.
Inventaire GLPI-Agent, version, exécutable, inventaire récent et deviceid.
Journaux Erreurs, boucles de reconfiguration, relais, mise à jour et redémarrages.
Sécurité Copies PAExec éventuellement bloquées par un EDR.
2.5. Contrôle des droits du compte pulseuser

Depuis la V29, le script vérifie si le compte pulseuser possède les droits administrateur locaux nécessaires.

Si ce compte n'est plus administrateur, les corrections et relances par SSH sont bloquées.

La fiche de réparation place ce problème en priorité.

Sur le poste Windows, avec un compte disposant des droits nécessaires, la commande PowerShell suivante permet d'ajouter pulseuser au groupe Administrateurs :

Add-LocalGroupMember -SID S-1-5-32-544 -Member pulseuser

Si le compte est retiré automatiquement, vérifiez les stratégies de groupe, notamment :

  • Groupes restreints.
  • Utilisateurs et groupes locaux.
  • Les configurations ou politiques associées à LAPS.
  • Les paramètres UAC.

Après correction des droits, relancez :

./medulla_agents_V29.py --cible PC1068 --oui
2.6. Contrôle de GLPI-Agent

Le script examine :

  • La présence de GLPI-Agent.
  • Sa version, avec un seuil de compatibilité à 1.8.
  • La présence de perl\bin\glpi-agent.exe.
  • La réponse de la commande --version.
  • L'âge du dernier inventaire.
  • La cohérence du deviceid avec le nom du poste.

Depuis la V29, la comparaison du deviceid ne tient compte que du nom court du poste, sans le domaine, afin d'éviter certains faux diagnostics de poste cloné.

Depuis la V28 : GLPI-Agent absent ou antérieur à 1.8 n'empêche plus les corrections de l'agent Medulla, la reconfiguration ou le reset d'office. Seule la demande d'inventaire est ignorée jusqu'à la mise à jour de GLPI-Agent.

Le script ne met pas GLPI-Agent à jour lui-même.

2.7. Contrôle des services

Le script vérifie notamment :

  • medullaagent : service principal.
  • medullanetnotify : service de notification.
  • sshdaemon : service SSH de l'agent.

Selon les anomalies, il peut proposer le démarrage ou la relance d'un service.

Pour une machine joignable en XMPP dont le port SSH est fermé, le script peut démarrer sshdaemon par XMPP puis tester de nouveau le port 22.

2.8. Contrôle des fichiers de l'agent

Le script compare les fichiers de l'agent avec les fichiers de référence du serveur.

Il recherche notamment :

  • Les fichiers manquants ou différents.
  • Les bibliothèques incomplètes.
  • Les erreurs ImportError.
  • Les scripts introuvables.
  • Les anomalies dans agentrescue\lib.
  • L'absence du dossier Medulla\var\log.

En mode correction, les fichiers nécessaires peuvent être copiés depuis le serveur après sauvegarde.

Le script ne rétrograde jamais un agent plus récent que celui du serveur.

2.9. Mise à jour automatique de l'agent

Le diagnostic vérifie les éléments de la mise à jour automatique :

  • Empreintes agent et img_agent.
  • Paramètre BOOL_DISABLE_IMG.
  • État [updateagent] updating.
  • Présence du descripteur de mise à jour.
  • Configuration loadautoupdate.ini sur le serveur.

Une mise à jour bloquée avec un descripteur absent peut justifier un reset d'office.

Attention : Si le relais du serveur présente l'erreur « Too many open files », il faut d'abord traiter ce problème. Le redémarrage du relais peut être effectué manuellement avec :

systemctl restart pulse-xmpp-agent-relay

Cette commande est une intervention administrateur distincte : le script ne redémarre pas automatiquement le relais du serveur.

2.10. Diagnostic réseau et DNS

Le script contrôle les communications entre les postes, le serveur et les relais.

Il recherche notamment :

  • Les problèmes de connexion au port XMPP 5222.
  • Les ports TCP inaccessibles.
  • Les échecs de résolution DNS récents.
  • Les problèmes de routage.
  • Les adresses IP potentiellement obsolètes.

Les échecs DNS sont recherchés sur les sept derniers jours, afin de limiter les alertes liées à d'anciens changements de réseau.

2.11. Enquête sur les postes injoignables

Pour une machine ne répondant ni en SSH ni en XMPP, le script recherche les causes possibles à partir des informations du serveur.

Il examine notamment :

  • La dernière présence dans uptime_machine.
  • La dernière activité ejabberd.
  • Les messages de la table logs sur 30 jours.
  • Les journaux ejabberd et des substituts Medulla.
  • Le port SSH 22.
  • La route réseau et les informations ARP.
  • La résolution DNS du poste.

Par défaut, l'enquête traite au maximum 300 postes.

Constat Cause possible
Connection refused sur le port 22 Poste allumé, mais service SSH arrêté ou absent.
DNS donnant une autre IP Adresse IP obsolète dans Medulla.
Aucune réponse ARP sur le même sous-réseau Poste éteint ou adresse IP modifiée.
No route to host Poste éteint, IP changée ou filtrage réseau.
ARP répond mais pas SSH Pare-feu du poste ou service indisponible.
Aucune réponse Poste éteint ou filtrage silencieux.
Aucune route vers le réseau Problème de routage du serveur.
Port 22 de nouveau ouvert Incident probablement temporaire.

Le résultat est enregistré dans enquete_postes_injoignables.csv et dans la fiche de chaque machine concernée.

2.12. Contrôles sur le serveur Medulla

Le script réalise également des contrôles serveur en lecture seule :

  • Erreurs « Too many open files » sur les relais.
  • Descripteurs de fichiers ouverts et limites du relais.
  • Fichiers de déploiement manquants encore suivis.
  • Erreurs d'authentification SCRAM-PLUS ejabberd.
  • Plugins absents ou non chargés.
  • UUID d'inventaire en double.
  • deviceid GLPI-Agent en double.
  • Adresses MAC partagées ou blacklistées.
  • Entrées orphelines de la table network.
  • Machines ON sans inventaire.
  • Reconfigurations et resets en attente.
  • Reconnexions en boucle.
  • Enregistrements incomplets.
  • Disponibilité des substituts Medulla.
  • URL d'envoi des inventaires et paramètres de génération.
2.13. Actions correctives disponibles
Action Fonctionnement Transport
Correction Arrêt contrôlé, sauvegarde, correction, redémarrage et vérification. SSH ou XMPP
Alignement agentxmpp.py Copie depuis le serveur si la version du poste n'est pas plus récente. SSH ou XMPP
Relance du service Arrêt et redémarrage contrôlés. SSH ou XMPP
Démarrage SSH Démarrage de sshdaemon et nouveau test du port 22. XMPP
Demande d'inventaire Déclenchement de l'inventaire et contrôle du rattachement. XMPP
Reset ciblé Inscription d'une demande dans reset_machine. Base Medulla
Reset d'office Demande de réinitialisation des fichiers de l'agent pour les machines concernées. Base Medulla
Reconfiguration Inscription de need_reconf = 1. Base Medulla

Les opérations de reset et de reconfiguration disposent de confirmations distinctes.

2.14. Reset ciblé et reset d'office

Le reset ciblé est une opération de dernier recours sur une machine désignée qui reste OFF après une intervention SSH.

Le reset d'office peut être proposé pour plusieurs machines présentant certains défauts :

  • Reconnexions en boucle.
  • Machine ON sans inventaire.
  • Mise à jour bloquée par l'absence de descripteur.
  • Modules ou scripts de l'agent manquants.
  • Redémarrages de l'agent en boucle.

Le serveur retélécharge les fichiers de l'agent lorsque celui-ci est connecté, ou lors de son prochain retour.

Attention : Un reset d'office peut concerner plusieurs machines. Examinez la liste proposée avant confirmation.

2.15. Reconfiguration

La reconfiguration utilise le champ need_reconf = 1 dans la base Medulla.

Pour proposer la reconfiguration d'une machine :

./medulla_agents_V29.py --cible PC1068 --reconfigurer

Elle peut être proposée lorsqu'un motif est détecté, ou demandée explicitement avec l'option --reconfigurer.

Une machine OFF ne peut pas exécuter immédiatement la demande. Celle-ci attend son retour en ligne.

2.16. Règles de sécurité
  • L'audit n'effectue aucune modification sur les postes ou dans la base Medulla.
  • Les actions nécessitent une confirmation, ou l'option --oui.
  • Les machines fonctionnelles sont protégées par défaut.
  • Une machine ON n'est traitée en SSH qu'en situation de repli.
  • L'identité du poste est revérifiée avant chaque action.
  • Le service est arrêté avant les modifications qui le nécessitent.
  • Les fichiers modifiés sont sauvegardés.
  • Aucun fichier n'est supprimé.
  • L'agent n'est jamais rétrogradé.
  • Les corrections ne sont jamais rejouées automatiquement.
  • Le script ne réinstalle pas l'agent et ne met pas GLPI-Agent à jour.
  • agentconf.ini n'est jamais exporté ni affiché.
  • Les mots de passe sont masqués.
  • Le compte XMPP temporaire est supprimé à la fin.
  • Les actions administrateur sur le serveur sont recommandées mais non exécutées automatiquement.

Si une connexion SSH disparaît juste avant une correction, le script réessaie après cinq secondes. Si elle reste indisponible, l'action est annulée avec le diagnostic ANNULE_SSH_PERDU.

2.17. Publication chiffrée du rapport

Le rapport web est publié par défaut dans :

/var/www/html/medulla-rapports/rapport.html

La racine réelle est déterminée à partir de la configuration du site Apache, sauf personnalisation.

Le contenu est compressé, puis chiffré avec AES-256 et protégé par HMAC. La clé est dérivée de l'identifiant et du mot de passe.

Le script ne modifie pas la configuration Apache.

La nouvelle publication remplace la précédente.

Pour désactiver cette publication :

./medulla_agents_V29.py --perimetre tout --dry-run --sans-publication

Pour republier le dernier relevé avec de nouveaux identifiants :

./medulla_agents_V29.py --publier-dernier

Les rapports CSV, les fiches JSON et la version non chiffrée restent dans le dossier local du relevé.

Confidentialité : Le rapport contient des informations techniques sur le parc. Conservez les identifiants d'accès dans un canal approprié et évitez de diffuser la version HTML non chiffrée.

2.18. Fichiers produits

Par défaut, les relevés sont enregistrés dans un sous-dossier daté de :

/root/analyse/releve_<date>/
Fichier Contenu
rapport.html Rapport HTML autonome non chiffré, avec fiches et filtres.
fiches.json Fiches individuelles utilisées par --fiche.
resultats.csv Résultats d'audit, actions et diagnostics.
statistiques.csv Compteurs du relevé et bilan avant/après.
plan_de_remediation.csv Problèmes et actions recommandées.
avant_apres_reparation.csv Évolution de l'état des machines.
enquete_postes_injoignables.csv Diagnostic des postes injoignables.
reconnexions_en_boucle.csv Machines présentant des reconnexions répétées.
uuid_inventaire_en_double.csv UUID d'inventaire partagés entre plusieurs fiches.
mac_partagees.csv Adresses MAC partagées.
mac_blacklistees_a_reconfigurer.csv Machines concernées par une MAC blacklistée.
reconfiguration_mac.csv Résultats des reconfigurations liées aux MAC.
reset_d_office.csv Résultats des resets d'office.
fiches_off_obsoletes.csv Fiches OFF correspondant à des machines ON.
glpi_agent_sans_full.csv Machines avec GLPI-Agent antérieur à 1.8.
journaux/<poste>.log Journal des actions d'une machine.
trace.log Traces détaillées avec -v.

Les CSV sont générés avec le séparateur point-virgule et l'encodage UTF-8 avec BOM, dans la langue sélectionnée.

2.19. Options avancées
Option Fonction Valeur par défaut
--perimetre off|on|tout Choix du périmètre. off
--limite N Nombre maximal de postes corrigés et de services relancés. Sans limite
--ssh-seul Désactive le transport XMPP. Non
--xmpp-seul Désactive SSH et ping. Non
--relancer-tout Relance aussi les services déjà démarrés, avec --full. Non
--attente-inventaire S Attente maximale du rattachement d'inventaire. 300 s
--attente S Attente avant le contrôle de Medulla après correction. 120 s
--serveur-pulse ADRESSE Adresse serveur testée depuis les postes. Adresse utilisée pour joindre le poste
--timeout-ssh S Délai de connexion SSH. 15 s
--timeout-audit S Durée maximale d'audit d'un poste. 45 s
--timeout-copie S Durée maximale de copie. 0, sans limite
--inactivite-copie S Abandon d'une copie inactive. 120 s
--essais N Nouvelles tentatives de connexion et d'audit. 1
-l fr|en|es|de Langue de l'interface et des CSV. Menu ou langue système
--installer Installe les paquets manquants sans confirmation. Non
-v, --verbose Active les traces détaillées. Non

Le dossier des relevés est par défaut /root/analyse. Le nombre d'audits simultanés est par défaut de 50, avec une plage de 1 à 256.

L'option --publier reste acceptée pour compatibilité, mais n'a plus d'effet puisque la publication est activée par défaut.

2.20. Outil complémentaire : extraction des journaux

Le script medulla_extract_logs.py permet de collecter et d'analyser les journaux des postes et du serveur.

Il s'exécute sur le serveur Medulla avec les droits root et effectue uniquement des lectures sur les postes.

Pour analyser les machines en anomalie du dernier relevé :

./medulla_extract_logs.py --depuis-releve /root/analyse

Pour analyser des machines précises :

./medulla_extract_logs.py --cible NB554,NB648

Pour collecter uniquement les erreurs des machines ON :

./medulla_extract_logs.py --perimetre on --erreurs-seules

Pour collecter les journaux serveur uniquement :

./medulla_extract_logs.py --sans-postes

L'outil masque les secrets et regroupe les erreurs par signature.

Il produit une archive de synthèse :

A_ENVOYER_<date>.tar.gz

Cette archive est destinée à être transmise au support sans les journaux bruts.

2.21. Outil complémentaire : délai de reconfiguration

Le script medulla_reconf_delai.py analyse la configuration du substitut master_reconf et les demandes en attente.

Il calcule :

  • Le délai normal de reconfiguration.
  • Le délai maximal.
  • Une valeur conseillée pour RECONF_ATTENTE.

L'option --appliquer permet de modifier cette valeur dans le script principal, après création d'une sauvegarde .bak.

2.22. Personnalisation des contrôles

Le script est organisé en trois parties :

  1. En-tête contenant les variables configurables.
  2. Fonctions et tests extensibles.
  3. Workflow principal.

Pour ajouter un test sur les postes, complétez TESTS_POSTE.

Pour ajouter un contrôle serveur, complétez TESTS_SERVEUR.

Pour ajouter une résolution, complétez les structures RESOLUTIONS et EXPLICATIONS.

Les paramètres personnalisables comprennent notamment :

  • Le nombre maximal de machines injoignables à analyser.
  • Les seuils de redémarrage et de reconnexion.
  • Les délais de reconfiguration.
  • L'âge maximal de l'inventaire.
  • L'espace disque minimal.
  • Les ports TCP à tester.
  • Les adresses MAC partagées connues.
  • Les produits EDR reconnus.
  • Le répertoire de publication des rapports.
3. Questions fréquentes
3.1. Un audit peut-il modifier les machines ?

Non. L'option --dry-run n'effectue aucune correction sur les postes et aucune modification en base.

En revanche, le rapport chiffré est publié par défaut sur le serveur web. Pour éviter cette publication, ajoutez --sans-publication.

3.2. Comment consulter une seule machine ?
./medulla_agents_V29.py --fiche PC1068

Cette commande lit la fiche du dernier relevé sans relancer l'audit.

3.3. Pourquoi une machine fonctionnelle n'est-elle pas corrigée ?

Par sécurité, les machines ON qui répondent correctement en XMPP ne sont pas modifiées par défaut.

Pour autoriser leur traitement, utilisez --full ou confirmez la question correspondante en mode interactif.

3.4. Pourquoi une machine joignable en SSH n'est-elle pas corrigée ?

Vérifiez les droits du compte pulseuser.

S'il n'est plus administrateur local, le script ne lance aucune correction ni relance par SSH.

Après rétablissement des droits, relancez le diagnostic et les actions.

3.5. Que signifie ANNULE_SSH_PERDU ?

Le poste était joignable pendant l'audit, mais la connexion SSH a disparu avant la correction.

Le script a annulé l'intervention. Aucun changement n'a été effectué par cette action.

3.6. Que signifie ECHEC_DROITS_ADMIN ?

Le compte pulseuser ne dispose pas des droits administrateur locaux nécessaires.

Vérifiez les groupes locaux, les GPO et les politiques d'administration du poste.

3.7. GLPI-Agent absent empêche-t-il les corrections ?

Non, depuis la V28. Les corrections Medulla, les reconfigurations et les resets d'office restent possibles.

Seule la demande d'inventaire est ignorée jusqu'à ce que GLPI-Agent soit utilisable et compatible.

3.8. Que signifie « Vérification reportée » ?

Le poste n'a pas répondu au contrôle après correction, même après une seconde tentative.

Relancez ultérieurement :

./medulla_agents_V29.py --cible PC1068 --dry-run
3.9. Que signifie « Mise à jour automatique bloquée » ?

L'agent reçoit les fichiers de mise à jour, mais ne dispose pas du descripteur nécessaire à leur installation.

Le script peut proposer un reset d'office. Vérifiez d'abord que le relais ne présente pas d'erreur « Too many open files ».

3.10. Que faire lorsqu'un poste ne résout pas le serveur ?

Vérifiez la résolution DNS depuis le poste :

nslookup <nom-du-serveur>

Sur un ordinateur portable hors du réseau de l'organisation, l'absence de VPN peut expliquer le problème.

La fiche de diagnostic peut proposer une ligne hosts adaptée en dernier recours.

3.11. Le script réinstalle-t-il un agent absent ?

Non. Il peut identifier qu'une réinstallation est nécessaire et fournir les méthodes correspondantes :

  • Installation depuis le serveur via SSH et une tâche SYSTEM.
  • Installation silencieuse sur le poste.
  • Déploiement par GPO pour plusieurs machines.
3.12. Comment vérifier la version V29 ?

Calculez l'empreinte du fichier :

sha256sum medulla_agents_V29.py | cut -c1-16

Pour la version V29 documentée dans ce mémo, le préfixe attendu est :

3f785ba0d4caefa1

Remarque : Cette empreinte correspond au fichier V29 de référence. Une nouvelle publication ou une modification du script peut produire une empreinte différente.

4. Bonnes pratiques
  • Lancer le script dans screen.
  • Commencer par un audit global en lecture seule.
  • Consulter les fiches et le plan de réparation avant toute intervention.
  • Tester les corrections sur une machine avant de traiter un groupe.
  • Utiliser --limite pour encadrer les corrections sur un parc important.
  • Ne pas utiliser --full sans avoir examiné les défauts des machines fonctionnelles.
  • Vérifier les droits pulseuser avant une correction SSH.
  • Traiter les problèmes de relais avant les resets d'office.
  • Conserver les rapports avant et après intervention.
  • Protéger l'accès aux rapports et ne pas diffuser les fichiers non chiffrés.
5. Résumé

medulla_agents_V29.py permet de réaliser un diagnostic du parc Windows géré par Medulla, de comprendre les anomalies et d'appliquer les corrections autorisées.

Pour un premier diagnostic :

screen -S medulla
cd /root
./medulla_agents_V29.py --perimetre tout --dry-run

Pour corriger une machine après examen de son rapport :

./medulla_agents_V29.py --cible PC1068 --oui

Pour consulter sa dernière fiche :

./medulla_agents_V29.py --fiche PC1068

Pour republier le dernier rapport :

./medulla_agents_V29.py --publier-dernier

Le rapport HTML fournit une vision globale du parc, tandis que les fiches individuelles présentent les diagnostics et les plans de réparation adaptés à chaque machine.