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 :
-`name`
-`date`
-`notes`
-`notes_url`
-`action_url`
-`mock_state`
-`mock_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 0
-`WARNING` -> code 1
-`CRITICAL` -> 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 ;