life-noc/docs/archive/architecture.md

93 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# STATUT : ARCHIVÉ
Ce document nest plus une référence active. Version courte remplacée par `docs/architecture/architecture-life-noc.md`.
Ne pas lutiliser 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.