93 lines
2.2 KiB
Markdown
93 lines
2.2 KiB
Markdown
# STATUT : ARCHIVÉ
|
||
|
||
Ce document n’est plus une référence active. Version courte remplacée par `docs/architecture/architecture-life-noc.md`.
|
||
|
||
Ne pas l’utiliser comme source canonique.
|
||
|
||
---
|
||
|
||
# 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.
|