2026-03-13 16:13:37 -04:00
# Life-NOC
2026-03-06 13:35:44 -05:00
2026-03-13 16:13:37 -04:00
Life-NOC applique la logique d'un centre d'opérations (NOC) à la vie quotidienne.
2026-03-06 13:35:44 -05:00
2026-03-13 16:13:37 -04:00
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.
2026-03-06 13:35:44 -05:00
2026-03-13 16:57:50 -04:00
## Cible de ce dépôt
2026-03-06 13:35:44 -05:00
2026-03-13 16:57:50 -04:00
Cette version vise désormais explicitement le scénario suivant :
2026-03-13 16:13:37 -04:00
2026-03-13 16:57:50 -04:00
> **Debian 12 vanille + utilisateur `ansible` + clé SSH = plateforme Life-NOC complète**
2026-03-13 16:13:37 -04:00
2026-03-13 16:57:50 -04:00
Le dépôt automatise :
- l'ajout du dépôt officiel Icinga
- l'installation de MariaDB
- l'installation d'Icinga 2
- l'installation et la configuration d'IDO MySQL
- l'installation d'Apache et d'Icinga Web 2
- l'installation du module Business Process
- le déploiement de Life-NOC
- la génération des services Icinga et de l'artefact BPM
## État fonctionnel
La modélisation métier reste **mock-first** :
- les domaines et éléments de vie sont décrits dans `domains.yaml`
- les services Icinga sont générés automatiquement
- les sondes sont **mockées** par défaut
- l'état par défaut est **OK**
2026-03-13 16:13:37 -04:00
Autrement dit, la POC valide :
2026-03-13 16:57:50 -04:00
- le modèle déclaratif
- la génération des artefacts
- le bootstrap complet de la plateforme
- le déploiement automatisé par Ansible
- l'affichage Icinga Web 2
- l'évolution future vers de vraies sondes
2026-03-13 16:13:37 -04:00
## Structure du dépôt
```text
life-noc/
├── ansible/
2026-03-13 16:57:50 -04:00
│ ├── group_vars/
│ ├── inventory.example
│ ├── roles/
│ │ ├── base/
│ │ ├── mariadb/
│ │ ├── icinga2/
│ │ ├── icingaweb2/
│ │ ├── businessprocess/
│ │ └── life_noc/
2026-03-13 16:13:37 -04:00
│ ├── deploy_life_noc.yml
2026-03-13 16:57:50 -04:00
│ └── site.yml
2026-03-13 16:13:37 -04:00
├── bpm/
├── checks/
├── docs/
├── icinga/
│ ├── commands/
│ ├── hosts/
│ ├── services/
│ └── templates/
├── scripts/
2026-03-13 16:57:50 -04:00
├── domains.yaml
├── Makefile
└── ansible.cfg
2026-03-13 16:13:37 -04:00
```
## 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`
2026-03-13 16:57:50 -04:00
## Déploiement from scratch
Depuis la machine de contrôle Debian 12 :
```bash
cp ansible/inventory.example ansible/inventory
cp ansible/group_vars/all.yml.example ansible/group_vars/all.yml
```
Modifier ensuite :
- l'hôte cible dans `ansible/inventory`
- les mots de passe dans `ansible/group_vars/all.yml`
Puis lancer :
```bash
make bootstrap
```
ou :
```bash
ansible-playbook -i ansible/inventory ansible/site.yml
```
## Génération locale
2026-03-13 16:13:37 -04:00
### Générer les services Icinga
```bash
python3 scripts/generate_services.py
```
2026-03-13 16:57:50 -04:00
### Générer l'artefact BPM
2026-03-13 16:13:37 -04:00
```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
2026-03-13 16:57:50 -04:00
make bootstrap
2026-03-13 16:13:37 -04:00
make deploy-with-bpm
make package
```
2026-03-13 16:57:50 -04:00
Pour la liste complète :
2026-03-13 16:13:37 -04:00
```bash
make help
```
2026-03-13 16:57:50 -04:00
## Accès web attendus
2026-03-13 16:13:37 -04:00
2026-03-13 16:57:50 -04:00
Une fois le playbook terminé, les chemins utiles sont typiquement :
2026-03-13 16:13:37 -04:00
2026-03-13 16:57:50 -04:00
```text
/icingaweb2
/icingaweb2/monitoring/host/show?host=life-noc
/icingaweb2/monitoring/list/services?host_name=life-noc
2026-03-13 16:13:37 -04:00
```
2026-03-13 16:57:50 -04:00
## Documentation complémentaire
2026-03-13 16:13:37 -04:00
2026-03-13 16:57:50 -04:00
- `docs/concept.md`
- `docs/architecture.md`
- `docs/deploiement-from-scratch.md`
2026-03-13 16:13:37 -04:00
## Philosophie de cette POC
Cette POC ne prétend pas encore mesurer le réel.
Elle sert à construire proprement :
2026-03-13 16:57:50 -04:00
- l'ossature du système
- la hiérarchie des domaines
- les conventions de nommage
- la chaîne de génération
- le bootstrap serveur
- le déploiement
- l'intégration Icinga Web 2
2026-03-13 16:13:37 -04:00
Les vraies sondes viendront plus tard, en remplacement progressif des mocks.