135 lines
3.1 KiB
Markdown
135 lines
3.1 KiB
Markdown
# Life-NOC
|
|
|
|
Life-NOC applique la logique d'un centre d'opérations (NOC) à la vie quotidienne.
|
|
|
|
Le but du projet est de transformer la charge mentale invisible en état observable, afin de savoir rapidement ce qui est sous contrôle, ce qui approche d'une échéance et ce qui mérite de l'attention.
|
|
|
|
## État actuel du dépôt
|
|
|
|
Cette version est une **POC fonctionnelle mock-first**.
|
|
|
|
Cela signifie que :
|
|
|
|
- la structure métier est réelle ;
|
|
- les domaines et éléments de vie sont décrits dans `domains.yaml` ;
|
|
- les services Icinga sont générés automatiquement ;
|
|
- le BPM est généré automatiquement ;
|
|
- les sondes sont **mockées** par défaut et retournent **OK** tant qu'aucun état simulé n'est forcé.
|
|
|
|
Autrement dit, la POC valide :
|
|
|
|
- le modèle déclaratif ;
|
|
- la génération des artefacts ;
|
|
- le déploiement automatisé par Ansible ;
|
|
- la visualisation Icinga/BPM ;
|
|
- le remplacement futur des mocks par de vraies sondes.
|
|
|
|
## Structure du dépôt
|
|
|
|
```text
|
|
life-noc/
|
|
├── ansible/
|
|
│ ├── deploy_life_noc.yml
|
|
│ └── roles/life_noc/
|
|
├── bpm/
|
|
├── checks/
|
|
├── docs/
|
|
├── icinga/
|
|
│ ├── commands/
|
|
│ ├── hosts/
|
|
│ ├── services/
|
|
│ └── templates/
|
|
├── scripts/
|
|
└── domains.yaml
|
|
```
|
|
|
|
## Source of truth
|
|
|
|
Le fichier central est :
|
|
|
|
- `domains.yaml`
|
|
|
|
Chaque entrée décrit un élément Life-NOC avec :
|
|
|
|
- `name` : identifiant lisible
|
|
- `date` : métadonnée d'échéance ou de repère
|
|
- `notes` : contexte humain
|
|
- `mock_state` : état simulé (`OK`, `WARNING`, `CRITICAL`) — optionnel
|
|
- `mock_message` : message simulé — optionnel
|
|
|
|
Par défaut :
|
|
|
|
- `mock_state = OK`
|
|
- `mock_message = Sous contrôle`
|
|
|
|
## Génération
|
|
|
|
### Générer les services Icinga
|
|
|
|
```bash
|
|
python3 scripts/generate_services.py
|
|
```
|
|
|
|
### Générer le BPM
|
|
|
|
```bash
|
|
python3 scripts/generate_bpm.py
|
|
```
|
|
|
|
|
|
## Makefile
|
|
|
|
Le dépôt fournit un `Makefile` pour les gestes courants.
|
|
|
|
Exemples :
|
|
|
|
```bash
|
|
make generate
|
|
make validate
|
|
make check
|
|
make deploy
|
|
make deploy-with-bpm
|
|
make package
|
|
```
|
|
|
|
```bash
|
|
make help
|
|
```
|
|
|
|
affiche la liste complète des cibles disponibles.
|
|
|
|
## Déploiement Ansible
|
|
|
|
Le déploiement repose sur le rôle `life_noc`.
|
|
|
|
Exemple :
|
|
|
|
```bash
|
|
cd ansible
|
|
ansible-playbook -i inventory deploy_life_noc.yml
|
|
```
|
|
|
|
Variables importantes :
|
|
|
|
- `life_noc_project_root` : chemin de déploiement du projet sur l'hôte cible
|
|
- `life_noc_icinga_conf_root` : racine de configuration Icinga pour Life-NOC
|
|
- `life_noc_plugin_dir` : répertoire des plugins Icinga
|
|
- `life_noc_validate_icinga` : valide la configuration avant reload
|
|
- `life_noc_reload_icinga` : recharge Icinga après déploiement
|
|
- `life_noc_bpm_deploy_enabled` : active le déploiement BPM vers le module Icinga Web 2
|
|
- `life_noc_bpm_target_file` : destination du fichier BPM généré
|
|
|
|
## Philosophie de cette POC
|
|
|
|
Cette POC ne prétend pas encore mesurer le réel.
|
|
|
|
Elle sert à construire proprement :
|
|
|
|
- l'ossature du système ;
|
|
- la hiérarchie des domaines ;
|
|
- les conventions de nommage ;
|
|
- la chaîne de génération ;
|
|
- le déploiement ;
|
|
- l'intégration visuelle Icinga/BPM.
|
|
|
|
Les vraies sondes viendront plus tard, en remplacement progressif des mocks.
|