ménage
This commit is contained in:
parent
3247d98fb3
commit
7b13d6382f
13 changed files with 0 additions and 4523 deletions
|
|
@ -1,768 +0,0 @@
|
|||
domains:
|
||||
|
||||
revue:
|
||||
- name: revue-quotidienne-life-noc
|
||||
date: "2026-03-13"
|
||||
notes: Vérifier le tableau de bord Life-NOC
|
||||
probe:
|
||||
type: elapsed_time
|
||||
source:
|
||||
type: manual_date
|
||||
inputs_file: "/opt/life-noc/data/inputs/revue.yaml"
|
||||
item_key: "revue-quotidienne-life-noc"
|
||||
metric:
|
||||
unit: days
|
||||
thresholds:
|
||||
unknown_lt: 1
|
||||
ok_gte: 1
|
||||
warning_gte: 2
|
||||
critical_gte: 3
|
||||
policy:
|
||||
on_error: critical
|
||||
|
||||
- name: revue-hebdomadaire-priorites
|
||||
date: "2026-03-10"
|
||||
notes: Revoir les priorités de la semaine
|
||||
probe:
|
||||
type: elapsed_time
|
||||
source:
|
||||
type: manual_date
|
||||
inputs_file: "/opt/life-noc/data/inputs/revue.yaml"
|
||||
item_key: "revue-hebdomadaire-priorites"
|
||||
metric:
|
||||
unit: days
|
||||
thresholds:
|
||||
unknown_lt: 5
|
||||
ok_gte: 5
|
||||
warning_gte: 7
|
||||
critical_gte: 10
|
||||
policy:
|
||||
on_error: critical
|
||||
|
||||
- name: revue-mensuelle-systeme-vie
|
||||
date: 2026-04-01
|
||||
notes: Revue mensuelle de l'ensemble du système Life-NOC
|
||||
|
||||
- name: revue-trimestrielle-orientation
|
||||
date: 2026-06-30
|
||||
notes: Revue trimestrielle des orientations de vie et de Chezlepro
|
||||
|
||||
focus:
|
||||
- name: entretien-processus-focus
|
||||
date: 2026-03-09
|
||||
notes: Vérifier que les cartouches FOCUS sont à jour
|
||||
|
||||
- name: nettoyage-inbox-mentale
|
||||
date: 2026-03-09
|
||||
notes: Vider et clarifier les éléments capturés hors système
|
||||
|
||||
- name: revue-limitation-engagements
|
||||
date: 2026-03-31
|
||||
notes: Vérifier que les engagements actifs demeurent réalistes
|
||||
|
||||
finances-personnelles:
|
||||
- name: revision-comptes-bancaires
|
||||
date: 2026-04-01
|
||||
notes: Révision mensuelle des comptes bancaires personnels
|
||||
|
||||
- name: verification-cartes-credit
|
||||
date: 2026-04-01
|
||||
notes: Vérification des soldes et transactions des cartes de crédit
|
||||
|
||||
- name: paiement-cartes-credit
|
||||
date: 2026-04-15
|
||||
notes: Paiement des cartes de crédit personnelles
|
||||
|
||||
- name: revision-budget-personnel
|
||||
date: 2026-04-05
|
||||
notes: Révision mensuelle du budget personnel
|
||||
|
||||
- name: verification-prelevements-automatiques
|
||||
date: 2026-04-03
|
||||
notes: Vérification des prélèvements automatiques personnels
|
||||
|
||||
- name: verification-placements
|
||||
date: 2026-06-30
|
||||
notes: Vérification périodique des placements et comptes enregistrés
|
||||
|
||||
- name: verification-cotisations-reer
|
||||
date: 2026-02-28
|
||||
notes: Vérification des cotisations REER
|
||||
|
||||
- name: verification-celi
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'espace CELI et de son utilisation
|
||||
|
||||
- name: preparation-dossier-financier-annuel
|
||||
date: 2026-01-31
|
||||
notes: Préparer le dossier financier annuel personnel
|
||||
|
||||
fiscalite-personnelle:
|
||||
- name: preparation-documents-impots
|
||||
date: 2026-03-15
|
||||
notes: Rassembler tous les documents fiscaux personnels
|
||||
|
||||
- name: production-impots-federal
|
||||
date: 2026-04-30
|
||||
notes: Produire la déclaration de revenus fédérale
|
||||
|
||||
- name: production-impots-quebec
|
||||
date: 2026-04-30
|
||||
notes: Produire la déclaration de revenus Québec
|
||||
|
||||
- name: paiement-solde-impots
|
||||
date: 2026-04-30
|
||||
notes: Payer tout solde d'impôt exigible
|
||||
|
||||
- name: verification-avis-cotisation
|
||||
date: 2026-05-31
|
||||
notes: Vérifier les avis de cotisation ARC et Revenu Québec
|
||||
|
||||
- name: archivage-documents-fiscaux
|
||||
date: 2026-06-15
|
||||
notes: Archiver les documents fiscaux personnels
|
||||
|
||||
- name: verification-acomptes-provisionnels
|
||||
date: 2026-03-15
|
||||
notes: Vérifier si des acomptes provisionnels sont requis
|
||||
|
||||
obligations-legales-personnelles:
|
||||
- name: verification-testament
|
||||
date: 2026-07-01
|
||||
notes: Vérifier la pertinence et l'actualité du testament
|
||||
|
||||
- name: verification-mandat-inaptitude
|
||||
date: 2026-07-01
|
||||
notes: Vérifier le mandat de protection et documents connexes
|
||||
|
||||
- name: verification-directives-medicales
|
||||
date: 2026-07-15
|
||||
notes: Vérifier les directives médicales anticipées
|
||||
|
||||
- name: verification-papiers-identite
|
||||
date: 2026-06-01
|
||||
notes: Vérifier l'expiration des papiers d'identité
|
||||
|
||||
- name: renouvellement-permis-conduire
|
||||
date: 2027-01-01
|
||||
notes: Vérifier le renouvellement du permis de conduire
|
||||
|
||||
- name: verification-carte-assurance-maladie
|
||||
date: 2026-10-01
|
||||
notes: Vérifier l'expiration de la carte d'assurance maladie
|
||||
|
||||
- name: verification-passeport
|
||||
date: 2026-06-01
|
||||
notes: Vérifier l'expiration du passeport
|
||||
|
||||
maison:
|
||||
- name: remplacement-filtre-fournaise
|
||||
date: 2026-04-01
|
||||
notes: Remplacer le filtre de la fournaise
|
||||
|
||||
- name: inspection-fournaise
|
||||
date: 2026-09-15
|
||||
notes: Inspection générale de la fournaise avant saison froide
|
||||
|
||||
- name: inspection-thermopompe
|
||||
date: 2026-05-01
|
||||
notes: Inspection et entretien de la thermopompe
|
||||
|
||||
- name: nettoyage-unites-exterieures
|
||||
date: 2026-05-15
|
||||
notes: Nettoyer les unités extérieures et vérifier le dégagement
|
||||
|
||||
- name: inspection-toiture
|
||||
date: 2026-10-01
|
||||
notes: Inspection annuelle de la toiture
|
||||
|
||||
- name: inspection-gouttieres
|
||||
date: 2026-11-01
|
||||
notes: Inspection et nettoyage des gouttières
|
||||
|
||||
- name: inspection-fondation
|
||||
date: 2026-06-01
|
||||
notes: Inspection de la fondation et des fissures
|
||||
|
||||
- name: verification-drainage-terrain
|
||||
date: 2026-05-15
|
||||
notes: Vérification du drainage autour de la maison
|
||||
|
||||
- name: test-detecteurs-fumee
|
||||
date: 2026-04-01
|
||||
notes: Test des détecteurs de fumée
|
||||
|
||||
- name: test-detecteurs-co
|
||||
date: 2026-04-01
|
||||
notes: Test des détecteurs de monoxyde de carbone
|
||||
|
||||
- name: remplacement-piles-detecteurs
|
||||
date: 2026-10-01
|
||||
notes: Remplacement préventif des piles des détecteurs
|
||||
|
||||
- name: verification-plomberie-visible
|
||||
date: 2026-05-01
|
||||
notes: Vérification visuelle de la plomberie accessible
|
||||
|
||||
- name: inspection-sump-pump
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la pompe de puisard si applicable
|
||||
|
||||
- name: verification-calfetrage
|
||||
date: 2026-10-15
|
||||
notes: Vérification du calfeutrage portes et fenêtres
|
||||
|
||||
- name: inspection-portes-garage
|
||||
date: 2026-05-15
|
||||
notes: Vérification mécanique et sécurité des portes de garage
|
||||
|
||||
- name: verification-extincteurs
|
||||
date: 2026-06-01
|
||||
notes: Vérification des extincteurs
|
||||
|
||||
garage-et-rangement:
|
||||
- name: inspection-rangement-plafond
|
||||
date: 2026-05-01
|
||||
notes: Vérification des supports suspendus au plafond du garage
|
||||
|
||||
- name: revue-inventaire-garage
|
||||
date: 2026-04-15
|
||||
notes: Revue de l'inventaire et de l'ordre du garage
|
||||
|
||||
- name: verification-rouille-outillage
|
||||
date: 2026-05-15
|
||||
notes: Vérification de la corrosion sur les outils et équipements
|
||||
|
||||
- name: inspection-securite-garage
|
||||
date: 2026-06-01
|
||||
notes: Vérification des conditions de sécurité du garage
|
||||
|
||||
- name: rotation-stockage-bacs
|
||||
date: 2026-05-15
|
||||
notes: Revue des contenus de bacs de rangement
|
||||
|
||||
energie:
|
||||
- name: inspection-batteries-lifepo4
|
||||
date: 2026-04-01
|
||||
notes: Inspection physique et logique des batteries LiFePO4
|
||||
|
||||
- name: verification-tension-batteries
|
||||
date: 2026-03-15
|
||||
notes: Vérification des tensions et cohérence des batteries
|
||||
|
||||
- name: verification-smartshunt
|
||||
date: 2026-03-15
|
||||
notes: Vérification SmartShunt et cohérence du monitoring
|
||||
|
||||
- name: verification-cerbo-gx
|
||||
date: 2026-03-15
|
||||
notes: Vérification Cerbo GX et remontée des données
|
||||
|
||||
- name: verification-can-rs485
|
||||
date: 2026-04-15
|
||||
notes: Vérification des communications CAN ou RS485
|
||||
|
||||
- name: inspection-cablage-energie
|
||||
date: 2026-05-01
|
||||
notes: Inspection du câblage et des connexions énergétiques
|
||||
|
||||
- name: verification-busbars
|
||||
date: 2026-05-01
|
||||
notes: Vérification du serrage, corrosion et échauffement des busbars
|
||||
|
||||
- name: verification-parametres-charge
|
||||
date: 2026-04-01
|
||||
notes: Vérification des paramètres de charge et float
|
||||
|
||||
- name: test-charge-batteries
|
||||
date: 2026-04-15
|
||||
notes: Test de comportement en charge des batteries
|
||||
|
||||
- name: test-comportement-onduleur
|
||||
date: 2026-05-01
|
||||
notes: Vérifier le comportement du Multiplus sous charge légère
|
||||
|
||||
- name: verification-journal-evenements-victron
|
||||
date: 2026-04-15
|
||||
notes: Vérification des événements et anomalies Victron
|
||||
|
||||
resilience:
|
||||
- name: test-generatrice-propane
|
||||
date: 2026-04-01
|
||||
notes: Test mensuel de la génératrice au propane
|
||||
|
||||
- name: verification-carburant-generatrice
|
||||
date: 2026-04-01
|
||||
notes: Vérification de l'approvisionnement propane lié à la génératrice
|
||||
|
||||
- name: verification-procedure-bascule
|
||||
date: 2026-04-15
|
||||
notes: Réviser la procédure de bascule en mode secours
|
||||
|
||||
- name: verification-stock-lampes-piles
|
||||
date: 2026-05-01
|
||||
notes: Vérification des lampes, piles et éclairage d'urgence
|
||||
|
||||
- name: verification-trousses-urgence
|
||||
date: 2026-05-15
|
||||
notes: Vérification des trousses d'urgence
|
||||
|
||||
- name: revision-plan-urgence
|
||||
date: 2026-06-01
|
||||
notes: Réviser le plan d'urgence domestique
|
||||
|
||||
- name: test-autonomie-base
|
||||
date: 2026-06-15
|
||||
notes: Vérifier l'autonomie énergétique minimale attendue
|
||||
|
||||
- name: verification-moyens-cuisson-secours
|
||||
date: 2026-05-15
|
||||
notes: Vérification des moyens de cuisson de secours
|
||||
|
||||
stock-alimentaire:
|
||||
- name: rotation-nourriture-seche
|
||||
date: 2026-04-01
|
||||
notes: Rotation des stocks de nourriture sèche
|
||||
|
||||
- name: verification-reserve-eau
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la réserve d'eau potable
|
||||
|
||||
- name: verification-mylar-absorbeurs
|
||||
date: 2026-05-01
|
||||
notes: Vérifier l'intégrité des emballages Mylar et absorbeurs
|
||||
|
||||
- name: revue-inventaire-conserves
|
||||
date: 2026-04-15
|
||||
notes: Revue des conserves et dates de rotation
|
||||
|
||||
- name: revue-inventaire-farine-riz-pates
|
||||
date: 2026-04-01
|
||||
notes: Vérification des gros stocks alimentaires de base
|
||||
|
||||
- name: verification-bacs-legumes-racines
|
||||
date: 2026-10-01
|
||||
notes: Vérification des bacs de stockage de légumes racines
|
||||
|
||||
- name: revue-supplements-vitamines
|
||||
date: 2026-05-01
|
||||
notes: Vérification du stock de suppléments et dates utiles
|
||||
|
||||
sante:
|
||||
- name: verification-trousse-premiers-soins
|
||||
date: 2026-04-01
|
||||
notes: Vérification de la trousse de premiers soins
|
||||
|
||||
- name: verification-expiration-medicaments
|
||||
date: 2026-05-01
|
||||
notes: Vérification des dates d'expiration des médicaments
|
||||
|
||||
- name: revision-rendez-vous-medicaux
|
||||
date: 2026-04-15
|
||||
notes: Revoir les rendez-vous médicaux requis
|
||||
|
||||
- name: verification-lunettes-prescriptions
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les prescriptions et besoins de renouvellement
|
||||
|
||||
- name: verification-dossier-sante
|
||||
date: 2026-06-15
|
||||
notes: Vérifier l'ordre et l'accessibilité des documents de santé
|
||||
|
||||
voiture:
|
||||
- name: verification-huile-moteur
|
||||
date: 2026-04-01
|
||||
notes: Vérification de l'huile moteur
|
||||
|
||||
- name: inspection-freins
|
||||
date: 2026-05-01
|
||||
notes: Inspection des freins
|
||||
|
||||
- name: verification-pneus
|
||||
date: 2026-04-15
|
||||
notes: Vérification usure, pression et permutation des pneus
|
||||
|
||||
- name: ajustement-valves
|
||||
date: 2026-08-01
|
||||
notes: Vérification et ajustement des valves Honda Accord
|
||||
|
||||
- name: verification-timing-belt
|
||||
date: 2027-01-01
|
||||
notes: Vérification de la courroie de distribution et pompe à eau
|
||||
|
||||
- name: verification-batterie-voiture
|
||||
date: 2026-10-01
|
||||
notes: Vérification de l'état de la batterie automobile
|
||||
|
||||
- name: verification-balais-essuie-glace
|
||||
date: 2026-05-01
|
||||
notes: Vérification des essuie-glaces
|
||||
|
||||
- name: verification-liquides
|
||||
date: 2026-04-15
|
||||
notes: Vérification des liquides de la voiture
|
||||
|
||||
- name: verification-eclairage
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'éclairage et des phares
|
||||
|
||||
- name: verification-immatriculation-assurance
|
||||
date: 2026-06-01
|
||||
notes: Vérification papiers d'assurance et immatriculation
|
||||
|
||||
jardin:
|
||||
- name: inspection-vignes
|
||||
date: 2026-04-15
|
||||
notes: Inspection et entretien des vignes
|
||||
|
||||
- name: entretien-bleuetiers
|
||||
date: 2026-05-01
|
||||
notes: Entretien des bleuetiers
|
||||
|
||||
- name: entretien-framboisiers
|
||||
date: 2026-06-01
|
||||
notes: Entretien des framboisiers
|
||||
|
||||
- name: inspection-kiwis-nordiques
|
||||
date: 2026-05-15
|
||||
notes: Vérification des kiwis nordiques
|
||||
|
||||
- name: entretien-rhubarbe
|
||||
date: 2026-05-15
|
||||
notes: Entretien de la rhubarbe
|
||||
|
||||
- name: inspection-groseillier
|
||||
date: 2026-05-15
|
||||
notes: Inspection du groseillier
|
||||
|
||||
- name: inspection-muriers
|
||||
date: 2026-05-15
|
||||
notes: Inspection des mûriers
|
||||
|
||||
- name: entretien-houblon
|
||||
date: 2026-06-01
|
||||
notes: Vérification et entretien du houblon
|
||||
|
||||
- name: revision-pharmacopée-jardin
|
||||
date: 2026-05-01
|
||||
notes: Vérification du stock de soins pour végétaux
|
||||
|
||||
- name: revision-armoire-produits-jardin
|
||||
date: 2026-05-01
|
||||
notes: Vérification et ordre de l'armoire des produits pour végétaux
|
||||
|
||||
outils-et-equipements:
|
||||
- name: entretien-outils-jardin
|
||||
date: 2026-04-15
|
||||
notes: Nettoyage et entretien des outils de jardin
|
||||
|
||||
- name: inspection-outils-electriques
|
||||
date: 2026-05-01
|
||||
notes: Vérification des outils électriques
|
||||
|
||||
- name: verification-rallonges-et-connecteurs
|
||||
date: 2026-05-01
|
||||
notes: Vérification des rallonges et connecteurs
|
||||
|
||||
- name: verification-compresseur-et-accessoires
|
||||
date: 2026-05-15
|
||||
notes: Vérification du compresseur et accessoires
|
||||
|
||||
- name: revision-inventaire-outillage
|
||||
date: 2026-06-01
|
||||
notes: Revue de l'inventaire d'outillage
|
||||
|
||||
informatique-personnelle:
|
||||
- name: verification-sauvegardes-personnelles
|
||||
date: 2026-04-01
|
||||
notes: Vérification des sauvegardes personnelles
|
||||
|
||||
- name: nettoyage-stockage-personnel
|
||||
date: 2026-04-15
|
||||
notes: Nettoyage du stockage numérique personnel
|
||||
|
||||
- name: verification-comptes-importants
|
||||
date: 2026-05-01
|
||||
notes: Vérification des comptes numériques personnels importants
|
||||
|
||||
- name: revue-mots-de-passe-personnels
|
||||
date: 2026-06-01
|
||||
notes: Revue des mots de passe personnels critiques
|
||||
|
||||
- name: verification-documents-cloud-personnels
|
||||
date: 2026-05-15
|
||||
notes: Vérifier la cohérence des documents personnels sauvegardés
|
||||
|
||||
infrastructure-chezlepro:
|
||||
- name: verification-proxmox
|
||||
date: 2026-04-01
|
||||
notes: Vérification générale de l'environnement Proxmox
|
||||
|
||||
- name: verification-ceph
|
||||
date: 2026-04-01
|
||||
notes: Vérification générale de l'état Ceph
|
||||
|
||||
- name: test-restauration-backups
|
||||
date: 2026-04-15
|
||||
notes: Test de restauration des sauvegardes
|
||||
|
||||
- name: verification-pbs-truenas
|
||||
date: 2026-05-01
|
||||
notes: Vérification des solutions de sauvegarde et synchronisation
|
||||
|
||||
- name: verification-ups-infrastructure
|
||||
date: 2026-04-15
|
||||
notes: Vérification des UPS de l'infrastructure
|
||||
|
||||
- name: verification-capacite-stockage
|
||||
date: 2026-04-15
|
||||
notes: Vérifier capacité et croissance du stockage
|
||||
|
||||
- name: verification-apt-cacher-ng
|
||||
date: 2026-05-01
|
||||
notes: Vérification du bon fonctionnement d'apt-cacher-ng
|
||||
|
||||
- name: verification-icinga2
|
||||
date: 2026-04-01
|
||||
notes: Vérification de la supervision Icinga2
|
||||
|
||||
- name: verification-keycloak-openldap
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'identité et de l'authentification centralisées
|
||||
|
||||
- name: verification-nextcloud
|
||||
date: 2026-04-15
|
||||
notes: Vérification de l'état Nextcloud
|
||||
|
||||
- name: verification-mailcow
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'infrastructure Mailcow
|
||||
|
||||
- name: verification-openvas
|
||||
date: 2026-05-15
|
||||
notes: Vérification de la plateforme OpenVAS
|
||||
|
||||
- name: verification-journaux-systemes
|
||||
date: 2026-04-15
|
||||
notes: Revue des journaux systèmes critiques
|
||||
|
||||
reseau-chezlepro:
|
||||
- name: verification-firewalls
|
||||
date: 2026-04-01
|
||||
notes: Vérification des firewalls
|
||||
|
||||
- name: verification-vpn-openvpn
|
||||
date: 2026-04-15
|
||||
notes: Vérification des tunnels OpenVPN
|
||||
|
||||
- name: verification-crl-certificats
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la CRL et des certificats
|
||||
|
||||
- name: verification-switches
|
||||
date: 2026-05-01
|
||||
notes: Vérification des switches et uplinks
|
||||
|
||||
- name: verification-vlans-segmentation
|
||||
date: 2026-05-01
|
||||
notes: Vérification de la segmentation réseau
|
||||
|
||||
- name: verification-dns
|
||||
date: 2026-05-15
|
||||
notes: Vérification DNS interne et externe
|
||||
|
||||
- name: verification-dynamic-dns
|
||||
date: 2026-05-15
|
||||
notes: Vérification du DNS dynamique si utilisé
|
||||
|
||||
- name: audit-regles-firewall
|
||||
date: 2026-06-01
|
||||
notes: Audit périodique des règles de firewall
|
||||
|
||||
- name: verification-geoblocking
|
||||
date: 2026-05-15
|
||||
notes: Vérifier le geoblocking et son effet attendu
|
||||
|
||||
- name: verification-certificats-publics
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les expirations de certificats publics
|
||||
|
||||
securite-chezlepro:
|
||||
- name: verification-mises-a-jour-securite
|
||||
date: 2026-04-01
|
||||
notes: Vérification des mises à jour de sécurité
|
||||
|
||||
- name: audit-comptes-acces
|
||||
date: 2026-05-01
|
||||
notes: Audit des comptes et accès privilégiés
|
||||
|
||||
- name: verification-ids-snort
|
||||
date: 2026-05-01
|
||||
notes: Vérification des IDS et de leur état
|
||||
|
||||
- name: revue-pki-privee
|
||||
date: 2026-05-15
|
||||
notes: Revue de la PKI privée et des autorités intermédiaires
|
||||
|
||||
- name: revue-politiques-securite
|
||||
date: 2026-06-01
|
||||
notes: Revue des politiques et pratiques de sécurité numérique
|
||||
|
||||
- name: verification-sauvegardes-configuration
|
||||
date: 2026-04-15
|
||||
notes: Vérifier les sauvegardes des configurations critiques
|
||||
|
||||
exploitation-chezlepro:
|
||||
- name: revision-playbooks-ansible
|
||||
date: 2026-05-01
|
||||
notes: Revue des playbooks Ansible
|
||||
|
||||
- name: verification-inventaires-ansible
|
||||
date: 2026-05-01
|
||||
notes: Vérification des inventaires Ansible
|
||||
|
||||
- name: revision-documentation-technique
|
||||
date: 2026-05-15
|
||||
notes: Revue de la documentation technique Chezlepro
|
||||
|
||||
- name: verification-procedures-reprise
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les procédures de reprise et restauration
|
||||
|
||||
- name: revue-capacite-ressources
|
||||
date: 2026-06-15
|
||||
notes: Revue CPU RAM stockage et charge de l'infrastructure
|
||||
|
||||
- name: verification-jobs-automatises
|
||||
date: 2026-05-15
|
||||
notes: Vérification des jobs automatisés et scripts périodiques
|
||||
|
||||
obligations-chezlepro:
|
||||
- name: verification-registraire-entreprise
|
||||
date: 2026-06-15
|
||||
notes: Vérifier les obligations au Registraire des entreprises
|
||||
|
||||
- name: verification-declarations-taxes
|
||||
date: 2026-04-30
|
||||
notes: Vérifier les obligations de taxes de l'entreprise si applicables
|
||||
|
||||
- name: verification-dossier-comptable-entreprise
|
||||
date: 2026-04-15
|
||||
notes: Vérifier l'ordre du dossier comptable Chezlepro
|
||||
|
||||
- name: verification-facturation-clients
|
||||
date: 2026-04-10
|
||||
notes: Vérifier la facturation et son suivi
|
||||
|
||||
- name: verification-paiements-fournisseurs
|
||||
date: 2026-04-10
|
||||
notes: Vérifier les paiements fournisseurs
|
||||
|
||||
- name: verification-contrats-ententes
|
||||
date: 2026-05-15
|
||||
notes: Vérifier contrats, ententes et obligations associées
|
||||
|
||||
- name: verification-assurances-entreprise
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les assurances de l'entreprise
|
||||
|
||||
- name: archivage-documents-entreprise
|
||||
date: 2026-05-31
|
||||
notes: Archiver les documents administratifs et financiers de l'entreprise
|
||||
|
||||
actifs-chezlepro:
|
||||
- name: revision-inventaire-materiel
|
||||
date: 2026-05-01
|
||||
notes: Revoir l'inventaire du matériel de Chezlepro
|
||||
|
||||
- name: verification-amortissables
|
||||
date: 2026-06-01
|
||||
notes: Vérifier le registre des biens amortissables
|
||||
|
||||
- name: verification-serveurs-et-composants
|
||||
date: 2026-05-15
|
||||
notes: Vérifier l'état des serveurs et composants matériels
|
||||
|
||||
- name: verification-reserve-pieces
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les pièces de rechange critiques
|
||||
|
||||
- name: revision-actifs-transferts
|
||||
date: 2026-06-15
|
||||
notes: Réviser les actifs transférés ou à transférer à l'entreprise
|
||||
|
||||
projets:
|
||||
- name: revision-life-noc
|
||||
date: 2026-04-01
|
||||
notes: Révision du projet Life-NOC
|
||||
|
||||
- name: revision-alliance-boreale
|
||||
date: 2026-04-15
|
||||
notes: Révision du projet Alliance Boréale
|
||||
|
||||
- name: revision-erplibre
|
||||
date: 2026-05-01
|
||||
notes: Révision du projet ERPLibre
|
||||
|
||||
- name: revision-semence-numerique
|
||||
date: 2026-05-15
|
||||
notes: Révision du projet semence numérique
|
||||
|
||||
- name: revision-ortrux-1
|
||||
date: 2026-05-15
|
||||
notes: Révision du système Ortrux-1
|
||||
|
||||
- name: revision-district16
|
||||
date: 2026-05-01
|
||||
notes: Révision du projet DISTRICT16
|
||||
|
||||
communaute:
|
||||
- name: verification-outils-aa
|
||||
date: 2026-05-01
|
||||
notes: Vérifier les outils numériques liés aux activités communautaires
|
||||
|
||||
- name: verification-espace-87-16
|
||||
date: 2026-05-01
|
||||
notes: Vérifier l'espace Nextcloud du district
|
||||
|
||||
- name: verification-salles-visio-groupes
|
||||
date: 2026-05-15
|
||||
notes: Vérifier les salles de visioconférence des groupes
|
||||
|
||||
- name: verification-depots-rapports-rsg
|
||||
date: 2026-05-15
|
||||
notes: Vérifier les dépôts de rapports RSG
|
||||
|
||||
- name: revision-outils-communication-communaute
|
||||
date: 2026-06-01
|
||||
notes: Réviser les moyens de communication communautaires
|
||||
|
||||
documentation:
|
||||
- name: revue-docs-personnelles-importantes
|
||||
date: 2026-05-15
|
||||
notes: Revoir l'organisation des documents personnels importants
|
||||
|
||||
- name: revue-wiki-technique
|
||||
date: 2026-05-15
|
||||
notes: Revoir le wiki technique et sa cohérence
|
||||
|
||||
- name: revue-base-connaissances
|
||||
date: 2026-06-01
|
||||
notes: Revoir la base de connaissances globale
|
||||
|
||||
- name: verification-sauvegarde-docs-cles
|
||||
date: 2026-05-15
|
||||
notes: Vérifier la sauvegarde des documents clés
|
||||
|
||||
animaux:
|
||||
- name: verification-stock-nourriture-chats
|
||||
date: 2026-04-15
|
||||
notes: Vérification du stock de nourriture pour chats
|
||||
|
||||
- name: verification-friandises-et-litiere
|
||||
date: 2026-04-15
|
||||
notes: Vérification des stocks de friandises et de litière
|
||||
|
||||
- name: revision-routine-soins-animaux
|
||||
date: 2026-05-01
|
||||
notes: Revue de la routine de soins et des besoins matériels des chats
|
||||
|
|
@ -1,768 +0,0 @@
|
|||
domains:
|
||||
|
||||
revue:
|
||||
- name: revue-quotidienne-life-noc
|
||||
date: "2026-03-13"
|
||||
notes: Vérifier le tableau de bord Life-NOC
|
||||
probe:
|
||||
type: elapsed_time
|
||||
source:
|
||||
type: manual_date
|
||||
inputs_file: "/opt/life-noc/data/inputs/revue.yaml"
|
||||
item_key: "revue-quotidienne-life-noc"
|
||||
metric:
|
||||
unit: days
|
||||
thresholds:
|
||||
unknown_lt: 1
|
||||
ok_gte: 1
|
||||
warning_gte: 2
|
||||
critical_gte: 3
|
||||
policy:
|
||||
on_error: critical
|
||||
|
||||
- name: revue-hebdomadaire-priorites
|
||||
date: "2026-03-10"
|
||||
notes: Revoir les priorités de la semaine
|
||||
probe:
|
||||
type: elapsed_time
|
||||
source:
|
||||
type: manual_date
|
||||
inputs_file: "/opt/life-noc/data/inputs/revue.yaml"
|
||||
item_key: "revue-hebdomadaire-priorites"
|
||||
metric:
|
||||
unit: days
|
||||
thresholds:
|
||||
unknown_lt: 5
|
||||
ok_gte: 5
|
||||
warning_gte: 7
|
||||
critical_gte: 10
|
||||
policy:
|
||||
on_error: critical
|
||||
|
||||
- name: revue-mensuelle-systeme-vie
|
||||
date: 2026-04-01
|
||||
notes: Revue mensuelle de l'ensemble du système Life-NOC
|
||||
|
||||
- name: revue-trimestrielle-orientation
|
||||
date: 2026-06-30
|
||||
notes: Revue trimestrielle des orientations de vie et de Chezlepro
|
||||
|
||||
focus:
|
||||
- name: entretien-processus-focus
|
||||
date: 2026-03-09
|
||||
notes: Vérifier que les cartouches FOCUS sont à jour
|
||||
|
||||
- name: nettoyage-inbox-mentale
|
||||
date: 2026-03-09
|
||||
notes: Vider et clarifier les éléments capturés hors système
|
||||
|
||||
- name: revue-limitation-engagements
|
||||
date: 2026-03-31
|
||||
notes: Vérifier que les engagements actifs demeurent réalistes
|
||||
|
||||
finances-personnelles:
|
||||
- name: revision-comptes-bancaires
|
||||
date: 2026-04-01
|
||||
notes: Révision mensuelle des comptes bancaires personnels
|
||||
|
||||
- name: verification-cartes-credit
|
||||
date: 2026-04-01
|
||||
notes: Vérification des soldes et transactions des cartes de crédit
|
||||
|
||||
- name: paiement-cartes-credit
|
||||
date: 2026-04-15
|
||||
notes: Paiement des cartes de crédit personnelles
|
||||
|
||||
- name: revision-budget-personnel
|
||||
date: 2026-04-05
|
||||
notes: Révision mensuelle du budget personnel
|
||||
|
||||
- name: verification-prelevements-automatiques
|
||||
date: 2026-04-03
|
||||
notes: Vérification des prélèvements automatiques personnels
|
||||
|
||||
- name: verification-placements
|
||||
date: 2026-06-30
|
||||
notes: Vérification périodique des placements et comptes enregistrés
|
||||
|
||||
- name: verification-cotisations-reer
|
||||
date: 2026-02-28
|
||||
notes: Vérification des cotisations REER
|
||||
|
||||
- name: verification-celi
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'espace CELI et de son utilisation
|
||||
|
||||
- name: preparation-dossier-financier-annuel
|
||||
date: 2026-01-31
|
||||
notes: Préparer le dossier financier annuel personnel
|
||||
|
||||
fiscalite-personnelle:
|
||||
- name: preparation-documents-impots
|
||||
date: 2026-03-15
|
||||
notes: Rassembler tous les documents fiscaux personnels
|
||||
|
||||
- name: production-impots-federal
|
||||
date: 2026-04-30
|
||||
notes: Produire la déclaration de revenus fédérale
|
||||
|
||||
- name: production-impots-quebec
|
||||
date: 2026-04-30
|
||||
notes: Produire la déclaration de revenus Québec
|
||||
|
||||
- name: paiement-solde-impots
|
||||
date: 2026-04-30
|
||||
notes: Payer tout solde d'impôt exigible
|
||||
|
||||
- name: verification-avis-cotisation
|
||||
date: 2026-05-31
|
||||
notes: Vérifier les avis de cotisation ARC et Revenu Québec
|
||||
|
||||
- name: archivage-documents-fiscaux
|
||||
date: 2026-06-15
|
||||
notes: Archiver les documents fiscaux personnels
|
||||
|
||||
- name: verification-acomptes-provisionnels
|
||||
date: 2026-03-15
|
||||
notes: Vérifier si des acomptes provisionnels sont requis
|
||||
|
||||
obligations-legales-personnelles:
|
||||
- name: verification-testament
|
||||
date: 2026-07-01
|
||||
notes: Vérifier la pertinence et l'actualité du testament
|
||||
|
||||
- name: verification-mandat-inaptitude
|
||||
date: 2026-07-01
|
||||
notes: Vérifier le mandat de protection et documents connexes
|
||||
|
||||
- name: verification-directives-medicales
|
||||
date: 2026-07-15
|
||||
notes: Vérifier les directives médicales anticipées
|
||||
|
||||
- name: verification-papiers-identite
|
||||
date: 2026-06-01
|
||||
notes: Vérifier l'expiration des papiers d'identité
|
||||
|
||||
- name: renouvellement-permis-conduire
|
||||
date: 2027-01-01
|
||||
notes: Vérifier le renouvellement du permis de conduire
|
||||
|
||||
- name: verification-carte-assurance-maladie
|
||||
date: 2026-10-01
|
||||
notes: Vérifier l'expiration de la carte d'assurance maladie
|
||||
|
||||
- name: verification-passeport
|
||||
date: 2026-06-01
|
||||
notes: Vérifier l'expiration du passeport
|
||||
|
||||
maison:
|
||||
- name: remplacement-filtre-fournaise
|
||||
date: 2026-04-01
|
||||
notes: Remplacer le filtre de la fournaise
|
||||
|
||||
- name: inspection-fournaise
|
||||
date: 2026-09-15
|
||||
notes: Inspection générale de la fournaise avant saison froide
|
||||
|
||||
- name: inspection-thermopompe
|
||||
date: 2026-05-01
|
||||
notes: Inspection et entretien de la thermopompe
|
||||
|
||||
- name: nettoyage-unites-exterieures
|
||||
date: 2026-05-15
|
||||
notes: Nettoyer les unités extérieures et vérifier le dégagement
|
||||
|
||||
- name: inspection-toiture
|
||||
date: 2026-10-01
|
||||
notes: Inspection annuelle de la toiture
|
||||
|
||||
- name: inspection-gouttieres
|
||||
date: 2026-11-01
|
||||
notes: Inspection et nettoyage des gouttières
|
||||
|
||||
- name: inspection-fondation
|
||||
date: 2026-06-01
|
||||
notes: Inspection de la fondation et des fissures
|
||||
|
||||
- name: verification-drainage-terrain
|
||||
date: 2026-05-15
|
||||
notes: Vérification du drainage autour de la maison
|
||||
|
||||
- name: test-detecteurs-fumee
|
||||
date: 2026-04-01
|
||||
notes: Test des détecteurs de fumée
|
||||
|
||||
- name: test-detecteurs-co
|
||||
date: 2026-04-01
|
||||
notes: Test des détecteurs de monoxyde de carbone
|
||||
|
||||
- name: remplacement-piles-detecteurs
|
||||
date: 2026-10-01
|
||||
notes: Remplacement préventif des piles des détecteurs
|
||||
|
||||
- name: verification-plomberie-visible
|
||||
date: 2026-05-01
|
||||
notes: Vérification visuelle de la plomberie accessible
|
||||
|
||||
- name: inspection-sump-pump
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la pompe de puisard si applicable
|
||||
|
||||
- name: verification-calfetrage
|
||||
date: 2026-10-15
|
||||
notes: Vérification du calfeutrage portes et fenêtres
|
||||
|
||||
- name: inspection-portes-garage
|
||||
date: 2026-05-15
|
||||
notes: Vérification mécanique et sécurité des portes de garage
|
||||
|
||||
- name: verification-extincteurs
|
||||
date: 2026-06-01
|
||||
notes: Vérification des extincteurs
|
||||
|
||||
garage-et-rangement:
|
||||
- name: inspection-rangement-plafond
|
||||
date: 2026-05-01
|
||||
notes: Vérification des supports suspendus au plafond du garage
|
||||
|
||||
- name: revue-inventaire-garage
|
||||
date: 2026-04-15
|
||||
notes: Revue de l'inventaire et de l'ordre du garage
|
||||
|
||||
- name: verification-rouille-outillage
|
||||
date: 2026-05-15
|
||||
notes: Vérification de la corrosion sur les outils et équipements
|
||||
|
||||
- name: inspection-securite-garage
|
||||
date: 2026-06-01
|
||||
notes: Vérification des conditions de sécurité du garage
|
||||
|
||||
- name: rotation-stockage-bacs
|
||||
date: 2026-05-15
|
||||
notes: Revue des contenus de bacs de rangement
|
||||
|
||||
energie:
|
||||
- name: inspection-batteries-lifepo4
|
||||
date: 2026-04-01
|
||||
notes: Inspection physique et logique des batteries LiFePO4
|
||||
|
||||
- name: verification-tension-batteries
|
||||
date: 2026-03-15
|
||||
notes: Vérification des tensions et cohérence des batteries
|
||||
|
||||
- name: verification-smartshunt
|
||||
date: 2026-03-15
|
||||
notes: Vérification SmartShunt et cohérence du monitoring
|
||||
|
||||
- name: verification-cerbo-gx
|
||||
date: 2026-03-15
|
||||
notes: Vérification Cerbo GX et remontée des données
|
||||
|
||||
- name: verification-can-rs485
|
||||
date: 2026-04-15
|
||||
notes: Vérification des communications CAN ou RS485
|
||||
|
||||
- name: inspection-cablage-energie
|
||||
date: 2026-05-01
|
||||
notes: Inspection du câblage et des connexions énergétiques
|
||||
|
||||
- name: verification-busbars
|
||||
date: 2026-05-01
|
||||
notes: Vérification du serrage, corrosion et échauffement des busbars
|
||||
|
||||
- name: verification-parametres-charge
|
||||
date: 2026-04-01
|
||||
notes: Vérification des paramètres de charge et float
|
||||
|
||||
- name: test-charge-batteries
|
||||
date: 2026-04-15
|
||||
notes: Test de comportement en charge des batteries
|
||||
|
||||
- name: test-comportement-onduleur
|
||||
date: 2026-05-01
|
||||
notes: Vérifier le comportement du Multiplus sous charge légère
|
||||
|
||||
- name: verification-journal-evenements-victron
|
||||
date: 2026-04-15
|
||||
notes: Vérification des événements et anomalies Victron
|
||||
|
||||
resilience:
|
||||
- name: test-generatrice-propane
|
||||
date: 2026-04-01
|
||||
notes: Test mensuel de la génératrice au propane
|
||||
|
||||
- name: verification-carburant-generatrice
|
||||
date: 2026-04-01
|
||||
notes: Vérification de l'approvisionnement propane lié à la génératrice
|
||||
|
||||
- name: verification-procedure-bascule
|
||||
date: 2026-04-15
|
||||
notes: Réviser la procédure de bascule en mode secours
|
||||
|
||||
- name: verification-stock-lampes-piles
|
||||
date: 2026-05-01
|
||||
notes: Vérification des lampes, piles et éclairage d'urgence
|
||||
|
||||
- name: verification-trousses-urgence
|
||||
date: 2026-05-15
|
||||
notes: Vérification des trousses d'urgence
|
||||
|
||||
- name: revision-plan-urgence
|
||||
date: 2026-06-01
|
||||
notes: Réviser le plan d'urgence domestique
|
||||
|
||||
- name: test-autonomie-base
|
||||
date: 2026-06-15
|
||||
notes: Vérifier l'autonomie énergétique minimale attendue
|
||||
|
||||
- name: verification-moyens-cuisson-secours
|
||||
date: 2026-05-15
|
||||
notes: Vérification des moyens de cuisson de secours
|
||||
|
||||
stock-alimentaire:
|
||||
- name: rotation-nourriture-seche
|
||||
date: 2026-04-01
|
||||
notes: Rotation des stocks de nourriture sèche
|
||||
|
||||
- name: verification-reserve-eau
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la réserve d'eau potable
|
||||
|
||||
- name: verification-mylar-absorbeurs
|
||||
date: 2026-05-01
|
||||
notes: Vérifier l'intégrité des emballages Mylar et absorbeurs
|
||||
|
||||
- name: revue-inventaire-conserves
|
||||
date: 2026-04-15
|
||||
notes: Revue des conserves et dates de rotation
|
||||
|
||||
- name: revue-inventaire-farine-riz-pates
|
||||
date: 2026-04-01
|
||||
notes: Vérification des gros stocks alimentaires de base
|
||||
|
||||
- name: verification-bacs-legumes-racines
|
||||
date: 2026-10-01
|
||||
notes: Vérification des bacs de stockage de légumes racines
|
||||
|
||||
- name: revue-supplements-vitamines
|
||||
date: 2026-05-01
|
||||
notes: Vérification du stock de suppléments et dates utiles
|
||||
|
||||
sante:
|
||||
- name: verification-trousse-premiers-soins
|
||||
date: 2026-04-01
|
||||
notes: Vérification de la trousse de premiers soins
|
||||
|
||||
- name: verification-expiration-medicaments
|
||||
date: 2026-05-01
|
||||
notes: Vérification des dates d'expiration des médicaments
|
||||
|
||||
- name: revision-rendez-vous-medicaux
|
||||
date: 2026-04-15
|
||||
notes: Revoir les rendez-vous médicaux requis
|
||||
|
||||
- name: verification-lunettes-prescriptions
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les prescriptions et besoins de renouvellement
|
||||
|
||||
- name: verification-dossier-sante
|
||||
date: 2026-06-15
|
||||
notes: Vérifier l'ordre et l'accessibilité des documents de santé
|
||||
|
||||
voiture:
|
||||
- name: verification-huile-moteur
|
||||
date: 2026-04-01
|
||||
notes: Vérification de l'huile moteur
|
||||
|
||||
- name: inspection-freins
|
||||
date: 2026-05-01
|
||||
notes: Inspection des freins
|
||||
|
||||
- name: verification-pneus
|
||||
date: 2026-04-15
|
||||
notes: Vérification usure, pression et permutation des pneus
|
||||
|
||||
- name: ajustement-valves
|
||||
date: 2026-08-01
|
||||
notes: Vérification et ajustement des valves Honda Accord
|
||||
|
||||
- name: verification-timing-belt
|
||||
date: 2027-01-01
|
||||
notes: Vérification de la courroie de distribution et pompe à eau
|
||||
|
||||
- name: verification-batterie-voiture
|
||||
date: 2026-10-01
|
||||
notes: Vérification de l'état de la batterie automobile
|
||||
|
||||
- name: verification-balais-essuie-glace
|
||||
date: 2026-05-01
|
||||
notes: Vérification des essuie-glaces
|
||||
|
||||
- name: verification-liquides
|
||||
date: 2026-04-15
|
||||
notes: Vérification des liquides de la voiture
|
||||
|
||||
- name: verification-eclairage
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'éclairage et des phares
|
||||
|
||||
- name: verification-immatriculation-assurance
|
||||
date: 2026-06-01
|
||||
notes: Vérification papiers d'assurance et immatriculation
|
||||
|
||||
jardin:
|
||||
- name: inspection-vignes
|
||||
date: 2026-04-15
|
||||
notes: Inspection et entretien des vignes
|
||||
|
||||
- name: entretien-bleuetiers
|
||||
date: 2026-05-01
|
||||
notes: Entretien des bleuetiers
|
||||
|
||||
- name: entretien-framboisiers
|
||||
date: 2026-06-01
|
||||
notes: Entretien des framboisiers
|
||||
|
||||
- name: inspection-kiwis-nordiques
|
||||
date: 2026-05-15
|
||||
notes: Vérification des kiwis nordiques
|
||||
|
||||
- name: entretien-rhubarbe
|
||||
date: 2026-05-15
|
||||
notes: Entretien de la rhubarbe
|
||||
|
||||
- name: inspection-groseillier
|
||||
date: 2026-05-15
|
||||
notes: Inspection du groseillier
|
||||
|
||||
- name: inspection-muriers
|
||||
date: 2026-05-15
|
||||
notes: Inspection des mûriers
|
||||
|
||||
- name: entretien-houblon
|
||||
date: 2026-06-01
|
||||
notes: Vérification et entretien du houblon
|
||||
|
||||
- name: revision-pharmacopée-jardin
|
||||
date: 2026-05-01
|
||||
notes: Vérification du stock de soins pour végétaux
|
||||
|
||||
- name: revision-armoire-produits-jardin
|
||||
date: 2026-05-01
|
||||
notes: Vérification et ordre de l'armoire des produits pour végétaux
|
||||
|
||||
outils-et-equipements:
|
||||
- name: entretien-outils-jardin
|
||||
date: 2026-04-15
|
||||
notes: Nettoyage et entretien des outils de jardin
|
||||
|
||||
- name: inspection-outils-electriques
|
||||
date: 2026-05-01
|
||||
notes: Vérification des outils électriques
|
||||
|
||||
- name: verification-rallonges-et-connecteurs
|
||||
date: 2026-05-01
|
||||
notes: Vérification des rallonges et connecteurs
|
||||
|
||||
- name: verification-compresseur-et-accessoires
|
||||
date: 2026-05-15
|
||||
notes: Vérification du compresseur et accessoires
|
||||
|
||||
- name: revision-inventaire-outillage
|
||||
date: 2026-06-01
|
||||
notes: Revue de l'inventaire d'outillage
|
||||
|
||||
informatique-personnelle:
|
||||
- name: verification-sauvegardes-personnelles
|
||||
date: 2026-04-01
|
||||
notes: Vérification des sauvegardes personnelles
|
||||
|
||||
- name: nettoyage-stockage-personnel
|
||||
date: 2026-04-15
|
||||
notes: Nettoyage du stockage numérique personnel
|
||||
|
||||
- name: verification-comptes-importants
|
||||
date: 2026-05-01
|
||||
notes: Vérification des comptes numériques personnels importants
|
||||
|
||||
- name: revue-mots-de-passe-personnels
|
||||
date: 2026-06-01
|
||||
notes: Revue des mots de passe personnels critiques
|
||||
|
||||
- name: verification-documents-cloud-personnels
|
||||
date: 2026-05-15
|
||||
notes: Vérifier la cohérence des documents personnels sauvegardés
|
||||
|
||||
infrastructure-chezlepro:
|
||||
- name: verification-proxmox
|
||||
date: 2026-04-01
|
||||
notes: Vérification générale de l'environnement Proxmox
|
||||
|
||||
- name: verification-ceph
|
||||
date: 2026-04-01
|
||||
notes: Vérification générale de l'état Ceph
|
||||
|
||||
- name: test-restauration-backups
|
||||
date: 2026-04-15
|
||||
notes: Test de restauration des sauvegardes
|
||||
|
||||
- name: verification-pbs-truenas
|
||||
date: 2026-05-01
|
||||
notes: Vérification des solutions de sauvegarde et synchronisation
|
||||
|
||||
- name: verification-ups-infrastructure
|
||||
date: 2026-04-15
|
||||
notes: Vérification des UPS de l'infrastructure
|
||||
|
||||
- name: verification-capacite-stockage
|
||||
date: 2026-04-15
|
||||
notes: Vérifier capacité et croissance du stockage
|
||||
|
||||
- name: verification-apt-cacher-ng
|
||||
date: 2026-05-01
|
||||
notes: Vérification du bon fonctionnement d'apt-cacher-ng
|
||||
|
||||
- name: verification-icinga2
|
||||
date: 2026-04-01
|
||||
notes: Vérification de la supervision Icinga2
|
||||
|
||||
- name: verification-keycloak-openldap
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'identité et de l'authentification centralisées
|
||||
|
||||
- name: verification-nextcloud
|
||||
date: 2026-04-15
|
||||
notes: Vérification de l'état Nextcloud
|
||||
|
||||
- name: verification-mailcow
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'infrastructure Mailcow
|
||||
|
||||
- name: verification-openvas
|
||||
date: 2026-05-15
|
||||
notes: Vérification de la plateforme OpenVAS
|
||||
|
||||
- name: verification-journaux-systemes
|
||||
date: 2026-04-15
|
||||
notes: Revue des journaux systèmes critiques
|
||||
|
||||
reseau-chezlepro:
|
||||
- name: verification-firewalls
|
||||
date: 2026-04-01
|
||||
notes: Vérification des firewalls
|
||||
|
||||
- name: verification-vpn-openvpn
|
||||
date: 2026-04-15
|
||||
notes: Vérification des tunnels OpenVPN
|
||||
|
||||
- name: verification-crl-certificats
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la CRL et des certificats
|
||||
|
||||
- name: verification-switches
|
||||
date: 2026-05-01
|
||||
notes: Vérification des switches et uplinks
|
||||
|
||||
- name: verification-vlans-segmentation
|
||||
date: 2026-05-01
|
||||
notes: Vérification de la segmentation réseau
|
||||
|
||||
- name: verification-dns
|
||||
date: 2026-05-15
|
||||
notes: Vérification DNS interne et externe
|
||||
|
||||
- name: verification-dynamic-dns
|
||||
date: 2026-05-15
|
||||
notes: Vérification du DNS dynamique si utilisé
|
||||
|
||||
- name: audit-regles-firewall
|
||||
date: 2026-06-01
|
||||
notes: Audit périodique des règles de firewall
|
||||
|
||||
- name: verification-geoblocking
|
||||
date: 2026-05-15
|
||||
notes: Vérifier le geoblocking et son effet attendu
|
||||
|
||||
- name: verification-certificats-publics
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les expirations de certificats publics
|
||||
|
||||
securite-chezlepro:
|
||||
- name: verification-mises-a-jour-securite
|
||||
date: 2026-04-01
|
||||
notes: Vérification des mises à jour de sécurité
|
||||
|
||||
- name: audit-comptes-acces
|
||||
date: 2026-05-01
|
||||
notes: Audit des comptes et accès privilégiés
|
||||
|
||||
- name: verification-ids-snort
|
||||
date: 2026-05-01
|
||||
notes: Vérification des IDS et de leur état
|
||||
|
||||
- name: revue-pki-privee
|
||||
date: 2026-05-15
|
||||
notes: Revue de la PKI privée et des autorités intermédiaires
|
||||
|
||||
- name: revue-politiques-securite
|
||||
date: 2026-06-01
|
||||
notes: Revue des politiques et pratiques de sécurité numérique
|
||||
|
||||
- name: verification-sauvegardes-configuration
|
||||
date: 2026-04-15
|
||||
notes: Vérifier les sauvegardes des configurations critiques
|
||||
|
||||
exploitation-chezlepro:
|
||||
- name: revision-playbooks-ansible
|
||||
date: 2026-05-01
|
||||
notes: Revue des playbooks Ansible
|
||||
|
||||
- name: verification-inventaires-ansible
|
||||
date: 2026-05-01
|
||||
notes: Vérification des inventaires Ansible
|
||||
|
||||
- name: revision-documentation-technique
|
||||
date: 2026-05-15
|
||||
notes: Revue de la documentation technique Chezlepro
|
||||
|
||||
- name: verification-procedures-reprise
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les procédures de reprise et restauration
|
||||
|
||||
- name: revue-capacite-ressources
|
||||
date: 2026-06-15
|
||||
notes: Revue CPU RAM stockage et charge de l'infrastructure
|
||||
|
||||
- name: verification-jobs-automatises
|
||||
date: 2026-05-15
|
||||
notes: Vérification des jobs automatisés et scripts périodiques
|
||||
|
||||
obligations-chezlepro:
|
||||
- name: verification-registraire-entreprise
|
||||
date: 2026-06-15
|
||||
notes: Vérifier les obligations au Registraire des entreprises
|
||||
|
||||
- name: verification-declarations-taxes
|
||||
date: 2026-04-30
|
||||
notes: Vérifier les obligations de taxes de l'entreprise si applicables
|
||||
|
||||
- name: verification-dossier-comptable-entreprise
|
||||
date: 2026-04-15
|
||||
notes: Vérifier l'ordre du dossier comptable Chezlepro
|
||||
|
||||
- name: verification-facturation-clients
|
||||
date: 2026-04-10
|
||||
notes: Vérifier la facturation et son suivi
|
||||
|
||||
- name: verification-paiements-fournisseurs
|
||||
date: 2026-04-10
|
||||
notes: Vérifier les paiements fournisseurs
|
||||
|
||||
- name: verification-contrats-ententes
|
||||
date: 2026-05-15
|
||||
notes: Vérifier contrats, ententes et obligations associées
|
||||
|
||||
- name: verification-assurances-entreprise
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les assurances de l'entreprise
|
||||
|
||||
- name: archivage-documents-entreprise
|
||||
date: 2026-05-31
|
||||
notes: Archiver les documents administratifs et financiers de l'entreprise
|
||||
|
||||
actifs-chezlepro:
|
||||
- name: revision-inventaire-materiel
|
||||
date: 2026-05-01
|
||||
notes: Revoir l'inventaire du matériel de Chezlepro
|
||||
|
||||
- name: verification-amortissables
|
||||
date: 2026-06-01
|
||||
notes: Vérifier le registre des biens amortissables
|
||||
|
||||
- name: verification-serveurs-et-composants
|
||||
date: 2026-05-15
|
||||
notes: Vérifier l'état des serveurs et composants matériels
|
||||
|
||||
- name: verification-reserve-pieces
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les pièces de rechange critiques
|
||||
|
||||
- name: revision-actifs-transferts
|
||||
date: 2026-06-15
|
||||
notes: Réviser les actifs transférés ou à transférer à l'entreprise
|
||||
|
||||
projets:
|
||||
- name: revision-life-noc
|
||||
date: 2026-04-01
|
||||
notes: Révision du projet Life-NOC
|
||||
|
||||
- name: revision-alliance-boreale
|
||||
date: 2026-04-15
|
||||
notes: Révision du projet Alliance Boréale
|
||||
|
||||
- name: revision-erplibre
|
||||
date: 2026-05-01
|
||||
notes: Révision du projet ERPLibre
|
||||
|
||||
- name: revision-semence-numerique
|
||||
date: 2026-05-15
|
||||
notes: Révision du projet semence numérique
|
||||
|
||||
- name: revision-ortrux-1
|
||||
date: 2026-05-15
|
||||
notes: Révision du système Ortrux-1
|
||||
|
||||
- name: revision-district16
|
||||
date: 2026-05-01
|
||||
notes: Révision du projet DISTRICT16
|
||||
|
||||
communaute:
|
||||
- name: verification-outils-aa
|
||||
date: 2026-05-01
|
||||
notes: Vérifier les outils numériques liés aux activités communautaires
|
||||
|
||||
- name: verification-espace-87-16
|
||||
date: 2026-05-01
|
||||
notes: Vérifier l'espace Nextcloud du district
|
||||
|
||||
- name: verification-salles-visio-groupes
|
||||
date: 2026-05-15
|
||||
notes: Vérifier les salles de visioconférence des groupes
|
||||
|
||||
- name: verification-depots-rapports-rsg
|
||||
date: 2026-05-15
|
||||
notes: Vérifier les dépôts de rapports RSG
|
||||
|
||||
- name: revision-outils-communication-communaute
|
||||
date: 2026-06-01
|
||||
notes: Réviser les moyens de communication communautaires
|
||||
|
||||
documentation:
|
||||
- name: revue-docs-personnelles-importantes
|
||||
date: 2026-05-15
|
||||
notes: Revoir l'organisation des documents personnels importants
|
||||
|
||||
- name: revue-wiki-technique
|
||||
date: 2026-05-15
|
||||
notes: Revoir le wiki technique et sa cohérence
|
||||
|
||||
- name: revue-base-connaissances
|
||||
date: 2026-06-01
|
||||
notes: Revoir la base de connaissances globale
|
||||
|
||||
- name: verification-sauvegarde-docs-cles
|
||||
date: 2026-05-15
|
||||
notes: Vérifier la sauvegarde des documents clés
|
||||
|
||||
animaux:
|
||||
- name: verification-stock-nourriture-chats
|
||||
date: 2026-04-15
|
||||
notes: Vérification du stock de nourriture pour chats
|
||||
|
||||
- name: verification-friandises-et-litiere
|
||||
date: 2026-04-15
|
||||
notes: Vérification des stocks de friandises et de litière
|
||||
|
||||
- name: revision-routine-soins-animaux
|
||||
date: 2026-05-01
|
||||
notes: Revue de la routine de soins et des besoins matériels des chats
|
||||
|
|
@ -1,298 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from pathlib import Path
|
||||
import re
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
INPUT_FILE = Path("domains.yaml")
|
||||
OUTPUT_DIR = Path("icinga/services")
|
||||
SERVICEGROUPS_DIR = Path("icinga/servicegroups")
|
||||
SERVICEGROUPS_FILE = SERVICEGROUPS_DIR / "life-noc.conf"
|
||||
HOST_NAME = "life-noc"
|
||||
SERVICE_TEMPLATE = "service_echeance"
|
||||
PROBE_TEMPLATE = "service_life_noc_probe"
|
||||
DEFAULT_MOCK_STATE = "OK"
|
||||
DEFAULT_MOCK_MESSAGE = "Sous contrôle"
|
||||
|
||||
|
||||
def slugify(value: str) -> str:
|
||||
value = value.strip().lower()
|
||||
replacements = {
|
||||
"à": "a", "â": "a", "ä": "a",
|
||||
"ç": "c",
|
||||
"é": "e", "è": "e", "ê": "e", "ë": "e",
|
||||
"î": "i", "ï": "i",
|
||||
"ô": "o", "ö": "o",
|
||||
"ù": "u", "û": "u", "ü": "u",
|
||||
"ÿ": "y",
|
||||
"œ": "oe",
|
||||
"æ": "ae",
|
||||
"'": "",
|
||||
"’": "",
|
||||
}
|
||||
for old, new in replacements.items():
|
||||
value = value.replace(old, new)
|
||||
value = re.sub(r"[^a-z0-9\-]+", "-", value)
|
||||
value = re.sub(r"-{2,}", "-", value)
|
||||
return value.strip("-")
|
||||
|
||||
|
||||
def aliasify(value: str) -> str:
|
||||
value = value.strip().upper()
|
||||
replacements = {
|
||||
"À": "A", "Â": "A", "Ä": "A",
|
||||
"Ç": "C",
|
||||
"É": "E", "È": "E", "Ê": "E", "Ë": "E",
|
||||
"Î": "I", "Ï": "I",
|
||||
"Ô": "O", "Ö": "O",
|
||||
"Ù": "U", "Û": "U", "Ü": "U",
|
||||
"Ÿ": "Y",
|
||||
"Œ": "OE",
|
||||
"Æ": "AE",
|
||||
"'": "",
|
||||
"’": "",
|
||||
}
|
||||
for old, new in replacements.items():
|
||||
value = value.replace(old, new)
|
||||
value = re.sub(r"[^A-Z0-9\-]+", "-", value)
|
||||
value = re.sub(r"-{2,}", "-", value)
|
||||
return value.strip("-")
|
||||
|
||||
|
||||
def icinga_escape(value: str) -> str:
|
||||
return value.replace("\\", "\\\\").replace('"', '\\"')
|
||||
|
||||
|
||||
def normalize_mock_state(value: str) -> str:
|
||||
state = str(value).strip().upper()
|
||||
allowed = {"OK", "WARNING", "CRITICAL"}
|
||||
if state not in allowed:
|
||||
raise ValueError(
|
||||
f"mock_state invalide: {value}. Valeurs permises: {', '.join(sorted(allowed))}"
|
||||
)
|
||||
return state
|
||||
|
||||
|
||||
def render_mock_service(domain: str, group_name: str, item: dict) -> str:
|
||||
name = item["name"].strip()
|
||||
date = str(item["date"]).strip()
|
||||
notes = item.get("notes", "").strip()
|
||||
notes_url = item.get("notes_url", "").strip()
|
||||
action_url = item.get("action_url", "").strip()
|
||||
mock_state = normalize_mock_state(item.get("mock_state", DEFAULT_MOCK_STATE))
|
||||
mock_message = item.get("mock_message", DEFAULT_MOCK_MESSAGE).strip() or DEFAULT_MOCK_MESSAGE
|
||||
|
||||
service_name = f"{domain}-{name}"
|
||||
|
||||
lines = [
|
||||
f'apply Service "{icinga_escape(service_name)}" {{',
|
||||
f' import "{SERVICE_TEMPLATE}"',
|
||||
f' vars.date_echeance = "{icinga_escape(date)}"',
|
||||
f' vars.mock_state = "{icinga_escape(mock_state)}"',
|
||||
f' vars.mock_message = "{icinga_escape(mock_message)}"',
|
||||
f' groups = [ "{icinga_escape(group_name)}" ]',
|
||||
]
|
||||
|
||||
if notes:
|
||||
lines.append(f' notes = "{icinga_escape(notes)}"')
|
||||
if notes_url:
|
||||
lines.append(f' notes_url = "{icinga_escape(notes_url)}"')
|
||||
if action_url:
|
||||
lines.append(f' action_url = "{icinga_escape(action_url)}"')
|
||||
|
||||
lines.append(f' assign where host.name == "{HOST_NAME}"')
|
||||
lines.append("}")
|
||||
lines.append("")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def render_probe_service(domain: str, group_name: str, item: dict) -> str:
|
||||
name = item["name"].strip()
|
||||
notes = item.get("notes", "").strip()
|
||||
notes_url = item.get("notes_url", "").strip()
|
||||
action_url = item.get("action_url", "").strip()
|
||||
probe = item["probe"]
|
||||
|
||||
probe_type = str(probe["type"]).strip()
|
||||
source = probe["source"]
|
||||
metric = probe["metric"]
|
||||
thresholds = probe["thresholds"]
|
||||
policy = probe.get("policy", {})
|
||||
|
||||
service_name = f"{domain}-{name}"
|
||||
|
||||
lines = [
|
||||
f'apply Service "{icinga_escape(service_name)}" {{',
|
||||
f' import "{PROBE_TEMPLATE}"',
|
||||
f' vars.life_noc_probe_type = "{icinga_escape(probe_type)}"',
|
||||
f' vars.life_noc_source_type = "{icinga_escape(str(source["type"]).strip())}"',
|
||||
f' vars.life_noc_source_value = "{icinga_escape(str(source.get("value", "")).strip())}"',
|
||||
f' vars.life_noc_inputs_file = "{icinga_escape(str(source.get("inputs_file", "")).strip())}"',
|
||||
f' vars.life_noc_item_key = "{icinga_escape(str(source.get("item_key", name)).strip())}"',
|
||||
f' vars.life_noc_metric_unit = "{icinga_escape(str(metric["unit"]).strip())}"',
|
||||
f' vars.life_noc_label = "{icinga_escape(name)}"',
|
||||
f' groups = [ "{icinga_escape(group_name)}" ]',
|
||||
]
|
||||
|
||||
if "unknown_lt" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_unknown_lt = "{icinga_escape(str(thresholds["unknown_lt"]))}"')
|
||||
if "ok_gte" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_ok_gte = "{icinga_escape(str(thresholds["ok_gte"]))}"')
|
||||
if "warning_gte" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_warning_gte = "{icinga_escape(str(thresholds["warning_gte"]))}"')
|
||||
if "critical_gte" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_critical_gte = "{icinga_escape(str(thresholds["critical_gte"]))}"')
|
||||
|
||||
on_error = str(policy.get("on_error", "critical")).strip()
|
||||
lines.append(f' vars.life_noc_on_error = "{icinga_escape(on_error)}"')
|
||||
|
||||
if notes:
|
||||
lines.append(f' notes = "{icinga_escape(notes)}"')
|
||||
if notes_url:
|
||||
lines.append(f' notes_url = "{icinga_escape(notes_url)}"')
|
||||
if action_url:
|
||||
lines.append(f' action_url = "{icinga_escape(action_url)}"')
|
||||
|
||||
lines.append(f' assign where host.name == "{HOST_NAME}"')
|
||||
lines.append("}")
|
||||
lines.append("")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def validate_probe(item: dict) -> None:
|
||||
probe = item["probe"]
|
||||
if not isinstance(probe, dict):
|
||||
raise ValueError("probe doit être un objet")
|
||||
|
||||
if str(probe.get("type", "")).strip() != "elapsed_time":
|
||||
raise ValueError("seul probe.type=elapsed_time est supporté en v1")
|
||||
|
||||
source = probe.get("source")
|
||||
if not isinstance(source, dict):
|
||||
raise ValueError("probe.source doit être un objet")
|
||||
if str(source.get("type", "")).strip() != "manual_date":
|
||||
raise ValueError("seul probe.source.type=manual_date est supporté en v1")
|
||||
|
||||
has_inline_value = "value" in source
|
||||
has_store_ref = "inputs_file" in source and "item_key" in source
|
||||
|
||||
if not has_inline_value and not has_store_ref:
|
||||
raise ValueError("probe.source.value ou probe.source.inputs_file + item_key requis")
|
||||
|
||||
metric = probe.get("metric")
|
||||
if not isinstance(metric, dict):
|
||||
raise ValueError("probe.metric doit être un objet")
|
||||
if str(metric.get("unit", "")).strip() != "days":
|
||||
raise ValueError("seul probe.metric.unit=days est supporté en v1")
|
||||
|
||||
thresholds = probe.get("thresholds")
|
||||
if not isinstance(thresholds, dict):
|
||||
raise ValueError("probe.thresholds doit être un objet")
|
||||
|
||||
|
||||
def render_servicegroup(group_name: str) -> str:
|
||||
return "\n".join([
|
||||
f'object ServiceGroup "{icinga_escape(group_name)}" {{',
|
||||
f' display_name = "{icinga_escape(group_name)}"',
|
||||
"}",
|
||||
"",
|
||||
])
|
||||
|
||||
|
||||
def main() -> int:
|
||||
if not INPUT_FILE.exists():
|
||||
print(f"Erreur: fichier introuvable: {INPUT_FILE}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
with INPUT_FILE.open("r", encoding="utf-8") as f:
|
||||
data = yaml.safe_load(f)
|
||||
|
||||
if not isinstance(data, dict) or "domains" not in data:
|
||||
print("Erreur: le YAML doit contenir une clé racine 'domains'.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
domains = data["domains"]
|
||||
if not isinstance(domains, dict):
|
||||
print("Erreur: 'domains' doit être un objet YAML.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
||||
SERVICEGROUPS_DIR.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
for existing_conf in OUTPUT_DIR.glob("*.conf"):
|
||||
existing_conf.unlink()
|
||||
|
||||
if SERVICEGROUPS_FILE.exists():
|
||||
SERVICEGROUPS_FILE.unlink()
|
||||
|
||||
generated_files = []
|
||||
servicegroup_content = [
|
||||
"/*",
|
||||
" AUTO-GENERATED FILE - SERVICE GROUPS",
|
||||
" Ne pas modifier manuellement.",
|
||||
" Source: domains.yaml",
|
||||
"*/",
|
||||
"",
|
||||
]
|
||||
|
||||
for raw_domain, services in domains.items():
|
||||
domain = slugify(str(raw_domain))
|
||||
group_name = aliasify(str(raw_domain))
|
||||
|
||||
if not isinstance(services, list):
|
||||
print(f"Erreur: le domaine '{raw_domain}' doit contenir une liste.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
output_file = OUTPUT_DIR / f"{domain}.conf"
|
||||
content = [
|
||||
"/*",
|
||||
f" AUTO-GENERATED FILE - DOMAIN: {raw_domain}",
|
||||
" Ne pas modifier manuellement.",
|
||||
" Source: domains.yaml",
|
||||
"*/",
|
||||
"",
|
||||
]
|
||||
|
||||
servicegroup_content.append(render_servicegroup(group_name))
|
||||
|
||||
for idx, item in enumerate(services, start=1):
|
||||
if not isinstance(item, dict):
|
||||
print(f"Erreur: entrée invalide dans '{raw_domain}' à la position {idx}.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
missing = [key for key in ("name", "date", "notes") if key not in item]
|
||||
if missing:
|
||||
print(
|
||||
f"Erreur: dans le domaine '{raw_domain}', entrée {idx}, champs manquants: {', '.join(missing)}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
return 1
|
||||
|
||||
try:
|
||||
if "probe" in item:
|
||||
validate_probe(item)
|
||||
content.append(render_probe_service(domain, group_name, item))
|
||||
else:
|
||||
content.append(render_mock_service(domain, group_name, item))
|
||||
except ValueError as exc:
|
||||
print(f"Erreur dans '{raw_domain}', entrée {idx}: {exc}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
output_file.write_text("\n".join(content).rstrip() + "\n", encoding="utf-8")
|
||||
generated_files.append(str(output_file))
|
||||
|
||||
SERVICEGROUPS_FILE.write_text("\n".join(servicegroup_content).rstrip() + "\n", encoding="utf-8")
|
||||
generated_files.append(str(SERVICEGROUPS_FILE))
|
||||
|
||||
print("Fichiers générés :")
|
||||
for file_path in generated_files:
|
||||
print(f" - {file_path}")
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
|
|
@ -1,768 +0,0 @@
|
|||
domains:
|
||||
|
||||
revue:
|
||||
- name: revue-quotidienne-life-noc
|
||||
date: "2026-03-13"
|
||||
notes: Vérifier le tableau de bord Life-NOC
|
||||
probe:
|
||||
type: elapsed_time
|
||||
source:
|
||||
type: manual_date
|
||||
inputs_file: "/opt/life-noc/data/inputs/revue.yaml"
|
||||
item_key: "revue-quotidienne-life-noc"
|
||||
metric:
|
||||
unit: days
|
||||
thresholds:
|
||||
unknown_lt: 1
|
||||
ok_gte: 1
|
||||
warning_gte: 2
|
||||
critical_gte: 3
|
||||
policy:
|
||||
on_error: critical
|
||||
|
||||
- name: revue-hebdomadaire-priorites
|
||||
date: "2026-03-10"
|
||||
notes: Revoir les priorités de la semaine
|
||||
probe:
|
||||
type: elapsed_time
|
||||
source:
|
||||
type: manual_date
|
||||
inputs_file: "/opt/life-noc/data/inputs/revue.yaml"
|
||||
item_key: "revue-hebdomadaire-priorites"
|
||||
metric:
|
||||
unit: days
|
||||
thresholds:
|
||||
unknown_lt: 5
|
||||
ok_gte: 5
|
||||
warning_gte: 7
|
||||
critical_gte: 10
|
||||
policy:
|
||||
on_error: critical
|
||||
|
||||
- name: revue-mensuelle-systeme-vie
|
||||
date: 2026-04-01
|
||||
notes: Revue mensuelle de l'ensemble du système Life-NOC
|
||||
|
||||
- name: revue-trimestrielle-orientation
|
||||
date: 2026-06-30
|
||||
notes: Revue trimestrielle des orientations de vie et de Chezlepro
|
||||
|
||||
focus:
|
||||
- name: entretien-processus-focus
|
||||
date: 2026-03-09
|
||||
notes: Vérifier que les cartouches FOCUS sont à jour
|
||||
|
||||
- name: nettoyage-inbox-mentale
|
||||
date: 2026-03-09
|
||||
notes: Vider et clarifier les éléments capturés hors système
|
||||
|
||||
- name: revue-limitation-engagements
|
||||
date: 2026-03-31
|
||||
notes: Vérifier que les engagements actifs demeurent réalistes
|
||||
|
||||
finances-personnelles:
|
||||
- name: revision-comptes-bancaires
|
||||
date: 2026-04-01
|
||||
notes: Révision mensuelle des comptes bancaires personnels
|
||||
|
||||
- name: verification-cartes-credit
|
||||
date: 2026-04-01
|
||||
notes: Vérification des soldes et transactions des cartes de crédit
|
||||
|
||||
- name: paiement-cartes-credit
|
||||
date: 2026-04-15
|
||||
notes: Paiement des cartes de crédit personnelles
|
||||
|
||||
- name: revision-budget-personnel
|
||||
date: 2026-04-05
|
||||
notes: Révision mensuelle du budget personnel
|
||||
|
||||
- name: verification-prelevements-automatiques
|
||||
date: 2026-04-03
|
||||
notes: Vérification des prélèvements automatiques personnels
|
||||
|
||||
- name: verification-placements
|
||||
date: 2026-06-30
|
||||
notes: Vérification périodique des placements et comptes enregistrés
|
||||
|
||||
- name: verification-cotisations-reer
|
||||
date: 2026-02-28
|
||||
notes: Vérification des cotisations REER
|
||||
|
||||
- name: verification-celi
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'espace CELI et de son utilisation
|
||||
|
||||
- name: preparation-dossier-financier-annuel
|
||||
date: 2026-01-31
|
||||
notes: Préparer le dossier financier annuel personnel
|
||||
|
||||
fiscalite-personnelle:
|
||||
- name: preparation-documents-impots
|
||||
date: 2026-03-15
|
||||
notes: Rassembler tous les documents fiscaux personnels
|
||||
|
||||
- name: production-impots-federal
|
||||
date: 2026-04-30
|
||||
notes: Produire la déclaration de revenus fédérale
|
||||
|
||||
- name: production-impots-quebec
|
||||
date: 2026-04-30
|
||||
notes: Produire la déclaration de revenus Québec
|
||||
|
||||
- name: paiement-solde-impots
|
||||
date: 2026-04-30
|
||||
notes: Payer tout solde d'impôt exigible
|
||||
|
||||
- name: verification-avis-cotisation
|
||||
date: 2026-05-31
|
||||
notes: Vérifier les avis de cotisation ARC et Revenu Québec
|
||||
|
||||
- name: archivage-documents-fiscaux
|
||||
date: 2026-06-15
|
||||
notes: Archiver les documents fiscaux personnels
|
||||
|
||||
- name: verification-acomptes-provisionnels
|
||||
date: 2026-03-15
|
||||
notes: Vérifier si des acomptes provisionnels sont requis
|
||||
|
||||
obligations-legales-personnelles:
|
||||
- name: verification-testament
|
||||
date: 2026-07-01
|
||||
notes: Vérifier la pertinence et l'actualité du testament
|
||||
|
||||
- name: verification-mandat-inaptitude
|
||||
date: 2026-07-01
|
||||
notes: Vérifier le mandat de protection et documents connexes
|
||||
|
||||
- name: verification-directives-medicales
|
||||
date: 2026-07-15
|
||||
notes: Vérifier les directives médicales anticipées
|
||||
|
||||
- name: verification-papiers-identite
|
||||
date: 2026-06-01
|
||||
notes: Vérifier l'expiration des papiers d'identité
|
||||
|
||||
- name: renouvellement-permis-conduire
|
||||
date: 2027-01-01
|
||||
notes: Vérifier le renouvellement du permis de conduire
|
||||
|
||||
- name: verification-carte-assurance-maladie
|
||||
date: 2026-10-01
|
||||
notes: Vérifier l'expiration de la carte d'assurance maladie
|
||||
|
||||
- name: verification-passeport
|
||||
date: 2026-06-01
|
||||
notes: Vérifier l'expiration du passeport
|
||||
|
||||
maison:
|
||||
- name: remplacement-filtre-fournaise
|
||||
date: 2026-04-01
|
||||
notes: Remplacer le filtre de la fournaise
|
||||
|
||||
- name: inspection-fournaise
|
||||
date: 2026-09-15
|
||||
notes: Inspection générale de la fournaise avant saison froide
|
||||
|
||||
- name: inspection-thermopompe
|
||||
date: 2026-05-01
|
||||
notes: Inspection et entretien de la thermopompe
|
||||
|
||||
- name: nettoyage-unites-exterieures
|
||||
date: 2026-05-15
|
||||
notes: Nettoyer les unités extérieures et vérifier le dégagement
|
||||
|
||||
- name: inspection-toiture
|
||||
date: 2026-10-01
|
||||
notes: Inspection annuelle de la toiture
|
||||
|
||||
- name: inspection-gouttieres
|
||||
date: 2026-11-01
|
||||
notes: Inspection et nettoyage des gouttières
|
||||
|
||||
- name: inspection-fondation
|
||||
date: 2026-06-01
|
||||
notes: Inspection de la fondation et des fissures
|
||||
|
||||
- name: verification-drainage-terrain
|
||||
date: 2026-05-15
|
||||
notes: Vérification du drainage autour de la maison
|
||||
|
||||
- name: test-detecteurs-fumee
|
||||
date: 2026-04-01
|
||||
notes: Test des détecteurs de fumée
|
||||
|
||||
- name: test-detecteurs-co
|
||||
date: 2026-04-01
|
||||
notes: Test des détecteurs de monoxyde de carbone
|
||||
|
||||
- name: remplacement-piles-detecteurs
|
||||
date: 2026-10-01
|
||||
notes: Remplacement préventif des piles des détecteurs
|
||||
|
||||
- name: verification-plomberie-visible
|
||||
date: 2026-05-01
|
||||
notes: Vérification visuelle de la plomberie accessible
|
||||
|
||||
- name: inspection-sump-pump
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la pompe de puisard si applicable
|
||||
|
||||
- name: verification-calfetrage
|
||||
date: 2026-10-15
|
||||
notes: Vérification du calfeutrage portes et fenêtres
|
||||
|
||||
- name: inspection-portes-garage
|
||||
date: 2026-05-15
|
||||
notes: Vérification mécanique et sécurité des portes de garage
|
||||
|
||||
- name: verification-extincteurs
|
||||
date: 2026-06-01
|
||||
notes: Vérification des extincteurs
|
||||
|
||||
garage-et-rangement:
|
||||
- name: inspection-rangement-plafond
|
||||
date: 2026-05-01
|
||||
notes: Vérification des supports suspendus au plafond du garage
|
||||
|
||||
- name: revue-inventaire-garage
|
||||
date: 2026-04-15
|
||||
notes: Revue de l'inventaire et de l'ordre du garage
|
||||
|
||||
- name: verification-rouille-outillage
|
||||
date: 2026-05-15
|
||||
notes: Vérification de la corrosion sur les outils et équipements
|
||||
|
||||
- name: inspection-securite-garage
|
||||
date: 2026-06-01
|
||||
notes: Vérification des conditions de sécurité du garage
|
||||
|
||||
- name: rotation-stockage-bacs
|
||||
date: 2026-05-15
|
||||
notes: Revue des contenus de bacs de rangement
|
||||
|
||||
energie:
|
||||
- name: inspection-batteries-lifepo4
|
||||
date: 2026-04-01
|
||||
notes: Inspection physique et logique des batteries LiFePO4
|
||||
|
||||
- name: verification-tension-batteries
|
||||
date: 2026-03-15
|
||||
notes: Vérification des tensions et cohérence des batteries
|
||||
|
||||
- name: verification-smartshunt
|
||||
date: 2026-03-15
|
||||
notes: Vérification SmartShunt et cohérence du monitoring
|
||||
|
||||
- name: verification-cerbo-gx
|
||||
date: 2026-03-15
|
||||
notes: Vérification Cerbo GX et remontée des données
|
||||
|
||||
- name: verification-can-rs485
|
||||
date: 2026-04-15
|
||||
notes: Vérification des communications CAN ou RS485
|
||||
|
||||
- name: inspection-cablage-energie
|
||||
date: 2026-05-01
|
||||
notes: Inspection du câblage et des connexions énergétiques
|
||||
|
||||
- name: verification-busbars
|
||||
date: 2026-05-01
|
||||
notes: Vérification du serrage, corrosion et échauffement des busbars
|
||||
|
||||
- name: verification-parametres-charge
|
||||
date: 2026-04-01
|
||||
notes: Vérification des paramètres de charge et float
|
||||
|
||||
- name: test-charge-batteries
|
||||
date: 2026-04-15
|
||||
notes: Test de comportement en charge des batteries
|
||||
|
||||
- name: test-comportement-onduleur
|
||||
date: 2026-05-01
|
||||
notes: Vérifier le comportement du Multiplus sous charge légère
|
||||
|
||||
- name: verification-journal-evenements-victron
|
||||
date: 2026-04-15
|
||||
notes: Vérification des événements et anomalies Victron
|
||||
|
||||
resilience:
|
||||
- name: test-generatrice-propane
|
||||
date: 2026-04-01
|
||||
notes: Test mensuel de la génératrice au propane
|
||||
|
||||
- name: verification-carburant-generatrice
|
||||
date: 2026-04-01
|
||||
notes: Vérification de l'approvisionnement propane lié à la génératrice
|
||||
|
||||
- name: verification-procedure-bascule
|
||||
date: 2026-04-15
|
||||
notes: Réviser la procédure de bascule en mode secours
|
||||
|
||||
- name: verification-stock-lampes-piles
|
||||
date: 2026-05-01
|
||||
notes: Vérification des lampes, piles et éclairage d'urgence
|
||||
|
||||
- name: verification-trousses-urgence
|
||||
date: 2026-05-15
|
||||
notes: Vérification des trousses d'urgence
|
||||
|
||||
- name: revision-plan-urgence
|
||||
date: 2026-06-01
|
||||
notes: Réviser le plan d'urgence domestique
|
||||
|
||||
- name: test-autonomie-base
|
||||
date: 2026-06-15
|
||||
notes: Vérifier l'autonomie énergétique minimale attendue
|
||||
|
||||
- name: verification-moyens-cuisson-secours
|
||||
date: 2026-05-15
|
||||
notes: Vérification des moyens de cuisson de secours
|
||||
|
||||
stock-alimentaire:
|
||||
- name: rotation-nourriture-seche
|
||||
date: 2026-04-01
|
||||
notes: Rotation des stocks de nourriture sèche
|
||||
|
||||
- name: verification-reserve-eau
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la réserve d'eau potable
|
||||
|
||||
- name: verification-mylar-absorbeurs
|
||||
date: 2026-05-01
|
||||
notes: Vérifier l'intégrité des emballages Mylar et absorbeurs
|
||||
|
||||
- name: revue-inventaire-conserves
|
||||
date: 2026-04-15
|
||||
notes: Revue des conserves et dates de rotation
|
||||
|
||||
- name: revue-inventaire-farine-riz-pates
|
||||
date: 2026-04-01
|
||||
notes: Vérification des gros stocks alimentaires de base
|
||||
|
||||
- name: verification-bacs-legumes-racines
|
||||
date: 2026-10-01
|
||||
notes: Vérification des bacs de stockage de légumes racines
|
||||
|
||||
- name: revue-supplements-vitamines
|
||||
date: 2026-05-01
|
||||
notes: Vérification du stock de suppléments et dates utiles
|
||||
|
||||
sante:
|
||||
- name: verification-trousse-premiers-soins
|
||||
date: 2026-04-01
|
||||
notes: Vérification de la trousse de premiers soins
|
||||
|
||||
- name: verification-expiration-medicaments
|
||||
date: 2026-05-01
|
||||
notes: Vérification des dates d'expiration des médicaments
|
||||
|
||||
- name: revision-rendez-vous-medicaux
|
||||
date: 2026-04-15
|
||||
notes: Revoir les rendez-vous médicaux requis
|
||||
|
||||
- name: verification-lunettes-prescriptions
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les prescriptions et besoins de renouvellement
|
||||
|
||||
- name: verification-dossier-sante
|
||||
date: 2026-06-15
|
||||
notes: Vérifier l'ordre et l'accessibilité des documents de santé
|
||||
|
||||
voiture:
|
||||
- name: verification-huile-moteur
|
||||
date: 2026-04-01
|
||||
notes: Vérification de l'huile moteur
|
||||
|
||||
- name: inspection-freins
|
||||
date: 2026-05-01
|
||||
notes: Inspection des freins
|
||||
|
||||
- name: verification-pneus
|
||||
date: 2026-04-15
|
||||
notes: Vérification usure, pression et permutation des pneus
|
||||
|
||||
- name: ajustement-valves
|
||||
date: 2026-08-01
|
||||
notes: Vérification et ajustement des valves Honda Accord
|
||||
|
||||
- name: verification-timing-belt
|
||||
date: 2027-01-01
|
||||
notes: Vérification de la courroie de distribution et pompe à eau
|
||||
|
||||
- name: verification-batterie-voiture
|
||||
date: 2026-10-01
|
||||
notes: Vérification de l'état de la batterie automobile
|
||||
|
||||
- name: verification-balais-essuie-glace
|
||||
date: 2026-05-01
|
||||
notes: Vérification des essuie-glaces
|
||||
|
||||
- name: verification-liquides
|
||||
date: 2026-04-15
|
||||
notes: Vérification des liquides de la voiture
|
||||
|
||||
- name: verification-eclairage
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'éclairage et des phares
|
||||
|
||||
- name: verification-immatriculation-assurance
|
||||
date: 2026-06-01
|
||||
notes: Vérification papiers d'assurance et immatriculation
|
||||
|
||||
jardin:
|
||||
- name: inspection-vignes
|
||||
date: 2026-04-15
|
||||
notes: Inspection et entretien des vignes
|
||||
|
||||
- name: entretien-bleuetiers
|
||||
date: 2026-05-01
|
||||
notes: Entretien des bleuetiers
|
||||
|
||||
- name: entretien-framboisiers
|
||||
date: 2026-06-01
|
||||
notes: Entretien des framboisiers
|
||||
|
||||
- name: inspection-kiwis-nordiques
|
||||
date: 2026-05-15
|
||||
notes: Vérification des kiwis nordiques
|
||||
|
||||
- name: entretien-rhubarbe
|
||||
date: 2026-05-15
|
||||
notes: Entretien de la rhubarbe
|
||||
|
||||
- name: inspection-groseillier
|
||||
date: 2026-05-15
|
||||
notes: Inspection du groseillier
|
||||
|
||||
- name: inspection-muriers
|
||||
date: 2026-05-15
|
||||
notes: Inspection des mûriers
|
||||
|
||||
- name: entretien-houblon
|
||||
date: 2026-06-01
|
||||
notes: Vérification et entretien du houblon
|
||||
|
||||
- name: revision-pharmacopée-jardin
|
||||
date: 2026-05-01
|
||||
notes: Vérification du stock de soins pour végétaux
|
||||
|
||||
- name: revision-armoire-produits-jardin
|
||||
date: 2026-05-01
|
||||
notes: Vérification et ordre de l'armoire des produits pour végétaux
|
||||
|
||||
outils-et-equipements:
|
||||
- name: entretien-outils-jardin
|
||||
date: 2026-04-15
|
||||
notes: Nettoyage et entretien des outils de jardin
|
||||
|
||||
- name: inspection-outils-electriques
|
||||
date: 2026-05-01
|
||||
notes: Vérification des outils électriques
|
||||
|
||||
- name: verification-rallonges-et-connecteurs
|
||||
date: 2026-05-01
|
||||
notes: Vérification des rallonges et connecteurs
|
||||
|
||||
- name: verification-compresseur-et-accessoires
|
||||
date: 2026-05-15
|
||||
notes: Vérification du compresseur et accessoires
|
||||
|
||||
- name: revision-inventaire-outillage
|
||||
date: 2026-06-01
|
||||
notes: Revue de l'inventaire d'outillage
|
||||
|
||||
informatique-personnelle:
|
||||
- name: verification-sauvegardes-personnelles
|
||||
date: 2026-04-01
|
||||
notes: Vérification des sauvegardes personnelles
|
||||
|
||||
- name: nettoyage-stockage-personnel
|
||||
date: 2026-04-15
|
||||
notes: Nettoyage du stockage numérique personnel
|
||||
|
||||
- name: verification-comptes-importants
|
||||
date: 2026-05-01
|
||||
notes: Vérification des comptes numériques personnels importants
|
||||
|
||||
- name: revue-mots-de-passe-personnels
|
||||
date: 2026-06-01
|
||||
notes: Revue des mots de passe personnels critiques
|
||||
|
||||
- name: verification-documents-cloud-personnels
|
||||
date: 2026-05-15
|
||||
notes: Vérifier la cohérence des documents personnels sauvegardés
|
||||
|
||||
infrastructure-chezlepro:
|
||||
- name: verification-proxmox
|
||||
date: 2026-04-01
|
||||
notes: Vérification générale de l'environnement Proxmox
|
||||
|
||||
- name: verification-ceph
|
||||
date: 2026-04-01
|
||||
notes: Vérification générale de l'état Ceph
|
||||
|
||||
- name: test-restauration-backups
|
||||
date: 2026-04-15
|
||||
notes: Test de restauration des sauvegardes
|
||||
|
||||
- name: verification-pbs-truenas
|
||||
date: 2026-05-01
|
||||
notes: Vérification des solutions de sauvegarde et synchronisation
|
||||
|
||||
- name: verification-ups-infrastructure
|
||||
date: 2026-04-15
|
||||
notes: Vérification des UPS de l'infrastructure
|
||||
|
||||
- name: verification-capacite-stockage
|
||||
date: 2026-04-15
|
||||
notes: Vérifier capacité et croissance du stockage
|
||||
|
||||
- name: verification-apt-cacher-ng
|
||||
date: 2026-05-01
|
||||
notes: Vérification du bon fonctionnement d'apt-cacher-ng
|
||||
|
||||
- name: verification-icinga2
|
||||
date: 2026-04-01
|
||||
notes: Vérification de la supervision Icinga2
|
||||
|
||||
- name: verification-keycloak-openldap
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'identité et de l'authentification centralisées
|
||||
|
||||
- name: verification-nextcloud
|
||||
date: 2026-04-15
|
||||
notes: Vérification de l'état Nextcloud
|
||||
|
||||
- name: verification-mailcow
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'infrastructure Mailcow
|
||||
|
||||
- name: verification-openvas
|
||||
date: 2026-05-15
|
||||
notes: Vérification de la plateforme OpenVAS
|
||||
|
||||
- name: verification-journaux-systemes
|
||||
date: 2026-04-15
|
||||
notes: Revue des journaux systèmes critiques
|
||||
|
||||
reseau-chezlepro:
|
||||
- name: verification-firewalls
|
||||
date: 2026-04-01
|
||||
notes: Vérification des firewalls
|
||||
|
||||
- name: verification-vpn-openvpn
|
||||
date: 2026-04-15
|
||||
notes: Vérification des tunnels OpenVPN
|
||||
|
||||
- name: verification-crl-certificats
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la CRL et des certificats
|
||||
|
||||
- name: verification-switches
|
||||
date: 2026-05-01
|
||||
notes: Vérification des switches et uplinks
|
||||
|
||||
- name: verification-vlans-segmentation
|
||||
date: 2026-05-01
|
||||
notes: Vérification de la segmentation réseau
|
||||
|
||||
- name: verification-dns
|
||||
date: 2026-05-15
|
||||
notes: Vérification DNS interne et externe
|
||||
|
||||
- name: verification-dynamic-dns
|
||||
date: 2026-05-15
|
||||
notes: Vérification du DNS dynamique si utilisé
|
||||
|
||||
- name: audit-regles-firewall
|
||||
date: 2026-06-01
|
||||
notes: Audit périodique des règles de firewall
|
||||
|
||||
- name: verification-geoblocking
|
||||
date: 2026-05-15
|
||||
notes: Vérifier le geoblocking et son effet attendu
|
||||
|
||||
- name: verification-certificats-publics
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les expirations de certificats publics
|
||||
|
||||
securite-chezlepro:
|
||||
- name: verification-mises-a-jour-securite
|
||||
date: 2026-04-01
|
||||
notes: Vérification des mises à jour de sécurité
|
||||
|
||||
- name: audit-comptes-acces
|
||||
date: 2026-05-01
|
||||
notes: Audit des comptes et accès privilégiés
|
||||
|
||||
- name: verification-ids-snort
|
||||
date: 2026-05-01
|
||||
notes: Vérification des IDS et de leur état
|
||||
|
||||
- name: revue-pki-privee
|
||||
date: 2026-05-15
|
||||
notes: Revue de la PKI privée et des autorités intermédiaires
|
||||
|
||||
- name: revue-politiques-securite
|
||||
date: 2026-06-01
|
||||
notes: Revue des politiques et pratiques de sécurité numérique
|
||||
|
||||
- name: verification-sauvegardes-configuration
|
||||
date: 2026-04-15
|
||||
notes: Vérifier les sauvegardes des configurations critiques
|
||||
|
||||
exploitation-chezlepro:
|
||||
- name: revision-playbooks-ansible
|
||||
date: 2026-05-01
|
||||
notes: Revue des playbooks Ansible
|
||||
|
||||
- name: verification-inventaires-ansible
|
||||
date: 2026-05-01
|
||||
notes: Vérification des inventaires Ansible
|
||||
|
||||
- name: revision-documentation-technique
|
||||
date: 2026-05-15
|
||||
notes: Revue de la documentation technique Chezlepro
|
||||
|
||||
- name: verification-procedures-reprise
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les procédures de reprise et restauration
|
||||
|
||||
- name: revue-capacite-ressources
|
||||
date: 2026-06-15
|
||||
notes: Revue CPU RAM stockage et charge de l'infrastructure
|
||||
|
||||
- name: verification-jobs-automatises
|
||||
date: 2026-05-15
|
||||
notes: Vérification des jobs automatisés et scripts périodiques
|
||||
|
||||
obligations-chezlepro:
|
||||
- name: verification-registraire-entreprise
|
||||
date: 2026-06-15
|
||||
notes: Vérifier les obligations au Registraire des entreprises
|
||||
|
||||
- name: verification-declarations-taxes
|
||||
date: 2026-04-30
|
||||
notes: Vérifier les obligations de taxes de l'entreprise si applicables
|
||||
|
||||
- name: verification-dossier-comptable-entreprise
|
||||
date: 2026-04-15
|
||||
notes: Vérifier l'ordre du dossier comptable Chezlepro
|
||||
|
||||
- name: verification-facturation-clients
|
||||
date: 2026-04-10
|
||||
notes: Vérifier la facturation et son suivi
|
||||
|
||||
- name: verification-paiements-fournisseurs
|
||||
date: 2026-04-10
|
||||
notes: Vérifier les paiements fournisseurs
|
||||
|
||||
- name: verification-contrats-ententes
|
||||
date: 2026-05-15
|
||||
notes: Vérifier contrats, ententes et obligations associées
|
||||
|
||||
- name: verification-assurances-entreprise
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les assurances de l'entreprise
|
||||
|
||||
- name: archivage-documents-entreprise
|
||||
date: 2026-05-31
|
||||
notes: Archiver les documents administratifs et financiers de l'entreprise
|
||||
|
||||
actifs-chezlepro:
|
||||
- name: revision-inventaire-materiel
|
||||
date: 2026-05-01
|
||||
notes: Revoir l'inventaire du matériel de Chezlepro
|
||||
|
||||
- name: verification-amortissables
|
||||
date: 2026-06-01
|
||||
notes: Vérifier le registre des biens amortissables
|
||||
|
||||
- name: verification-serveurs-et-composants
|
||||
date: 2026-05-15
|
||||
notes: Vérifier l'état des serveurs et composants matériels
|
||||
|
||||
- name: verification-reserve-pieces
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les pièces de rechange critiques
|
||||
|
||||
- name: revision-actifs-transferts
|
||||
date: 2026-06-15
|
||||
notes: Réviser les actifs transférés ou à transférer à l'entreprise
|
||||
|
||||
projets:
|
||||
- name: revision-life-noc
|
||||
date: 2026-04-01
|
||||
notes: Révision du projet Life-NOC
|
||||
|
||||
- name: revision-alliance-boreale
|
||||
date: 2026-04-15
|
||||
notes: Révision du projet Alliance Boréale
|
||||
|
||||
- name: revision-erplibre
|
||||
date: 2026-05-01
|
||||
notes: Révision du projet ERPLibre
|
||||
|
||||
- name: revision-semence-numerique
|
||||
date: 2026-05-15
|
||||
notes: Révision du projet semence numérique
|
||||
|
||||
- name: revision-ortrux-1
|
||||
date: 2026-05-15
|
||||
notes: Révision du système Ortrux-1
|
||||
|
||||
- name: revision-district16
|
||||
date: 2026-05-01
|
||||
notes: Révision du projet DISTRICT16
|
||||
|
||||
communaute:
|
||||
- name: verification-outils-aa
|
||||
date: 2026-05-01
|
||||
notes: Vérifier les outils numériques liés aux activités communautaires
|
||||
|
||||
- name: verification-espace-87-16
|
||||
date: 2026-05-01
|
||||
notes: Vérifier l'espace Nextcloud du district
|
||||
|
||||
- name: verification-salles-visio-groupes
|
||||
date: 2026-05-15
|
||||
notes: Vérifier les salles de visioconférence des groupes
|
||||
|
||||
- name: verification-depots-rapports-rsg
|
||||
date: 2026-05-15
|
||||
notes: Vérifier les dépôts de rapports RSG
|
||||
|
||||
- name: revision-outils-communication-communaute
|
||||
date: 2026-06-01
|
||||
notes: Réviser les moyens de communication communautaires
|
||||
|
||||
documentation:
|
||||
- name: revue-docs-personnelles-importantes
|
||||
date: 2026-05-15
|
||||
notes: Revoir l'organisation des documents personnels importants
|
||||
|
||||
- name: revue-wiki-technique
|
||||
date: 2026-05-15
|
||||
notes: Revoir le wiki technique et sa cohérence
|
||||
|
||||
- name: revue-base-connaissances
|
||||
date: 2026-06-01
|
||||
notes: Revoir la base de connaissances globale
|
||||
|
||||
- name: verification-sauvegarde-docs-cles
|
||||
date: 2026-05-15
|
||||
notes: Vérifier la sauvegarde des documents clés
|
||||
|
||||
animaux:
|
||||
- name: verification-stock-nourriture-chats
|
||||
date: 2026-04-15
|
||||
notes: Vérification du stock de nourriture pour chats
|
||||
|
||||
- name: verification-friandises-et-litiere
|
||||
date: 2026-04-15
|
||||
notes: Vérification des stocks de friandises et de litière
|
||||
|
||||
- name: revision-routine-soins-animaux
|
||||
date: 2026-05-01
|
||||
notes: Revue de la routine de soins et des besoins matériels des chats
|
||||
|
|
@ -1,298 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from pathlib import Path
|
||||
import re
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
INPUT_FILE = Path("domains.yaml")
|
||||
OUTPUT_DIR = Path("icinga/services")
|
||||
SERVICEGROUPS_DIR = Path("icinga/servicegroups")
|
||||
SERVICEGROUPS_FILE = SERVICEGROUPS_DIR / "life-noc.conf"
|
||||
HOST_NAME = "life-noc"
|
||||
SERVICE_TEMPLATE = "service_echeance"
|
||||
PROBE_TEMPLATE = "service_life_noc_probe"
|
||||
DEFAULT_MOCK_STATE = "OK"
|
||||
DEFAULT_MOCK_MESSAGE = "Sous contrôle"
|
||||
|
||||
|
||||
def slugify(value: str) -> str:
|
||||
value = value.strip().lower()
|
||||
replacements = {
|
||||
"à": "a", "â": "a", "ä": "a",
|
||||
"ç": "c",
|
||||
"é": "e", "è": "e", "ê": "e", "ë": "e",
|
||||
"î": "i", "ï": "i",
|
||||
"ô": "o", "ö": "o",
|
||||
"ù": "u", "û": "u", "ü": "u",
|
||||
"ÿ": "y",
|
||||
"œ": "oe",
|
||||
"æ": "ae",
|
||||
"'": "",
|
||||
"’": "",
|
||||
}
|
||||
for old, new in replacements.items():
|
||||
value = value.replace(old, new)
|
||||
value = re.sub(r"[^a-z0-9\-]+", "-", value)
|
||||
value = re.sub(r"-{2,}", "-", value)
|
||||
return value.strip("-")
|
||||
|
||||
|
||||
def aliasify(value: str) -> str:
|
||||
value = value.strip().upper()
|
||||
replacements = {
|
||||
"À": "A", "Â": "A", "Ä": "A",
|
||||
"Ç": "C",
|
||||
"É": "E", "È": "E", "Ê": "E", "Ë": "E",
|
||||
"Î": "I", "Ï": "I",
|
||||
"Ô": "O", "Ö": "O",
|
||||
"Ù": "U", "Û": "U", "Ü": "U",
|
||||
"Ÿ": "Y",
|
||||
"Œ": "OE",
|
||||
"Æ": "AE",
|
||||
"'": "",
|
||||
"’": "",
|
||||
}
|
||||
for old, new in replacements.items():
|
||||
value = value.replace(old, new)
|
||||
value = re.sub(r"[^A-Z0-9\-]+", "-", value)
|
||||
value = re.sub(r"-{2,}", "-", value)
|
||||
return value.strip("-")
|
||||
|
||||
|
||||
def icinga_escape(value: str) -> str:
|
||||
return value.replace("\\", "\\\\").replace('"', '\\"')
|
||||
|
||||
|
||||
def normalize_mock_state(value: str) -> str:
|
||||
state = str(value).strip().upper()
|
||||
allowed = {"OK", "WARNING", "CRITICAL"}
|
||||
if state not in allowed:
|
||||
raise ValueError(
|
||||
f"mock_state invalide: {value}. Valeurs permises: {', '.join(sorted(allowed))}"
|
||||
)
|
||||
return state
|
||||
|
||||
|
||||
def render_mock_service(domain: str, group_name: str, item: dict) -> str:
|
||||
name = item["name"].strip()
|
||||
date = str(item["date"]).strip()
|
||||
notes = item.get("notes", "").strip()
|
||||
notes_url = item.get("notes_url", "").strip()
|
||||
action_url = item.get("action_url", "").strip()
|
||||
mock_state = normalize_mock_state(item.get("mock_state", DEFAULT_MOCK_STATE))
|
||||
mock_message = item.get("mock_message", DEFAULT_MOCK_MESSAGE).strip() or DEFAULT_MOCK_MESSAGE
|
||||
|
||||
service_name = f"{domain}-{name}"
|
||||
|
||||
lines = [
|
||||
f'apply Service "{icinga_escape(service_name)}" {{',
|
||||
f' import "{SERVICE_TEMPLATE}"',
|
||||
f' vars.date_echeance = "{icinga_escape(date)}"',
|
||||
f' vars.mock_state = "{icinga_escape(mock_state)}"',
|
||||
f' vars.mock_message = "{icinga_escape(mock_message)}"',
|
||||
f' groups = [ "{icinga_escape(group_name)}" ]',
|
||||
]
|
||||
|
||||
if notes:
|
||||
lines.append(f' notes = "{icinga_escape(notes)}"')
|
||||
if notes_url:
|
||||
lines.append(f' notes_url = "{icinga_escape(notes_url)}"')
|
||||
if action_url:
|
||||
lines.append(f' action_url = "{icinga_escape(action_url)}"')
|
||||
|
||||
lines.append(f' assign where host.name == "{HOST_NAME}"')
|
||||
lines.append("}")
|
||||
lines.append("")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def render_probe_service(domain: str, group_name: str, item: dict) -> str:
|
||||
name = item["name"].strip()
|
||||
notes = item.get("notes", "").strip()
|
||||
notes_url = item.get("notes_url", "").strip()
|
||||
action_url = item.get("action_url", "").strip()
|
||||
probe = item["probe"]
|
||||
|
||||
probe_type = str(probe["type"]).strip()
|
||||
source = probe["source"]
|
||||
metric = probe["metric"]
|
||||
thresholds = probe["thresholds"]
|
||||
policy = probe.get("policy", {})
|
||||
|
||||
service_name = f"{domain}-{name}"
|
||||
|
||||
lines = [
|
||||
f'apply Service "{icinga_escape(service_name)}" {{',
|
||||
f' import "{PROBE_TEMPLATE}"',
|
||||
f' vars.life_noc_probe_type = "{icinga_escape(probe_type)}"',
|
||||
f' vars.life_noc_source_type = "{icinga_escape(str(source["type"]).strip())}"',
|
||||
f' vars.life_noc_source_value = "{icinga_escape(str(source.get("value", "")).strip())}"',
|
||||
f' vars.life_noc_inputs_file = "{icinga_escape(str(source.get("inputs_file", "")).strip())}"',
|
||||
f' vars.life_noc_item_key = "{icinga_escape(str(source.get("item_key", name)).strip())}"',
|
||||
f' vars.life_noc_metric_unit = "{icinga_escape(str(metric["unit"]).strip())}"',
|
||||
f' vars.life_noc_label = "{icinga_escape(name)}"',
|
||||
f' groups = [ "{icinga_escape(group_name)}" ]',
|
||||
]
|
||||
|
||||
if "unknown_lt" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_unknown_lt = "{icinga_escape(str(thresholds["unknown_lt"]))}"')
|
||||
if "ok_gte" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_ok_gte = "{icinga_escape(str(thresholds["ok_gte"]))}"')
|
||||
if "warning_gte" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_warning_gte = "{icinga_escape(str(thresholds["warning_gte"]))}"')
|
||||
if "critical_gte" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_critical_gte = "{icinga_escape(str(thresholds["critical_gte"]))}"')
|
||||
|
||||
on_error = str(policy.get("on_error", "critical")).strip()
|
||||
lines.append(f' vars.life_noc_on_error = "{icinga_escape(on_error)}"')
|
||||
|
||||
if notes:
|
||||
lines.append(f' notes = "{icinga_escape(notes)}"')
|
||||
if notes_url:
|
||||
lines.append(f' notes_url = "{icinga_escape(notes_url)}"')
|
||||
if action_url:
|
||||
lines.append(f' action_url = "{icinga_escape(action_url)}"')
|
||||
|
||||
lines.append(f' assign where host.name == "{HOST_NAME}"')
|
||||
lines.append("}")
|
||||
lines.append("")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def validate_probe(item: dict) -> None:
|
||||
probe = item["probe"]
|
||||
if not isinstance(probe, dict):
|
||||
raise ValueError("probe doit être un objet")
|
||||
|
||||
if str(probe.get("type", "")).strip() != "elapsed_time":
|
||||
raise ValueError("seul probe.type=elapsed_time est supporté en v1")
|
||||
|
||||
source = probe.get("source")
|
||||
if not isinstance(source, dict):
|
||||
raise ValueError("probe.source doit être un objet")
|
||||
if str(source.get("type", "")).strip() != "manual_date":
|
||||
raise ValueError("seul probe.source.type=manual_date est supporté en v1")
|
||||
|
||||
has_inline_value = "value" in source
|
||||
has_store_ref = "inputs_file" in source and "item_key" in source
|
||||
|
||||
if not has_inline_value and not has_store_ref:
|
||||
raise ValueError("probe.source.value ou probe.source.inputs_file + item_key requis")
|
||||
|
||||
metric = probe.get("metric")
|
||||
if not isinstance(metric, dict):
|
||||
raise ValueError("probe.metric doit être un objet")
|
||||
if str(metric.get("unit", "")).strip() != "days":
|
||||
raise ValueError("seul probe.metric.unit=days est supporté en v1")
|
||||
|
||||
thresholds = probe.get("thresholds")
|
||||
if not isinstance(thresholds, dict):
|
||||
raise ValueError("probe.thresholds doit être un objet")
|
||||
|
||||
|
||||
def render_servicegroup(group_name: str) -> str:
|
||||
return "\n".join([
|
||||
f'object ServiceGroup "{icinga_escape(group_name)}" {{',
|
||||
f' display_name = "{icinga_escape(group_name)}"',
|
||||
"}",
|
||||
"",
|
||||
])
|
||||
|
||||
|
||||
def main() -> int:
|
||||
if not INPUT_FILE.exists():
|
||||
print(f"Erreur: fichier introuvable: {INPUT_FILE}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
with INPUT_FILE.open("r", encoding="utf-8") as f:
|
||||
data = yaml.safe_load(f)
|
||||
|
||||
if not isinstance(data, dict) or "domains" not in data:
|
||||
print("Erreur: le YAML doit contenir une clé racine 'domains'.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
domains = data["domains"]
|
||||
if not isinstance(domains, dict):
|
||||
print("Erreur: 'domains' doit être un objet YAML.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
||||
SERVICEGROUPS_DIR.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
for existing_conf in OUTPUT_DIR.glob("*.conf"):
|
||||
existing_conf.unlink()
|
||||
|
||||
if SERVICEGROUPS_FILE.exists():
|
||||
SERVICEGROUPS_FILE.unlink()
|
||||
|
||||
generated_files = []
|
||||
servicegroup_content = [
|
||||
"/*",
|
||||
" AUTO-GENERATED FILE - SERVICE GROUPS",
|
||||
" Ne pas modifier manuellement.",
|
||||
" Source: domains.yaml",
|
||||
"*/",
|
||||
"",
|
||||
]
|
||||
|
||||
for raw_domain, services in domains.items():
|
||||
domain = slugify(str(raw_domain))
|
||||
group_name = aliasify(str(raw_domain))
|
||||
|
||||
if not isinstance(services, list):
|
||||
print(f"Erreur: le domaine '{raw_domain}' doit contenir une liste.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
output_file = OUTPUT_DIR / f"{domain}.conf"
|
||||
content = [
|
||||
"/*",
|
||||
f" AUTO-GENERATED FILE - DOMAIN: {raw_domain}",
|
||||
" Ne pas modifier manuellement.",
|
||||
" Source: domains.yaml",
|
||||
"*/",
|
||||
"",
|
||||
]
|
||||
|
||||
servicegroup_content.append(render_servicegroup(group_name))
|
||||
|
||||
for idx, item in enumerate(services, start=1):
|
||||
if not isinstance(item, dict):
|
||||
print(f"Erreur: entrée invalide dans '{raw_domain}' à la position {idx}.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
missing = [key for key in ("name", "date", "notes") if key not in item]
|
||||
if missing:
|
||||
print(
|
||||
f"Erreur: dans le domaine '{raw_domain}', entrée {idx}, champs manquants: {', '.join(missing)}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
return 1
|
||||
|
||||
try:
|
||||
if "probe" in item:
|
||||
validate_probe(item)
|
||||
content.append(render_probe_service(domain, group_name, item))
|
||||
else:
|
||||
content.append(render_mock_service(domain, group_name, item))
|
||||
except ValueError as exc:
|
||||
print(f"Erreur dans '{raw_domain}', entrée {idx}: {exc}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
output_file.write_text("\n".join(content).rstrip() + "\n", encoding="utf-8")
|
||||
generated_files.append(str(output_file))
|
||||
|
||||
SERVICEGROUPS_FILE.write_text("\n".join(servicegroup_content).rstrip() + "\n", encoding="utf-8")
|
||||
generated_files.append(str(SERVICEGROUPS_FILE))
|
||||
|
||||
print("Fichiers générés :")
|
||||
for file_path in generated_files:
|
||||
print(f" - {file_path}")
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
object CheckCommand "check_life_noc_probe" {
|
||||
command = [ PluginDir + "/check_life_noc_probe.py" ]
|
||||
|
||||
arguments = {
|
||||
"--probe-type" = "$life_noc_probe_type$"
|
||||
"--source-type" = "$life_noc_source_type$"
|
||||
"--source-value" = "$life_noc_source_value$"
|
||||
"--inputs-file" = "$life_noc_inputs_file$"
|
||||
"--item-key" = "$life_noc_item_key$"
|
||||
"--unit" = "$life_noc_metric_unit$"
|
||||
"--unknown-lt" = "$life_noc_threshold_unknown_lt$"
|
||||
"--ok-gte" = "$life_noc_threshold_ok_gte$"
|
||||
"--warning-gte" = "$life_noc_threshold_warning_gte$"
|
||||
"--critical-gte" = "$life_noc_threshold_critical_gte$"
|
||||
"--on-error" = "$life_noc_on_error$"
|
||||
"--label" = "$life_noc_label$"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,97 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
|
||||
def exit_with(code: int, text: str) -> None:
|
||||
print(text)
|
||||
raise SystemExit(code)
|
||||
|
||||
|
||||
def parse_date(value: str) -> datetime:
|
||||
return datetime.strptime(value, "%Y-%m-%d").replace(tzinfo=timezone.utc)
|
||||
|
||||
|
||||
def load_input_value(inputs_file: str, item_key: str) -> str:
|
||||
path = Path(inputs_file)
|
||||
if not path.exists():
|
||||
raise ValueError(f"inputs file introuvable: {inputs_file}")
|
||||
|
||||
data = yaml.safe_load(path.read_text(encoding="utf-8"))
|
||||
if not isinstance(data, dict):
|
||||
raise ValueError(f"inputs file invalide: {inputs_file}")
|
||||
|
||||
if item_key not in data:
|
||||
raise ValueError(f"item_key introuvable dans le store: {item_key}")
|
||||
|
||||
item = data[item_key]
|
||||
if not isinstance(item, dict):
|
||||
raise ValueError(f"entrée invalide pour item_key: {item_key}")
|
||||
|
||||
if "value" not in item:
|
||||
raise ValueError(f"champ 'value' absent pour item_key: {item_key}")
|
||||
|
||||
return str(item["value"]).strip()
|
||||
|
||||
|
||||
def main() -> int:
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("--probe-type", required=True)
|
||||
ap.add_argument("--source-type", required=True)
|
||||
ap.add_argument("--source-value")
|
||||
ap.add_argument("--inputs-file")
|
||||
ap.add_argument("--item-key")
|
||||
ap.add_argument("--unit", required=True)
|
||||
ap.add_argument("--unknown-lt", type=float)
|
||||
ap.add_argument("--ok-gte", type=float)
|
||||
ap.add_argument("--warning-gte", type=float)
|
||||
ap.add_argument("--critical-gte", type=float)
|
||||
ap.add_argument("--on-error", default="critical")
|
||||
ap.add_argument("--label", default="life-noc")
|
||||
args = ap.parse_args()
|
||||
|
||||
try:
|
||||
if args.probe_type != "elapsed_time":
|
||||
exit_with(2, f"CRITICAL - probe_type non supporté: {args.probe_type}")
|
||||
|
||||
if args.source_type != "manual_date":
|
||||
exit_with(2, f"CRITICAL - source_type non supporté: {args.source_type}")
|
||||
|
||||
if args.unit != "days":
|
||||
exit_with(2, f"CRITICAL - unité non supportée: {args.unit}")
|
||||
|
||||
source_value = None
|
||||
|
||||
if args.inputs_file and args.item_key:
|
||||
source_value = load_input_value(args.inputs_file, args.item_key)
|
||||
elif args.source_value:
|
||||
source_value = args.source_value
|
||||
else:
|
||||
raise ValueError("aucune source fournie: inputs-file/item-key ou source-value requis")
|
||||
|
||||
dt = parse_date(source_value)
|
||||
now = datetime.now(timezone.utc)
|
||||
delta_days = (now - dt).total_seconds() / 86400.0
|
||||
|
||||
if args.critical_gte is not None and delta_days >= args.critical_gte:
|
||||
exit_with(2, f"CRITICAL - {args.label}: {delta_days:.1f} jours")
|
||||
if args.warning_gte is not None and delta_days >= args.warning_gte:
|
||||
exit_with(1, f"WARNING - {args.label}: {delta_days:.1f} jours")
|
||||
if args.ok_gte is not None and delta_days >= args.ok_gte:
|
||||
exit_with(0, f"OK - {args.label}: {delta_days:.1f} jours")
|
||||
if args.unknown_lt is not None and delta_days < args.unknown_lt:
|
||||
exit_with(3, f"UNKNOWN - {args.label}: {delta_days:.1f} jours")
|
||||
|
||||
exit_with(2, f"CRITICAL - {args.label}: seuils incohérents")
|
||||
except Exception as exc:
|
||||
if args.on_error == "critical":
|
||||
exit_with(2, f"CRITICAL - erreur sonde: {exc}")
|
||||
exit_with(3, f"UNKNOWN - erreur sonde: {exc}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
|
|
@ -1,768 +0,0 @@
|
|||
domains:
|
||||
|
||||
revue:
|
||||
- name: revue-quotidienne-life-noc
|
||||
date: "2026-03-13"
|
||||
notes: Vérifier le tableau de bord Life-NOC
|
||||
probe:
|
||||
type: elapsed_time
|
||||
source:
|
||||
type: manual_date
|
||||
inputs_file: "/opt/life-noc/data/inputs/revue.yaml"
|
||||
item_key: "revue-quotidienne-life-noc"
|
||||
metric:
|
||||
unit: days
|
||||
thresholds:
|
||||
unknown_lt: 1
|
||||
ok_gte: 1
|
||||
warning_gte: 2
|
||||
critical_gte: 3
|
||||
policy:
|
||||
on_error: critical
|
||||
|
||||
- name: revue-hebdomadaire-priorites
|
||||
date: "2026-03-10"
|
||||
notes: Revoir les priorités de la semaine
|
||||
probe:
|
||||
type: elapsed_time
|
||||
source:
|
||||
type: manual_date
|
||||
inputs_file: "/opt/life-noc/data/inputs/revue.yaml"
|
||||
item_key: "revue-hebdomadaire-priorites"
|
||||
metric:
|
||||
unit: days
|
||||
thresholds:
|
||||
unknown_lt: 5
|
||||
ok_gte: 5
|
||||
warning_gte: 7
|
||||
critical_gte: 10
|
||||
policy:
|
||||
on_error: critical
|
||||
|
||||
- name: revue-mensuelle-systeme-vie
|
||||
date: 2026-04-01
|
||||
notes: Revue mensuelle de l'ensemble du système Life-NOC
|
||||
|
||||
- name: revue-trimestrielle-orientation
|
||||
date: 2026-06-30
|
||||
notes: Revue trimestrielle des orientations de vie et de Chezlepro
|
||||
|
||||
focus:
|
||||
- name: entretien-processus-focus
|
||||
date: 2026-03-09
|
||||
notes: Vérifier que les cartouches FOCUS sont à jour
|
||||
|
||||
- name: nettoyage-inbox-mentale
|
||||
date: 2026-03-09
|
||||
notes: Vider et clarifier les éléments capturés hors système
|
||||
|
||||
- name: revue-limitation-engagements
|
||||
date: 2026-03-31
|
||||
notes: Vérifier que les engagements actifs demeurent réalistes
|
||||
|
||||
finances-personnelles:
|
||||
- name: revision-comptes-bancaires
|
||||
date: 2026-04-01
|
||||
notes: Révision mensuelle des comptes bancaires personnels
|
||||
|
||||
- name: verification-cartes-credit
|
||||
date: 2026-04-01
|
||||
notes: Vérification des soldes et transactions des cartes de crédit
|
||||
|
||||
- name: paiement-cartes-credit
|
||||
date: 2026-04-15
|
||||
notes: Paiement des cartes de crédit personnelles
|
||||
|
||||
- name: revision-budget-personnel
|
||||
date: 2026-04-05
|
||||
notes: Révision mensuelle du budget personnel
|
||||
|
||||
- name: verification-prelevements-automatiques
|
||||
date: 2026-04-03
|
||||
notes: Vérification des prélèvements automatiques personnels
|
||||
|
||||
- name: verification-placements
|
||||
date: 2026-06-30
|
||||
notes: Vérification périodique des placements et comptes enregistrés
|
||||
|
||||
- name: verification-cotisations-reer
|
||||
date: 2026-02-28
|
||||
notes: Vérification des cotisations REER
|
||||
|
||||
- name: verification-celi
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'espace CELI et de son utilisation
|
||||
|
||||
- name: preparation-dossier-financier-annuel
|
||||
date: 2026-01-31
|
||||
notes: Préparer le dossier financier annuel personnel
|
||||
|
||||
fiscalite-personnelle:
|
||||
- name: preparation-documents-impots
|
||||
date: 2026-03-15
|
||||
notes: Rassembler tous les documents fiscaux personnels
|
||||
|
||||
- name: production-impots-federal
|
||||
date: 2026-04-30
|
||||
notes: Produire la déclaration de revenus fédérale
|
||||
|
||||
- name: production-impots-quebec
|
||||
date: 2026-04-30
|
||||
notes: Produire la déclaration de revenus Québec
|
||||
|
||||
- name: paiement-solde-impots
|
||||
date: 2026-04-30
|
||||
notes: Payer tout solde d'impôt exigible
|
||||
|
||||
- name: verification-avis-cotisation
|
||||
date: 2026-05-31
|
||||
notes: Vérifier les avis de cotisation ARC et Revenu Québec
|
||||
|
||||
- name: archivage-documents-fiscaux
|
||||
date: 2026-06-15
|
||||
notes: Archiver les documents fiscaux personnels
|
||||
|
||||
- name: verification-acomptes-provisionnels
|
||||
date: 2026-03-15
|
||||
notes: Vérifier si des acomptes provisionnels sont requis
|
||||
|
||||
obligations-legales-personnelles:
|
||||
- name: verification-testament
|
||||
date: 2026-07-01
|
||||
notes: Vérifier la pertinence et l'actualité du testament
|
||||
|
||||
- name: verification-mandat-inaptitude
|
||||
date: 2026-07-01
|
||||
notes: Vérifier le mandat de protection et documents connexes
|
||||
|
||||
- name: verification-directives-medicales
|
||||
date: 2026-07-15
|
||||
notes: Vérifier les directives médicales anticipées
|
||||
|
||||
- name: verification-papiers-identite
|
||||
date: 2026-06-01
|
||||
notes: Vérifier l'expiration des papiers d'identité
|
||||
|
||||
- name: renouvellement-permis-conduire
|
||||
date: 2027-01-01
|
||||
notes: Vérifier le renouvellement du permis de conduire
|
||||
|
||||
- name: verification-carte-assurance-maladie
|
||||
date: 2026-10-01
|
||||
notes: Vérifier l'expiration de la carte d'assurance maladie
|
||||
|
||||
- name: verification-passeport
|
||||
date: 2026-06-01
|
||||
notes: Vérifier l'expiration du passeport
|
||||
|
||||
maison:
|
||||
- name: remplacement-filtre-fournaise
|
||||
date: 2026-04-01
|
||||
notes: Remplacer le filtre de la fournaise
|
||||
|
||||
- name: inspection-fournaise
|
||||
date: 2026-09-15
|
||||
notes: Inspection générale de la fournaise avant saison froide
|
||||
|
||||
- name: inspection-thermopompe
|
||||
date: 2026-05-01
|
||||
notes: Inspection et entretien de la thermopompe
|
||||
|
||||
- name: nettoyage-unites-exterieures
|
||||
date: 2026-05-15
|
||||
notes: Nettoyer les unités extérieures et vérifier le dégagement
|
||||
|
||||
- name: inspection-toiture
|
||||
date: 2026-10-01
|
||||
notes: Inspection annuelle de la toiture
|
||||
|
||||
- name: inspection-gouttieres
|
||||
date: 2026-11-01
|
||||
notes: Inspection et nettoyage des gouttières
|
||||
|
||||
- name: inspection-fondation
|
||||
date: 2026-06-01
|
||||
notes: Inspection de la fondation et des fissures
|
||||
|
||||
- name: verification-drainage-terrain
|
||||
date: 2026-05-15
|
||||
notes: Vérification du drainage autour de la maison
|
||||
|
||||
- name: test-detecteurs-fumee
|
||||
date: 2026-04-01
|
||||
notes: Test des détecteurs de fumée
|
||||
|
||||
- name: test-detecteurs-co
|
||||
date: 2026-04-01
|
||||
notes: Test des détecteurs de monoxyde de carbone
|
||||
|
||||
- name: remplacement-piles-detecteurs
|
||||
date: 2026-10-01
|
||||
notes: Remplacement préventif des piles des détecteurs
|
||||
|
||||
- name: verification-plomberie-visible
|
||||
date: 2026-05-01
|
||||
notes: Vérification visuelle de la plomberie accessible
|
||||
|
||||
- name: inspection-sump-pump
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la pompe de puisard si applicable
|
||||
|
||||
- name: verification-calfetrage
|
||||
date: 2026-10-15
|
||||
notes: Vérification du calfeutrage portes et fenêtres
|
||||
|
||||
- name: inspection-portes-garage
|
||||
date: 2026-05-15
|
||||
notes: Vérification mécanique et sécurité des portes de garage
|
||||
|
||||
- name: verification-extincteurs
|
||||
date: 2026-06-01
|
||||
notes: Vérification des extincteurs
|
||||
|
||||
garage-et-rangement:
|
||||
- name: inspection-rangement-plafond
|
||||
date: 2026-05-01
|
||||
notes: Vérification des supports suspendus au plafond du garage
|
||||
|
||||
- name: revue-inventaire-garage
|
||||
date: 2026-04-15
|
||||
notes: Revue de l'inventaire et de l'ordre du garage
|
||||
|
||||
- name: verification-rouille-outillage
|
||||
date: 2026-05-15
|
||||
notes: Vérification de la corrosion sur les outils et équipements
|
||||
|
||||
- name: inspection-securite-garage
|
||||
date: 2026-06-01
|
||||
notes: Vérification des conditions de sécurité du garage
|
||||
|
||||
- name: rotation-stockage-bacs
|
||||
date: 2026-05-15
|
||||
notes: Revue des contenus de bacs de rangement
|
||||
|
||||
energie:
|
||||
- name: inspection-batteries-lifepo4
|
||||
date: 2026-04-01
|
||||
notes: Inspection physique et logique des batteries LiFePO4
|
||||
|
||||
- name: verification-tension-batteries
|
||||
date: 2026-03-15
|
||||
notes: Vérification des tensions et cohérence des batteries
|
||||
|
||||
- name: verification-smartshunt
|
||||
date: 2026-03-15
|
||||
notes: Vérification SmartShunt et cohérence du monitoring
|
||||
|
||||
- name: verification-cerbo-gx
|
||||
date: 2026-03-15
|
||||
notes: Vérification Cerbo GX et remontée des données
|
||||
|
||||
- name: verification-can-rs485
|
||||
date: 2026-04-15
|
||||
notes: Vérification des communications CAN ou RS485
|
||||
|
||||
- name: inspection-cablage-energie
|
||||
date: 2026-05-01
|
||||
notes: Inspection du câblage et des connexions énergétiques
|
||||
|
||||
- name: verification-busbars
|
||||
date: 2026-05-01
|
||||
notes: Vérification du serrage, corrosion et échauffement des busbars
|
||||
|
||||
- name: verification-parametres-charge
|
||||
date: 2026-04-01
|
||||
notes: Vérification des paramètres de charge et float
|
||||
|
||||
- name: test-charge-batteries
|
||||
date: 2026-04-15
|
||||
notes: Test de comportement en charge des batteries
|
||||
|
||||
- name: test-comportement-onduleur
|
||||
date: 2026-05-01
|
||||
notes: Vérifier le comportement du Multiplus sous charge légère
|
||||
|
||||
- name: verification-journal-evenements-victron
|
||||
date: 2026-04-15
|
||||
notes: Vérification des événements et anomalies Victron
|
||||
|
||||
resilience:
|
||||
- name: test-generatrice-propane
|
||||
date: 2026-04-01
|
||||
notes: Test mensuel de la génératrice au propane
|
||||
|
||||
- name: verification-carburant-generatrice
|
||||
date: 2026-04-01
|
||||
notes: Vérification de l'approvisionnement propane lié à la génératrice
|
||||
|
||||
- name: verification-procedure-bascule
|
||||
date: 2026-04-15
|
||||
notes: Réviser la procédure de bascule en mode secours
|
||||
|
||||
- name: verification-stock-lampes-piles
|
||||
date: 2026-05-01
|
||||
notes: Vérification des lampes, piles et éclairage d'urgence
|
||||
|
||||
- name: verification-trousses-urgence
|
||||
date: 2026-05-15
|
||||
notes: Vérification des trousses d'urgence
|
||||
|
||||
- name: revision-plan-urgence
|
||||
date: 2026-06-01
|
||||
notes: Réviser le plan d'urgence domestique
|
||||
|
||||
- name: test-autonomie-base
|
||||
date: 2026-06-15
|
||||
notes: Vérifier l'autonomie énergétique minimale attendue
|
||||
|
||||
- name: verification-moyens-cuisson-secours
|
||||
date: 2026-05-15
|
||||
notes: Vérification des moyens de cuisson de secours
|
||||
|
||||
stock-alimentaire:
|
||||
- name: rotation-nourriture-seche
|
||||
date: 2026-04-01
|
||||
notes: Rotation des stocks de nourriture sèche
|
||||
|
||||
- name: verification-reserve-eau
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la réserve d'eau potable
|
||||
|
||||
- name: verification-mylar-absorbeurs
|
||||
date: 2026-05-01
|
||||
notes: Vérifier l'intégrité des emballages Mylar et absorbeurs
|
||||
|
||||
- name: revue-inventaire-conserves
|
||||
date: 2026-04-15
|
||||
notes: Revue des conserves et dates de rotation
|
||||
|
||||
- name: revue-inventaire-farine-riz-pates
|
||||
date: 2026-04-01
|
||||
notes: Vérification des gros stocks alimentaires de base
|
||||
|
||||
- name: verification-bacs-legumes-racines
|
||||
date: 2026-10-01
|
||||
notes: Vérification des bacs de stockage de légumes racines
|
||||
|
||||
- name: revue-supplements-vitamines
|
||||
date: 2026-05-01
|
||||
notes: Vérification du stock de suppléments et dates utiles
|
||||
|
||||
sante:
|
||||
- name: verification-trousse-premiers-soins
|
||||
date: 2026-04-01
|
||||
notes: Vérification de la trousse de premiers soins
|
||||
|
||||
- name: verification-expiration-medicaments
|
||||
date: 2026-05-01
|
||||
notes: Vérification des dates d'expiration des médicaments
|
||||
|
||||
- name: revision-rendez-vous-medicaux
|
||||
date: 2026-04-15
|
||||
notes: Revoir les rendez-vous médicaux requis
|
||||
|
||||
- name: verification-lunettes-prescriptions
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les prescriptions et besoins de renouvellement
|
||||
|
||||
- name: verification-dossier-sante
|
||||
date: 2026-06-15
|
||||
notes: Vérifier l'ordre et l'accessibilité des documents de santé
|
||||
|
||||
voiture:
|
||||
- name: verification-huile-moteur
|
||||
date: 2026-04-01
|
||||
notes: Vérification de l'huile moteur
|
||||
|
||||
- name: inspection-freins
|
||||
date: 2026-05-01
|
||||
notes: Inspection des freins
|
||||
|
||||
- name: verification-pneus
|
||||
date: 2026-04-15
|
||||
notes: Vérification usure, pression et permutation des pneus
|
||||
|
||||
- name: ajustement-valves
|
||||
date: 2026-08-01
|
||||
notes: Vérification et ajustement des valves Honda Accord
|
||||
|
||||
- name: verification-timing-belt
|
||||
date: 2027-01-01
|
||||
notes: Vérification de la courroie de distribution et pompe à eau
|
||||
|
||||
- name: verification-batterie-voiture
|
||||
date: 2026-10-01
|
||||
notes: Vérification de l'état de la batterie automobile
|
||||
|
||||
- name: verification-balais-essuie-glace
|
||||
date: 2026-05-01
|
||||
notes: Vérification des essuie-glaces
|
||||
|
||||
- name: verification-liquides
|
||||
date: 2026-04-15
|
||||
notes: Vérification des liquides de la voiture
|
||||
|
||||
- name: verification-eclairage
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'éclairage et des phares
|
||||
|
||||
- name: verification-immatriculation-assurance
|
||||
date: 2026-06-01
|
||||
notes: Vérification papiers d'assurance et immatriculation
|
||||
|
||||
jardin:
|
||||
- name: inspection-vignes
|
||||
date: 2026-04-15
|
||||
notes: Inspection et entretien des vignes
|
||||
|
||||
- name: entretien-bleuetiers
|
||||
date: 2026-05-01
|
||||
notes: Entretien des bleuetiers
|
||||
|
||||
- name: entretien-framboisiers
|
||||
date: 2026-06-01
|
||||
notes: Entretien des framboisiers
|
||||
|
||||
- name: inspection-kiwis-nordiques
|
||||
date: 2026-05-15
|
||||
notes: Vérification des kiwis nordiques
|
||||
|
||||
- name: entretien-rhubarbe
|
||||
date: 2026-05-15
|
||||
notes: Entretien de la rhubarbe
|
||||
|
||||
- name: inspection-groseillier
|
||||
date: 2026-05-15
|
||||
notes: Inspection du groseillier
|
||||
|
||||
- name: inspection-muriers
|
||||
date: 2026-05-15
|
||||
notes: Inspection des mûriers
|
||||
|
||||
- name: entretien-houblon
|
||||
date: 2026-06-01
|
||||
notes: Vérification et entretien du houblon
|
||||
|
||||
- name: revision-pharmacopée-jardin
|
||||
date: 2026-05-01
|
||||
notes: Vérification du stock de soins pour végétaux
|
||||
|
||||
- name: revision-armoire-produits-jardin
|
||||
date: 2026-05-01
|
||||
notes: Vérification et ordre de l'armoire des produits pour végétaux
|
||||
|
||||
outils-et-equipements:
|
||||
- name: entretien-outils-jardin
|
||||
date: 2026-04-15
|
||||
notes: Nettoyage et entretien des outils de jardin
|
||||
|
||||
- name: inspection-outils-electriques
|
||||
date: 2026-05-01
|
||||
notes: Vérification des outils électriques
|
||||
|
||||
- name: verification-rallonges-et-connecteurs
|
||||
date: 2026-05-01
|
||||
notes: Vérification des rallonges et connecteurs
|
||||
|
||||
- name: verification-compresseur-et-accessoires
|
||||
date: 2026-05-15
|
||||
notes: Vérification du compresseur et accessoires
|
||||
|
||||
- name: revision-inventaire-outillage
|
||||
date: 2026-06-01
|
||||
notes: Revue de l'inventaire d'outillage
|
||||
|
||||
informatique-personnelle:
|
||||
- name: verification-sauvegardes-personnelles
|
||||
date: 2026-04-01
|
||||
notes: Vérification des sauvegardes personnelles
|
||||
|
||||
- name: nettoyage-stockage-personnel
|
||||
date: 2026-04-15
|
||||
notes: Nettoyage du stockage numérique personnel
|
||||
|
||||
- name: verification-comptes-importants
|
||||
date: 2026-05-01
|
||||
notes: Vérification des comptes numériques personnels importants
|
||||
|
||||
- name: revue-mots-de-passe-personnels
|
||||
date: 2026-06-01
|
||||
notes: Revue des mots de passe personnels critiques
|
||||
|
||||
- name: verification-documents-cloud-personnels
|
||||
date: 2026-05-15
|
||||
notes: Vérifier la cohérence des documents personnels sauvegardés
|
||||
|
||||
infrastructure-chezlepro:
|
||||
- name: verification-proxmox
|
||||
date: 2026-04-01
|
||||
notes: Vérification générale de l'environnement Proxmox
|
||||
|
||||
- name: verification-ceph
|
||||
date: 2026-04-01
|
||||
notes: Vérification générale de l'état Ceph
|
||||
|
||||
- name: test-restauration-backups
|
||||
date: 2026-04-15
|
||||
notes: Test de restauration des sauvegardes
|
||||
|
||||
- name: verification-pbs-truenas
|
||||
date: 2026-05-01
|
||||
notes: Vérification des solutions de sauvegarde et synchronisation
|
||||
|
||||
- name: verification-ups-infrastructure
|
||||
date: 2026-04-15
|
||||
notes: Vérification des UPS de l'infrastructure
|
||||
|
||||
- name: verification-capacite-stockage
|
||||
date: 2026-04-15
|
||||
notes: Vérifier capacité et croissance du stockage
|
||||
|
||||
- name: verification-apt-cacher-ng
|
||||
date: 2026-05-01
|
||||
notes: Vérification du bon fonctionnement d'apt-cacher-ng
|
||||
|
||||
- name: verification-icinga2
|
||||
date: 2026-04-01
|
||||
notes: Vérification de la supervision Icinga2
|
||||
|
||||
- name: verification-keycloak-openldap
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'identité et de l'authentification centralisées
|
||||
|
||||
- name: verification-nextcloud
|
||||
date: 2026-04-15
|
||||
notes: Vérification de l'état Nextcloud
|
||||
|
||||
- name: verification-mailcow
|
||||
date: 2026-05-01
|
||||
notes: Vérification de l'infrastructure Mailcow
|
||||
|
||||
- name: verification-openvas
|
||||
date: 2026-05-15
|
||||
notes: Vérification de la plateforme OpenVAS
|
||||
|
||||
- name: verification-journaux-systemes
|
||||
date: 2026-04-15
|
||||
notes: Revue des journaux systèmes critiques
|
||||
|
||||
reseau-chezlepro:
|
||||
- name: verification-firewalls
|
||||
date: 2026-04-01
|
||||
notes: Vérification des firewalls
|
||||
|
||||
- name: verification-vpn-openvpn
|
||||
date: 2026-04-15
|
||||
notes: Vérification des tunnels OpenVPN
|
||||
|
||||
- name: verification-crl-certificats
|
||||
date: 2026-04-15
|
||||
notes: Vérification de la CRL et des certificats
|
||||
|
||||
- name: verification-switches
|
||||
date: 2026-05-01
|
||||
notes: Vérification des switches et uplinks
|
||||
|
||||
- name: verification-vlans-segmentation
|
||||
date: 2026-05-01
|
||||
notes: Vérification de la segmentation réseau
|
||||
|
||||
- name: verification-dns
|
||||
date: 2026-05-15
|
||||
notes: Vérification DNS interne et externe
|
||||
|
||||
- name: verification-dynamic-dns
|
||||
date: 2026-05-15
|
||||
notes: Vérification du DNS dynamique si utilisé
|
||||
|
||||
- name: audit-regles-firewall
|
||||
date: 2026-06-01
|
||||
notes: Audit périodique des règles de firewall
|
||||
|
||||
- name: verification-geoblocking
|
||||
date: 2026-05-15
|
||||
notes: Vérifier le geoblocking et son effet attendu
|
||||
|
||||
- name: verification-certificats-publics
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les expirations de certificats publics
|
||||
|
||||
securite-chezlepro:
|
||||
- name: verification-mises-a-jour-securite
|
||||
date: 2026-04-01
|
||||
notes: Vérification des mises à jour de sécurité
|
||||
|
||||
- name: audit-comptes-acces
|
||||
date: 2026-05-01
|
||||
notes: Audit des comptes et accès privilégiés
|
||||
|
||||
- name: verification-ids-snort
|
||||
date: 2026-05-01
|
||||
notes: Vérification des IDS et de leur état
|
||||
|
||||
- name: revue-pki-privee
|
||||
date: 2026-05-15
|
||||
notes: Revue de la PKI privée et des autorités intermédiaires
|
||||
|
||||
- name: revue-politiques-securite
|
||||
date: 2026-06-01
|
||||
notes: Revue des politiques et pratiques de sécurité numérique
|
||||
|
||||
- name: verification-sauvegardes-configuration
|
||||
date: 2026-04-15
|
||||
notes: Vérifier les sauvegardes des configurations critiques
|
||||
|
||||
exploitation-chezlepro:
|
||||
- name: revision-playbooks-ansible
|
||||
date: 2026-05-01
|
||||
notes: Revue des playbooks Ansible
|
||||
|
||||
- name: verification-inventaires-ansible
|
||||
date: 2026-05-01
|
||||
notes: Vérification des inventaires Ansible
|
||||
|
||||
- name: revision-documentation-technique
|
||||
date: 2026-05-15
|
||||
notes: Revue de la documentation technique Chezlepro
|
||||
|
||||
- name: verification-procedures-reprise
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les procédures de reprise et restauration
|
||||
|
||||
- name: revue-capacite-ressources
|
||||
date: 2026-06-15
|
||||
notes: Revue CPU RAM stockage et charge de l'infrastructure
|
||||
|
||||
- name: verification-jobs-automatises
|
||||
date: 2026-05-15
|
||||
notes: Vérification des jobs automatisés et scripts périodiques
|
||||
|
||||
obligations-chezlepro:
|
||||
- name: verification-registraire-entreprise
|
||||
date: 2026-06-15
|
||||
notes: Vérifier les obligations au Registraire des entreprises
|
||||
|
||||
- name: verification-declarations-taxes
|
||||
date: 2026-04-30
|
||||
notes: Vérifier les obligations de taxes de l'entreprise si applicables
|
||||
|
||||
- name: verification-dossier-comptable-entreprise
|
||||
date: 2026-04-15
|
||||
notes: Vérifier l'ordre du dossier comptable Chezlepro
|
||||
|
||||
- name: verification-facturation-clients
|
||||
date: 2026-04-10
|
||||
notes: Vérifier la facturation et son suivi
|
||||
|
||||
- name: verification-paiements-fournisseurs
|
||||
date: 2026-04-10
|
||||
notes: Vérifier les paiements fournisseurs
|
||||
|
||||
- name: verification-contrats-ententes
|
||||
date: 2026-05-15
|
||||
notes: Vérifier contrats, ententes et obligations associées
|
||||
|
||||
- name: verification-assurances-entreprise
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les assurances de l'entreprise
|
||||
|
||||
- name: archivage-documents-entreprise
|
||||
date: 2026-05-31
|
||||
notes: Archiver les documents administratifs et financiers de l'entreprise
|
||||
|
||||
actifs-chezlepro:
|
||||
- name: revision-inventaire-materiel
|
||||
date: 2026-05-01
|
||||
notes: Revoir l'inventaire du matériel de Chezlepro
|
||||
|
||||
- name: verification-amortissables
|
||||
date: 2026-06-01
|
||||
notes: Vérifier le registre des biens amortissables
|
||||
|
||||
- name: verification-serveurs-et-composants
|
||||
date: 2026-05-15
|
||||
notes: Vérifier l'état des serveurs et composants matériels
|
||||
|
||||
- name: verification-reserve-pieces
|
||||
date: 2026-06-01
|
||||
notes: Vérifier les pièces de rechange critiques
|
||||
|
||||
- name: revision-actifs-transferts
|
||||
date: 2026-06-15
|
||||
notes: Réviser les actifs transférés ou à transférer à l'entreprise
|
||||
|
||||
projets:
|
||||
- name: revision-life-noc
|
||||
date: 2026-04-01
|
||||
notes: Révision du projet Life-NOC
|
||||
|
||||
- name: revision-alliance-boreale
|
||||
date: 2026-04-15
|
||||
notes: Révision du projet Alliance Boréale
|
||||
|
||||
- name: revision-erplibre
|
||||
date: 2026-05-01
|
||||
notes: Révision du projet ERPLibre
|
||||
|
||||
- name: revision-semence-numerique
|
||||
date: 2026-05-15
|
||||
notes: Révision du projet semence numérique
|
||||
|
||||
- name: revision-ortrux-1
|
||||
date: 2026-05-15
|
||||
notes: Révision du système Ortrux-1
|
||||
|
||||
- name: revision-district16
|
||||
date: 2026-05-01
|
||||
notes: Révision du projet DISTRICT16
|
||||
|
||||
communaute:
|
||||
- name: verification-outils-aa
|
||||
date: 2026-05-01
|
||||
notes: Vérifier les outils numériques liés aux activités communautaires
|
||||
|
||||
- name: verification-espace-87-16
|
||||
date: 2026-05-01
|
||||
notes: Vérifier l'espace Nextcloud du district
|
||||
|
||||
- name: verification-salles-visio-groupes
|
||||
date: 2026-05-15
|
||||
notes: Vérifier les salles de visioconférence des groupes
|
||||
|
||||
- name: verification-depots-rapports-rsg
|
||||
date: 2026-05-15
|
||||
notes: Vérifier les dépôts de rapports RSG
|
||||
|
||||
- name: revision-outils-communication-communaute
|
||||
date: 2026-06-01
|
||||
notes: Réviser les moyens de communication communautaires
|
||||
|
||||
documentation:
|
||||
- name: revue-docs-personnelles-importantes
|
||||
date: 2026-05-15
|
||||
notes: Revoir l'organisation des documents personnels importants
|
||||
|
||||
- name: revue-wiki-technique
|
||||
date: 2026-05-15
|
||||
notes: Revoir le wiki technique et sa cohérence
|
||||
|
||||
- name: revue-base-connaissances
|
||||
date: 2026-06-01
|
||||
notes: Revoir la base de connaissances globale
|
||||
|
||||
- name: verification-sauvegarde-docs-cles
|
||||
date: 2026-05-15
|
||||
notes: Vérifier la sauvegarde des documents clés
|
||||
|
||||
animaux:
|
||||
- name: verification-stock-nourriture-chats
|
||||
date: 2026-04-15
|
||||
notes: Vérification du stock de nourriture pour chats
|
||||
|
||||
- name: verification-friandises-et-litiere
|
||||
date: 2026-04-15
|
||||
notes: Vérification des stocks de friandises et de litière
|
||||
|
||||
- name: revision-routine-soins-animaux
|
||||
date: 2026-05-01
|
||||
notes: Revue de la routine de soins et des besoins matériels des chats
|
||||
|
|
@ -1,298 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from pathlib import Path
|
||||
import re
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
INPUT_FILE = Path("domains.yaml")
|
||||
OUTPUT_DIR = Path("icinga/services")
|
||||
SERVICEGROUPS_DIR = Path("icinga/servicegroups")
|
||||
SERVICEGROUPS_FILE = SERVICEGROUPS_DIR / "life-noc.conf"
|
||||
HOST_NAME = "life-noc"
|
||||
SERVICE_TEMPLATE = "service_echeance"
|
||||
PROBE_TEMPLATE = "service_life_noc_probe"
|
||||
DEFAULT_MOCK_STATE = "OK"
|
||||
DEFAULT_MOCK_MESSAGE = "Sous contrôle"
|
||||
|
||||
|
||||
def slugify(value: str) -> str:
|
||||
value = value.strip().lower()
|
||||
replacements = {
|
||||
"à": "a", "â": "a", "ä": "a",
|
||||
"ç": "c",
|
||||
"é": "e", "è": "e", "ê": "e", "ë": "e",
|
||||
"î": "i", "ï": "i",
|
||||
"ô": "o", "ö": "o",
|
||||
"ù": "u", "û": "u", "ü": "u",
|
||||
"ÿ": "y",
|
||||
"œ": "oe",
|
||||
"æ": "ae",
|
||||
"'": "",
|
||||
"’": "",
|
||||
}
|
||||
for old, new in replacements.items():
|
||||
value = value.replace(old, new)
|
||||
value = re.sub(r"[^a-z0-9\-]+", "-", value)
|
||||
value = re.sub(r"-{2,}", "-", value)
|
||||
return value.strip("-")
|
||||
|
||||
|
||||
def aliasify(value: str) -> str:
|
||||
value = value.strip().upper()
|
||||
replacements = {
|
||||
"À": "A", "Â": "A", "Ä": "A",
|
||||
"Ç": "C",
|
||||
"É": "E", "È": "E", "Ê": "E", "Ë": "E",
|
||||
"Î": "I", "Ï": "I",
|
||||
"Ô": "O", "Ö": "O",
|
||||
"Ù": "U", "Û": "U", "Ü": "U",
|
||||
"Ÿ": "Y",
|
||||
"Œ": "OE",
|
||||
"Æ": "AE",
|
||||
"'": "",
|
||||
"’": "",
|
||||
}
|
||||
for old, new in replacements.items():
|
||||
value = value.replace(old, new)
|
||||
value = re.sub(r"[^A-Z0-9\-]+", "-", value)
|
||||
value = re.sub(r"-{2,}", "-", value)
|
||||
return value.strip("-")
|
||||
|
||||
|
||||
def icinga_escape(value: str) -> str:
|
||||
return value.replace("\\", "\\\\").replace('"', '\\"')
|
||||
|
||||
|
||||
def normalize_mock_state(value: str) -> str:
|
||||
state = str(value).strip().upper()
|
||||
allowed = {"OK", "WARNING", "CRITICAL"}
|
||||
if state not in allowed:
|
||||
raise ValueError(
|
||||
f"mock_state invalide: {value}. Valeurs permises: {', '.join(sorted(allowed))}"
|
||||
)
|
||||
return state
|
||||
|
||||
|
||||
def render_mock_service(domain: str, group_name: str, item: dict) -> str:
|
||||
name = item["name"].strip()
|
||||
date = str(item["date"]).strip()
|
||||
notes = item.get("notes", "").strip()
|
||||
notes_url = item.get("notes_url", "").strip()
|
||||
action_url = item.get("action_url", "").strip()
|
||||
mock_state = normalize_mock_state(item.get("mock_state", DEFAULT_MOCK_STATE))
|
||||
mock_message = item.get("mock_message", DEFAULT_MOCK_MESSAGE).strip() or DEFAULT_MOCK_MESSAGE
|
||||
|
||||
service_name = f"{domain}-{name}"
|
||||
|
||||
lines = [
|
||||
f'apply Service "{icinga_escape(service_name)}" {{',
|
||||
f' import "{SERVICE_TEMPLATE}"',
|
||||
f' vars.date_echeance = "{icinga_escape(date)}"',
|
||||
f' vars.mock_state = "{icinga_escape(mock_state)}"',
|
||||
f' vars.mock_message = "{icinga_escape(mock_message)}"',
|
||||
f' groups = [ "{icinga_escape(group_name)}" ]',
|
||||
]
|
||||
|
||||
if notes:
|
||||
lines.append(f' notes = "{icinga_escape(notes)}"')
|
||||
if notes_url:
|
||||
lines.append(f' notes_url = "{icinga_escape(notes_url)}"')
|
||||
if action_url:
|
||||
lines.append(f' action_url = "{icinga_escape(action_url)}"')
|
||||
|
||||
lines.append(f' assign where host.name == "{HOST_NAME}"')
|
||||
lines.append("}")
|
||||
lines.append("")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def render_probe_service(domain: str, group_name: str, item: dict) -> str:
|
||||
name = item["name"].strip()
|
||||
notes = item.get("notes", "").strip()
|
||||
notes_url = item.get("notes_url", "").strip()
|
||||
action_url = item.get("action_url", "").strip()
|
||||
probe = item["probe"]
|
||||
|
||||
probe_type = str(probe["type"]).strip()
|
||||
source = probe["source"]
|
||||
metric = probe["metric"]
|
||||
thresholds = probe["thresholds"]
|
||||
policy = probe.get("policy", {})
|
||||
|
||||
service_name = f"{domain}-{name}"
|
||||
|
||||
lines = [
|
||||
f'apply Service "{icinga_escape(service_name)}" {{',
|
||||
f' import "{PROBE_TEMPLATE}"',
|
||||
f' vars.life_noc_probe_type = "{icinga_escape(probe_type)}"',
|
||||
f' vars.life_noc_source_type = "{icinga_escape(str(source["type"]).strip())}"',
|
||||
f' vars.life_noc_source_value = "{icinga_escape(str(source.get("value", "")).strip())}"',
|
||||
f' vars.life_noc_inputs_file = "{icinga_escape(str(source.get("inputs_file", "")).strip())}"',
|
||||
f' vars.life_noc_item_key = "{icinga_escape(str(source.get("item_key", name)).strip())}"',
|
||||
f' vars.life_noc_metric_unit = "{icinga_escape(str(metric["unit"]).strip())}"',
|
||||
f' vars.life_noc_label = "{icinga_escape(name)}"',
|
||||
f' groups = [ "{icinga_escape(group_name)}" ]',
|
||||
]
|
||||
|
||||
if "unknown_lt" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_unknown_lt = "{icinga_escape(str(thresholds["unknown_lt"]))}"')
|
||||
if "ok_gte" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_ok_gte = "{icinga_escape(str(thresholds["ok_gte"]))}"')
|
||||
if "warning_gte" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_warning_gte = "{icinga_escape(str(thresholds["warning_gte"]))}"')
|
||||
if "critical_gte" in thresholds:
|
||||
lines.append(f' vars.life_noc_threshold_critical_gte = "{icinga_escape(str(thresholds["critical_gte"]))}"')
|
||||
|
||||
on_error = str(policy.get("on_error", "critical")).strip()
|
||||
lines.append(f' vars.life_noc_on_error = "{icinga_escape(on_error)}"')
|
||||
|
||||
if notes:
|
||||
lines.append(f' notes = "{icinga_escape(notes)}"')
|
||||
if notes_url:
|
||||
lines.append(f' notes_url = "{icinga_escape(notes_url)}"')
|
||||
if action_url:
|
||||
lines.append(f' action_url = "{icinga_escape(action_url)}"')
|
||||
|
||||
lines.append(f' assign where host.name == "{HOST_NAME}"')
|
||||
lines.append("}")
|
||||
lines.append("")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def validate_probe(item: dict) -> None:
|
||||
probe = item["probe"]
|
||||
if not isinstance(probe, dict):
|
||||
raise ValueError("probe doit être un objet")
|
||||
|
||||
if str(probe.get("type", "")).strip() != "elapsed_time":
|
||||
raise ValueError("seul probe.type=elapsed_time est supporté en v1")
|
||||
|
||||
source = probe.get("source")
|
||||
if not isinstance(source, dict):
|
||||
raise ValueError("probe.source doit être un objet")
|
||||
if str(source.get("type", "")).strip() != "manual_date":
|
||||
raise ValueError("seul probe.source.type=manual_date est supporté en v1")
|
||||
|
||||
has_inline_value = "value" in source
|
||||
has_store_ref = "inputs_file" in source and "item_key" in source
|
||||
|
||||
if not has_inline_value and not has_store_ref:
|
||||
raise ValueError("probe.source.value ou probe.source.inputs_file + item_key requis")
|
||||
|
||||
metric = probe.get("metric")
|
||||
if not isinstance(metric, dict):
|
||||
raise ValueError("probe.metric doit être un objet")
|
||||
if str(metric.get("unit", "")).strip() != "days":
|
||||
raise ValueError("seul probe.metric.unit=days est supporté en v1")
|
||||
|
||||
thresholds = probe.get("thresholds")
|
||||
if not isinstance(thresholds, dict):
|
||||
raise ValueError("probe.thresholds doit être un objet")
|
||||
|
||||
|
||||
def render_servicegroup(group_name: str) -> str:
|
||||
return "\n".join([
|
||||
f'object ServiceGroup "{icinga_escape(group_name)}" {{',
|
||||
f' display_name = "{icinga_escape(group_name)}"',
|
||||
"}",
|
||||
"",
|
||||
])
|
||||
|
||||
|
||||
def main() -> int:
|
||||
if not INPUT_FILE.exists():
|
||||
print(f"Erreur: fichier introuvable: {INPUT_FILE}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
with INPUT_FILE.open("r", encoding="utf-8") as f:
|
||||
data = yaml.safe_load(f)
|
||||
|
||||
if not isinstance(data, dict) or "domains" not in data:
|
||||
print("Erreur: le YAML doit contenir une clé racine 'domains'.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
domains = data["domains"]
|
||||
if not isinstance(domains, dict):
|
||||
print("Erreur: 'domains' doit être un objet YAML.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
||||
SERVICEGROUPS_DIR.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
for existing_conf in OUTPUT_DIR.glob("*.conf"):
|
||||
existing_conf.unlink()
|
||||
|
||||
if SERVICEGROUPS_FILE.exists():
|
||||
SERVICEGROUPS_FILE.unlink()
|
||||
|
||||
generated_files = []
|
||||
servicegroup_content = [
|
||||
"/*",
|
||||
" AUTO-GENERATED FILE - SERVICE GROUPS",
|
||||
" Ne pas modifier manuellement.",
|
||||
" Source: domains.yaml",
|
||||
"*/",
|
||||
"",
|
||||
]
|
||||
|
||||
for raw_domain, services in domains.items():
|
||||
domain = slugify(str(raw_domain))
|
||||
group_name = aliasify(str(raw_domain))
|
||||
|
||||
if not isinstance(services, list):
|
||||
print(f"Erreur: le domaine '{raw_domain}' doit contenir une liste.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
output_file = OUTPUT_DIR / f"{domain}.conf"
|
||||
content = [
|
||||
"/*",
|
||||
f" AUTO-GENERATED FILE - DOMAIN: {raw_domain}",
|
||||
" Ne pas modifier manuellement.",
|
||||
" Source: domains.yaml",
|
||||
"*/",
|
||||
"",
|
||||
]
|
||||
|
||||
servicegroup_content.append(render_servicegroup(group_name))
|
||||
|
||||
for idx, item in enumerate(services, start=1):
|
||||
if not isinstance(item, dict):
|
||||
print(f"Erreur: entrée invalide dans '{raw_domain}' à la position {idx}.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
missing = [key for key in ("name", "date", "notes") if key not in item]
|
||||
if missing:
|
||||
print(
|
||||
f"Erreur: dans le domaine '{raw_domain}', entrée {idx}, champs manquants: {', '.join(missing)}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
return 1
|
||||
|
||||
try:
|
||||
if "probe" in item:
|
||||
validate_probe(item)
|
||||
content.append(render_probe_service(domain, group_name, item))
|
||||
else:
|
||||
content.append(render_mock_service(domain, group_name, item))
|
||||
except ValueError as exc:
|
||||
print(f"Erreur dans '{raw_domain}', entrée {idx}: {exc}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
output_file.write_text("\n".join(content).rstrip() + "\n", encoding="utf-8")
|
||||
generated_files.append(str(output_file))
|
||||
|
||||
SERVICEGROUPS_FILE.write_text("\n".join(servicegroup_content).rstrip() + "\n", encoding="utf-8")
|
||||
generated_files.append(str(SERVICEGROUPS_FILE))
|
||||
|
||||
print("Fichiers générés :")
|
||||
for file_path in generated_files:
|
||||
print(f" - {file_path}")
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
|
|
@ -1,105 +0,0 @@
|
|||
SHELL := /bin/bash
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
PYTHON ?= python3
|
||||
ANSIBLE_PLAYBOOK ?= ansible-playbook
|
||||
INVENTORY ?= ansible/inventory
|
||||
PLAYBOOK ?= ansible/site.yml
|
||||
ARCHIVE ?= life-noc-from-scratch-debian12.zip
|
||||
PROJECT_NAME ?= life-noc
|
||||
|
||||
GENERATORS := scripts/generate_services.py scripts/generate_bpm.py
|
||||
CHECKS := checks/check_life_noc_mock.sh checks/check_echeance_vie.sh
|
||||
ICINGA_FILES := $(wildcard icinga/commands/*.conf) $(wildcard icinga/hosts/*.conf) $(wildcard icinga/templates/*.conf) $(wildcard icinga/services/*.conf)
|
||||
|
||||
.PHONY: help all generate regen services bpm validate validate-yaml validate-python validate-shell validate-generated check mock-ok mock-warning mock-critical clean bootstrap deploy deploy-no-bpm deploy-with-bpm package inventory-example vars-example info
|
||||
|
||||
help:
|
||||
@echo "Life-NOC - cibles disponibles"
|
||||
@echo
|
||||
@echo " make generate Génère services Icinga + BPM"
|
||||
@echo " make validate Valide YAML, Python, shell et artefacts générés"
|
||||
@echo " make check Génère puis valide"
|
||||
@echo " make bootstrap Déploie la plateforme complète depuis Debian 12 vanille"
|
||||
@echo " make deploy Alias de bootstrap"
|
||||
@echo " make deploy-with-bpm Déploie explicitement avec artefact BPM"
|
||||
@echo " make mock-ok Teste la sonde mock en état OK"
|
||||
@echo " make mock-warning Teste la sonde mock en état WARNING"
|
||||
@echo " make mock-critical Teste la sonde mock en état CRITICAL"
|
||||
@echo " make package Crée une archive zip du dépôt"
|
||||
@echo " make inventory-example Rappelle comment préparer l'inventaire"
|
||||
@echo " make vars-example Rappelle comment préparer les variables"
|
||||
@echo " make info Affiche les variables utiles"
|
||||
@echo
|
||||
@echo "Variables surchargables : INVENTORY=..., PLAYBOOK=..., ARCHIVE=..."
|
||||
|
||||
all: check
|
||||
regen: generate
|
||||
|
||||
generate: services bpm
|
||||
|
||||
services: domains.yaml scripts/generate_services.py
|
||||
$(PYTHON) scripts/generate_services.py
|
||||
|
||||
bpm: domains.yaml scripts/generate_bpm.py
|
||||
$(PYTHON) scripts/generate_bpm.py
|
||||
|
||||
validate: validate-yaml validate-python validate-shell validate-generated
|
||||
|
||||
validate-yaml: domains.yaml
|
||||
@$(PYTHON) -c 'import yaml, pathlib; p = pathlib.Path("domains.yaml"); data = yaml.safe_load(p.read_text(encoding="utf-8")); assert isinstance(data, dict) and isinstance(data.get("domains"), dict), "domains.yaml invalide: clé racine domains requise"; print("YAML valide: domains.yaml")'
|
||||
|
||||
validate-python: $(GENERATORS)
|
||||
@$(PYTHON) -m py_compile $(GENERATORS)
|
||||
@echo "Python OK"
|
||||
|
||||
validate-shell: $(CHECKS)
|
||||
@bash -n $(CHECKS)
|
||||
@echo "Shell OK"
|
||||
|
||||
validate-generated: $(ICINGA_FILES) bpm/life-noc.json
|
||||
@grep -R 'check_life_noc_mock' icinga/templates icinga/commands icinga/services >/dev/null
|
||||
@$(PYTHON) -c 'import json, pathlib; p = pathlib.Path("bpm/life-noc.json"); data = json.loads(p.read_text(encoding="utf-8")); assert isinstance(data.get("processes"), list) and data["processes"], "bpm/life-noc.json invalide: processes absent ou vide"; print("Artefacts générés valides")'
|
||||
|
||||
check: generate validate
|
||||
|
||||
mock-ok:
|
||||
@bash checks/check_life_noc_mock.sh --state OK --message "Sous contrôle" --item-name "demo" --date "2026-03-13"
|
||||
|
||||
mock-warning:
|
||||
@bash checks/check_life_noc_mock.sh --state WARNING --message "Attention requise" --item-name "demo" --date "2026-03-13"; test $$? -eq 1
|
||||
|
||||
mock-critical:
|
||||
@bash checks/check_life_noc_mock.sh --state CRITICAL --message "Action requise" --item-name "demo" --date "2026-03-13"; test $$? -eq 2
|
||||
|
||||
bootstrap: check
|
||||
$(ANSIBLE_PLAYBOOK) -i $(INVENTORY) $(PLAYBOOK)
|
||||
|
||||
deploy: bootstrap
|
||||
|
||||
deploy-no-bpm: bootstrap
|
||||
|
||||
deploy-with-bpm: check
|
||||
$(ANSIBLE_PLAYBOOK) -i $(INVENTORY) $(PLAYBOOK) -e life_noc_bpm_deploy_enabled=true
|
||||
|
||||
package: check
|
||||
@rm -f $(ARCHIVE)
|
||||
@zip -qr $(ARCHIVE) . -x '*.git*' -x '__pycache__/*' -x '*.pyc' -x '$(ARCHIVE)'
|
||||
@echo "Archive créée: $(ARCHIVE)"
|
||||
|
||||
clean:
|
||||
rm -f $(ARCHIVE)
|
||||
|
||||
inventory-example:
|
||||
@echo "Copier ansible/inventory.example vers ansible/inventory puis ajuster l'hôte, l'adresse et l'utilisateur ansible."
|
||||
|
||||
vars-example:
|
||||
@echo "Copier ansible/group_vars/all.yml.example vers ansible/group_vars/all.yml puis remplacer TOUS les mots de passe par les tiens."
|
||||
|
||||
info:
|
||||
@echo "PROJECT_NAME=$(PROJECT_NAME)"
|
||||
@echo "PYTHON=$(PYTHON)"
|
||||
@echo "ANSIBLE_PLAYBOOK=$(ANSIBLE_PLAYBOOK)"
|
||||
@echo "INVENTORY=$(INVENTORY)"
|
||||
@echo "PLAYBOOK=$(PLAYBOOK)"
|
||||
@echo "ARCHIVE=$(ARCHIVE)"
|
||||
|
|
@ -1,136 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from pathlib import Path
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
|
||||
INPUT_FILE = Path("domains.yaml")
|
||||
OUTPUT_DIR = Path("bpm")
|
||||
OUTPUT_FILE = OUTPUT_DIR / "life-noc.json"
|
||||
HOST_NAME = "life-noc"
|
||||
|
||||
|
||||
def slugify(value: str) -> str:
|
||||
value = value.strip().lower()
|
||||
replacements = {
|
||||
"à": "a", "â": "a", "ä": "a",
|
||||
"ç": "c",
|
||||
"é": "e", "è": "e", "ê": "e", "ë": "e",
|
||||
"î": "i", "ï": "i",
|
||||
"ô": "o", "ö": "o",
|
||||
"ù": "u", "û": "u", "ü": "u",
|
||||
"ÿ": "y",
|
||||
"œ": "oe",
|
||||
"æ": "ae",
|
||||
"'": "",
|
||||
"’": "",
|
||||
}
|
||||
for old, new in replacements.items():
|
||||
value = value.replace(old, new)
|
||||
value = re.sub(r"[^a-z0-9\-]+", "-", value)
|
||||
value = re.sub(r"-{2,}", "-", value)
|
||||
return value.strip("-")
|
||||
|
||||
|
||||
def build_service_name(domain_slug: str, item_name: str) -> str:
|
||||
return f"{domain_slug}-{item_name.strip()}"
|
||||
|
||||
|
||||
def make_leaf_node(service_name: str) -> dict:
|
||||
return {
|
||||
"type": "service",
|
||||
"host": HOST_NAME,
|
||||
"service": service_name
|
||||
}
|
||||
|
||||
|
||||
def make_domain_process(domain_label: str, domain_slug: str, services: list[dict]) -> dict:
|
||||
leaves = []
|
||||
for item in services:
|
||||
service_name = build_service_name(domain_slug, item["name"])
|
||||
leaves.append(make_leaf_node(service_name))
|
||||
|
||||
return {
|
||||
"name": domain_label.upper(),
|
||||
"operator": "worst",
|
||||
"nodes": leaves
|
||||
}
|
||||
|
||||
|
||||
def main() -> int:
|
||||
if not INPUT_FILE.exists():
|
||||
print(f"Erreur: fichier introuvable: {INPUT_FILE}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
with INPUT_FILE.open("r", encoding="utf-8") as f:
|
||||
data = yaml.safe_load(f)
|
||||
|
||||
if not isinstance(data, dict) or "domains" not in data:
|
||||
print("Erreur: le YAML doit contenir une clé racine 'domains'.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
domains = data["domains"]
|
||||
if not isinstance(domains, dict):
|
||||
print("Erreur: 'domains' doit être un objet YAML.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
processes = []
|
||||
root_nodes = []
|
||||
|
||||
for raw_domain, services in domains.items():
|
||||
if not isinstance(services, list):
|
||||
print(f"Erreur: le domaine '{raw_domain}' doit contenir une liste.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
for idx, item in enumerate(services, start=1):
|
||||
if not isinstance(item, dict):
|
||||
print(f"Erreur: entrée invalide dans '{raw_domain}' à la position {idx}.", file=sys.stderr)
|
||||
return 1
|
||||
missing = [key for key in ("name", "date", "notes") if key not in item]
|
||||
if missing:
|
||||
print(
|
||||
f"Erreur: dans le domaine '{raw_domain}', entrée {idx}, champs manquants: {', '.join(missing)}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
return 1
|
||||
|
||||
domain_slug = slugify(str(raw_domain))
|
||||
domain_label = str(raw_domain)
|
||||
|
||||
domain_process = make_domain_process(domain_label, domain_slug, services)
|
||||
processes.append(domain_process)
|
||||
|
||||
root_nodes.append({
|
||||
"type": "process",
|
||||
"name": domain_label.upper()
|
||||
})
|
||||
|
||||
root_process = {
|
||||
"name": "LIFE-NOC",
|
||||
"operator": "worst",
|
||||
"nodes": root_nodes
|
||||
}
|
||||
|
||||
bpm_document = {
|
||||
"version": 1,
|
||||
"processes": [root_process] + processes
|
||||
}
|
||||
|
||||
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
||||
with OUTPUT_FILE.open("w", encoding="utf-8") as f:
|
||||
json.dump(bpm_document, f, ensure_ascii=False, indent=2)
|
||||
|
||||
print(f"BPM généré: {OUTPUT_FILE}")
|
||||
print("Processus générés :")
|
||||
print(" - LIFE-NOC")
|
||||
for raw_domain in domains.keys():
|
||||
print(f" - {str(raw_domain).upper()}")
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
life_noc_project_root: /opt/life-noc
|
||||
life_noc_icinga_conf_root: /etc/icinga2/conf.d/life-noc
|
||||
life_noc_plugin_dir: /usr/lib/nagios/plugins
|
||||
life_noc_validate_icinga: true
|
||||
life_noc_reload_icinga: true
|
||||
life_noc_bpm_deploy_enabled: false
|
||||
life_noc_bpm_destination_dir: /etc/icingaweb2/modules/businessprocess/processes
|
||||
life_noc_bpm_target_file: /etc/icingaweb2/modules/businessprocess/processes/life-noc.json
|
||||
life_noc_owner: root
|
||||
life_noc_group: root
|
||||
|
|
@ -1,191 +0,0 @@
|
|||
---
|
||||
- name: install minimal dependencies
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- python3
|
||||
- python3-yaml
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: remove legacy life-noc subdirectory under icinga conf.d
|
||||
ansible.builtin.file:
|
||||
path: /etc/icinga2/conf.d/life-noc
|
||||
state: absent
|
||||
notify:
|
||||
- validate icinga
|
||||
- reload icinga
|
||||
|
||||
- name: find previously deployed flattened life-noc config files
|
||||
ansible.builtin.find:
|
||||
paths: /etc/icinga2/conf.d
|
||||
patterns: "life-noc-*"
|
||||
file_type: file
|
||||
register: life_noc_flattened_files
|
||||
|
||||
- name: remove previously deployed flattened life-noc config files
|
||||
ansible.builtin.file:
|
||||
path: "{{ item.path }}"
|
||||
state: absent
|
||||
loop: "{{ life_noc_flattened_files.files }}"
|
||||
notify:
|
||||
- validate icinga
|
||||
- reload icinga
|
||||
|
||||
- name: create project root
|
||||
ansible.builtin.file:
|
||||
path: "{{ life_noc_project_root }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
|
||||
- name: copy project files
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../"
|
||||
dest: "{{ life_noc_project_root }}/"
|
||||
owner: root
|
||||
group: root
|
||||
mode: preserve
|
||||
|
||||
- name: generate icinga services from domains
|
||||
ansible.builtin.command:
|
||||
cmd: python3 scripts/generate_services.py
|
||||
chdir: "{{ life_noc_project_root }}"
|
||||
changed_when: true
|
||||
|
||||
- name: generate bpm from domains
|
||||
ansible.builtin.command:
|
||||
cmd: python3 scripts/generate_bpm.py
|
||||
chdir: "{{ life_noc_project_root }}"
|
||||
changed_when: true
|
||||
|
||||
##################################
|
||||
|
||||
- name: find life-noc command files on target
|
||||
ansible.builtin.find:
|
||||
paths: "{{ life_noc_project_root }}/icinga/commands"
|
||||
patterns: "*.conf"
|
||||
file_type: file
|
||||
register: life_noc_command_files
|
||||
|
||||
- name: deploy life-noc command files into icinga conf.d
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item.path }}"
|
||||
dest: "/etc/icinga2/conf.d/life-noc-command-{{ item.path | basename }}"
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
loop: "{{ life_noc_command_files.files }}"
|
||||
notify:
|
||||
- validate icinga
|
||||
- reload icinga
|
||||
|
||||
- name: find life-noc template files on target
|
||||
ansible.builtin.find:
|
||||
paths: "{{ life_noc_project_root }}/icinga/templates"
|
||||
patterns: "*.conf"
|
||||
file_type: file
|
||||
register: life_noc_template_files
|
||||
|
||||
- name: deploy life-noc template files into icinga conf.d
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item.path }}"
|
||||
dest: "/etc/icinga2/conf.d/life-noc-template-{{ item.path | basename }}"
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
loop: "{{ life_noc_template_files.files }}"
|
||||
notify:
|
||||
- validate icinga
|
||||
- reload icinga
|
||||
|
||||
- name: find life-noc host files on target
|
||||
ansible.builtin.find:
|
||||
paths: "{{ life_noc_project_root }}/icinga/hosts"
|
||||
patterns: "*.conf"
|
||||
file_type: file
|
||||
register: life_noc_host_files
|
||||
|
||||
- name: deploy life-noc host files into icinga conf.d
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item.path }}"
|
||||
dest: "/etc/icinga2/conf.d/life-noc-host-{{ item.path | basename }}"
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
loop: "{{ life_noc_host_files.files }}"
|
||||
notify:
|
||||
- validate icinga
|
||||
- reload icinga
|
||||
|
||||
- name: find life-noc service files on target
|
||||
ansible.builtin.find:
|
||||
paths: "{{ life_noc_project_root }}/icinga/services"
|
||||
patterns: "*.conf"
|
||||
file_type: file
|
||||
register: life_noc_service_files
|
||||
|
||||
- name: deploy life-noc service files into icinga conf.d
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item.path }}"
|
||||
dest: "/etc/icinga2/conf.d/life-noc-service-{{ item.path | basename }}"
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
loop: "{{ life_noc_service_files.files }}"
|
||||
notify:
|
||||
- validate icinga
|
||||
- reload icinga
|
||||
|
||||
##################################
|
||||
|
||||
- name: install mock plugin
|
||||
ansible.builtin.copy:
|
||||
src: "{{ life_noc_project_root }}/checks/check_life_noc_mock.sh"
|
||||
dest: /usr/lib/nagios/plugins/check_life_noc_mock.sh
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
notify:
|
||||
- validate icinga
|
||||
- reload icinga
|
||||
|
||||
- name: install compatibility wrapper plugin
|
||||
ansible.builtin.copy:
|
||||
src: "{{ life_noc_project_root }}/checks/check_echeance_vie.sh"
|
||||
dest: /usr/lib/nagios/plugins/check_echeance_vie.sh
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
notify:
|
||||
- validate icinga
|
||||
- reload icinga
|
||||
|
||||
- name: ensure bpm destination directory exists
|
||||
ansible.builtin.file:
|
||||
path: "{{ life_noc_bpm_destination_dir }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
when:
|
||||
- life_noc_bpm_deploy_enabled | bool
|
||||
- life_noc_bpm_destination_dir is defined
|
||||
|
||||
- name: deploy bpm json
|
||||
ansible.builtin.copy:
|
||||
src: "{{ life_noc_project_root }}/bpm/life-noc.json"
|
||||
dest: "{{ life_noc_bpm_destination_dir }}/life-noc.json"
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
when:
|
||||
- life_noc_bpm_deploy_enabled | bool
|
||||
- life_noc_bpm_destination_dir is defined
|
||||
Loading…
Reference in a new issue