# 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.