Tâche #35399
Scénario #35390: Seth 2.8.1 : pas de données de surveillance - zephiragents en erreur
Ne pas exécuter la commande dbcheck ni en vérifier le résultat sur un serveur membre
100%
Description
ad_server_role=membre
(ou test "équivalent") :
- le script
/usr/share/eole/sbin/run_samba_tool_dbcheck
ne doit pas être exécuté (ou ne doit rien faire) - la fonction "test_database()" ne devait pas être appelée dans
/usr/share/eole/diagnose/151-AD
- l'agent "dbcheck" ne devrait pas être chargé (
/usr/share/zephir/monitor/configs/dbcheck.agent
)
Révisions associées
Tester la base de données Samba sur le contrôleur de domaine uniquement.
Ref #35399
Exécuter samba-tool dbcheck sur un contrôleur de domaine uniquement.
Ref #35399
Exposer le role de contrôleur de domaine pour les agents Zéphir.
Ref #35399
Conditionner l’activation de l’agent dbcheck
Modification liée à l’ajout d’une variable dans zstats.cfg
exposant le rôle de contrôleur de domaine.
Ref #35399
Conditionner l’activation de l’agent dbcheck au rôle du serveur.
Ref #35399
Réactivation de l'agent sur ScribeAD
Ref #35399
Historique
#1 Mis à jour par Benjamin Bohard il y a 5 mois
Pour le script run_samba_tool_dbcheck, les informations nécessaires à la prise de décision de l’exécution ou non sont chargées au début. Le plus simple semble de faire une condition sur la valeur de la variable AD_SERVER_ROLE.
Dans le diagnose, le test sur la valeur de AD_SERVER_ROLE est déjà utilisé pour limiter le test d’autres fonctionnalités. Le plus cohérent est de faire la même chose pour la base de données.
Pour les agents zéphir, il ne semble pas prévu de désactiver des agents installés, le chargement ne filtrant pas le contenu du répertoire configs.
list_agents = glob(os.path.join(self.config['config_dir'], "*.agent"))
On peut éviter le chargement de l’agent en le déplaçant/renommant (problème debsum ?) ou en filtrant dans zephirservice.py en s’appuyant sur une liste d’exclusion (plus simple à gérer localement qu’une liste d’inclusion)
#2 Mis à jour par Benjamin Bohard il y a 5 mois
- Statut changé de Nouveau à En cours
- Assigné à mis à Benjamin Bohard
#3 Mis à jour par Benjamin Bohard il y a 5 mois
Proposition pour l’agent zéphir :
- création optionnelle d’un fichier /etc/eole/z_stats.d/exclude avec la liste des agents à exclure sur un serveur
- lecture du fichier si il existe et consolidation de la liste des agents à charger dans la fonction load_agents dans zephirservices.py :
if Path('/etc/eole/z_stats.d/exclude').exists(): with open(Path('/etc/eole/z_stats.d/exclude'), 'r') as excluded_agents_fh: excluded_agents.extend([ea.strip() for ea in excluded_agents_fh.read().strip().split('\n')]) list_agents = [agent for agent in glob(os.path.join(self.config['config_dir'], "*.agent")) if Path(agent).stem not in excluded_agents]
#4 Mis à jour par Benjamin Bohard il y a 5 mois
Certains agents gèrent leur activation directement dans le fichier .agent en retournant une liste vide si une condition n’est pas remplie.
On peut ajouter une variable dans zstats.cfg se basant sur la variable creole ad_server_role.
#5 Mis à jour par Benjamin Bohard il y a 5 mois
- Statut changé de En cours à À valider
#6 Mis à jour par Philippe Carre il y a 4 mois
- Statut changé de À valider à Résolu
#7 Mis à jour par Joël Cuissinat il y a 3 mois
- Statut changé de Résolu à Fermé
- % réalisé changé de 0 à 100
- Restant à faire (heures) mis à 0.0
Rédaction d'un test squash pour Scribe et AmonEcole : https://dev-eole.ac-dijon.fr/squash/test-cases/9526/info
Passant sur ces deux modules.