182 lines
3.9 KiB
Markdown
182 lines
3.9 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.
|
|
|
|
## Cible de ce dépôt
|
|
|
|
Cette version vise désormais explicitement le scénario suivant :
|
|
|
|
> **Debian 12 vanille + utilisateur `ansible` + clé SSH = plateforme Life-NOC complète**
|
|
|
|
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**
|
|
|
|
Autrement dit, la POC valide :
|
|
|
|
- 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
|
|
|
|
## Structure du dépôt
|
|
|
|
```text
|
|
life-noc/
|
|
├── ansible/
|
|
│ ├── group_vars/
|
|
│ ├── inventory.example
|
|
│ ├── roles/
|
|
│ │ ├── base/
|
|
│ │ ├── mariadb/
|
|
│ │ ├── icinga2/
|
|
│ │ ├── icingaweb2/
|
|
│ │ ├── businessprocess/
|
|
│ │ └── life_noc/
|
|
│ ├── deploy_life_noc.yml
|
|
│ └── site.yml
|
|
├── bpm/
|
|
├── checks/
|
|
├── docs/
|
|
├── icinga/
|
|
│ ├── commands/
|
|
│ ├── hosts/
|
|
│ ├── services/
|
|
│ └── templates/
|
|
├── scripts/
|
|
├── domains.yaml
|
|
├── Makefile
|
|
└── ansible.cfg
|
|
```
|
|
|
|
## 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`
|
|
|
|
## 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
|
|
|
|
### Générer les services Icinga
|
|
|
|
```bash
|
|
python3 scripts/generate_services.py
|
|
```
|
|
|
|
### Générer l'artefact 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 bootstrap
|
|
make deploy-with-bpm
|
|
make package
|
|
```
|
|
|
|
Pour la liste complète :
|
|
|
|
```bash
|
|
make help
|
|
```
|
|
|
|
## Accès web attendus
|
|
|
|
Une fois le playbook terminé, les chemins utiles sont typiquement :
|
|
|
|
```text
|
|
/icingaweb2
|
|
/icingaweb2/monitoring/host/show?host=life-noc
|
|
/icingaweb2/monitoring/list/services?host_name=life-noc
|
|
```
|
|
|
|
## Documentation complémentaire
|
|
|
|
- `docs/concept.md`
|
|
- `docs/architecture.md`
|
|
- `docs/deploiement-from-scratch.md`
|
|
|
|
## 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 bootstrap serveur
|
|
- le déploiement
|
|
- l'intégration Icinga Web 2
|
|
|
|
Les vraies sondes viendront plus tard, en remplacement progressif des mocks.
|