2 KiB
2 KiB
Architecture
Vue d'ensemble
Le dépôt repose sur une architecture déclarative simple :
domains.yaml
├── scripts/generate_services.py -> icinga/services/*.conf
└── scripts/generate_bpm.py -> bpm/life-noc.json
Le déploiement Ansible transfère le projet sur l'hôte Icinga, régénère les artefacts, installe le plugin mock, valide la configuration puis recharge Icinga.
Composants
1. domains.yaml
Source de vérité métier.
Chaque domaine contient une liste d'éléments. Chaque élément peut inclure :
namedatenotesnotes_urlaction_urlmock_statemock_message
2. scripts/generate_services.py
Produit un fichier .conf par domaine pour Icinga.
Les services générés :
- importent le template
service_echeance; - conservent les métadonnées utiles ;
- définissent un comportement mock par défaut.
3. checks/check_life_noc_mock.sh
Plugin de sonde mockée.
Il accepte un état simulé et un message simulé.
Mappage :
OK-> code 0WARNING-> code 1CRITICAL-> code 2- autre valeur ->
UNKNOWN
4. icinga/templates/service_echeance.conf
Template de service par défaut pour les éléments Life-NOC.
Il référence le check mock et fournit des valeurs par défaut cohérentes.
5. scripts/generate_bpm.py
Construit le BPM à partir du même modèle YAML afin de conserver la cohérence de la hiérarchie.
6. ansible/roles/life_noc
Rôle de déploiement automatisé.
Responsabilités :
- copier le projet ;
- installer les dépendances Python minimales ;
- générer les services Icinga ;
- générer le BPM ;
- déployer la configuration Icinga ;
- installer le plugin mock ;
- valider Icinga ;
- recharger Icinga.
Principes de conception
- une seule source de vérité ;
- génération automatique plutôt que duplication ;
- mocks explicites plutôt que fausse logique réelle ;
- déploiement reproductible ;
- remplacement futur progressif des mocks.