85 lines
2 KiB
Markdown
85 lines
2 KiB
Markdown
# Architecture
|
|
|
|
## Vue d'ensemble
|
|
|
|
Le dépôt repose sur une architecture déclarative simple :
|
|
|
|
```text
|
|
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 :
|
|
|
|
- `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 ;
|
|
- déploiement reproductible ;
|
|
- remplacement futur progressif des mocks.
|