diff --git a/domains.yaml b/domains.yaml new file mode 100644 index 0000000..254129d --- /dev/null +++ b/domains.yaml @@ -0,0 +1,738 @@ +domains: + + revue: + - name: revue-quotidienne-life-noc + date: 2026-03-07 + notes: Revue quotidienne du tableau Life-NOC + + - name: revue-hebdomadaire-priorites + date: 2026-03-08 + notes: Revue hebdomadaire des priorités personnelles et professionnelles + + - 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 diff --git a/icinga/services/actifs-chezlepro.conf b/icinga/services/actifs-chezlepro.conf new file mode 100644 index 0000000..e657eea --- /dev/null +++ b/icinga/services/actifs-chezlepro.conf @@ -0,0 +1,40 @@ +/* + AUTO-GENERATED FILE - DOMAIN: actifs-chezlepro + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "actifs-chezlepro-revision-inventaire-materiel" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Revoir l'inventaire du matériel de Chezlepro" + assign where host.name == "life-noc" +} + +apply Service "actifs-chezlepro-verification-amortissables" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérifier le registre des biens amortissables" + assign where host.name == "life-noc" +} + +apply Service "actifs-chezlepro-verification-serveurs-et-composants" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérifier l'état des serveurs et composants matériels" + assign where host.name == "life-noc" +} + +apply Service "actifs-chezlepro-verification-reserve-pieces" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérifier les pièces de rechange critiques" + assign where host.name == "life-noc" +} + +apply Service "actifs-chezlepro-revision-actifs-transferts" { + import "service_echeance" + vars.date_echeance = "2026-06-15" + notes = "Réviser les actifs transférés ou à transférer à l'entreprise" + assign where host.name == "life-noc" +} diff --git a/icinga/services/animaux.conf b/icinga/services/animaux.conf new file mode 100644 index 0000000..9ad1f8d --- /dev/null +++ b/icinga/services/animaux.conf @@ -0,0 +1,26 @@ +/* + AUTO-GENERATED FILE - DOMAIN: animaux + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "animaux-verification-stock-nourriture-chats" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification du stock de nourriture pour chats" + assign where host.name == "life-noc" +} + +apply Service "animaux-verification-friandises-et-litiere" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification des stocks de friandises et de litière" + assign where host.name == "life-noc" +} + +apply Service "animaux-revision-routine-soins-animaux" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Revue de la routine de soins et des besoins matériels des chats" + assign where host.name == "life-noc" +} diff --git a/icinga/services/communaute.conf b/icinga/services/communaute.conf new file mode 100644 index 0000000..aa406b3 --- /dev/null +++ b/icinga/services/communaute.conf @@ -0,0 +1,40 @@ +/* + AUTO-GENERATED FILE - DOMAIN: communaute + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "communaute-verification-outils-aa" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérifier les outils numériques liés aux activités communautaires" + assign where host.name == "life-noc" +} + +apply Service "communaute-verification-espace-87-16" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérifier l'espace Nextcloud du district" + assign where host.name == "life-noc" +} + +apply Service "communaute-verification-salles-visio-groupes" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérifier les salles de visioconférence des groupes" + assign where host.name == "life-noc" +} + +apply Service "communaute-verification-depots-rapports-rsg" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérifier les dépôts de rapports RSG" + assign where host.name == "life-noc" +} + +apply Service "communaute-revision-outils-communication-communaute" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Réviser les moyens de communication communautaires" + assign where host.name == "life-noc" +} diff --git a/icinga/services/documentation.conf b/icinga/services/documentation.conf new file mode 100644 index 0000000..5e84627 --- /dev/null +++ b/icinga/services/documentation.conf @@ -0,0 +1,33 @@ +/* + AUTO-GENERATED FILE - DOMAIN: documentation + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "documentation-revue-docs-personnelles-importantes" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Revoir l'organisation des documents personnels importants" + assign where host.name == "life-noc" +} + +apply Service "documentation-revue-wiki-technique" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Revoir le wiki technique et sa cohérence" + assign where host.name == "life-noc" +} + +apply Service "documentation-revue-base-connaissances" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Revoir la base de connaissances globale" + assign where host.name == "life-noc" +} + +apply Service "documentation-verification-sauvegarde-docs-cles" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérifier la sauvegarde des documents clés" + assign where host.name == "life-noc" +} diff --git a/icinga/services/energie.conf b/icinga/services/energie.conf new file mode 100644 index 0000000..23efd0d --- /dev/null +++ b/icinga/services/energie.conf @@ -0,0 +1,82 @@ +/* + AUTO-GENERATED FILE - DOMAIN: energie + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "energie-inspection-batteries-lifepo4" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Inspection physique et logique des batteries LiFePO4" + assign where host.name == "life-noc" +} + +apply Service "energie-verification-tension-batteries" { + import "service_echeance" + vars.date_echeance = "2026-03-15" + notes = "Vérification des tensions et cohérence des batteries" + assign where host.name == "life-noc" +} + +apply Service "energie-verification-smartshunt" { + import "service_echeance" + vars.date_echeance = "2026-03-15" + notes = "Vérification SmartShunt et cohérence du monitoring" + assign where host.name == "life-noc" +} + +apply Service "energie-verification-cerbo-gx" { + import "service_echeance" + vars.date_echeance = "2026-03-15" + notes = "Vérification Cerbo GX et remontée des données" + assign where host.name == "life-noc" +} + +apply Service "energie-verification-can-rs485" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification des communications CAN ou RS485" + assign where host.name == "life-noc" +} + +apply Service "energie-inspection-cablage-energie" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Inspection du câblage et des connexions énergétiques" + assign where host.name == "life-noc" +} + +apply Service "energie-verification-busbars" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification du serrage, corrosion et échauffement des busbars" + assign where host.name == "life-noc" +} + +apply Service "energie-verification-parametres-charge" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification des paramètres de charge et float" + assign where host.name == "life-noc" +} + +apply Service "energie-test-charge-batteries" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Test de comportement en charge des batteries" + assign where host.name == "life-noc" +} + +apply Service "energie-test-comportement-onduleur" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérifier le comportement du Multiplus sous charge légère" + assign where host.name == "life-noc" +} + +apply Service "energie-verification-journal-evenements-victron" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification des événements et anomalies Victron" + assign where host.name == "life-noc" +} diff --git a/icinga/services/exploitation-chezlepro.conf b/icinga/services/exploitation-chezlepro.conf new file mode 100644 index 0000000..082de8c --- /dev/null +++ b/icinga/services/exploitation-chezlepro.conf @@ -0,0 +1,47 @@ +/* + AUTO-GENERATED FILE - DOMAIN: exploitation-chezlepro + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "exploitation-chezlepro-revision-playbooks-ansible" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Revue des playbooks Ansible" + assign where host.name == "life-noc" +} + +apply Service "exploitation-chezlepro-verification-inventaires-ansible" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des inventaires Ansible" + assign where host.name == "life-noc" +} + +apply Service "exploitation-chezlepro-revision-documentation-technique" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Revue de la documentation technique Chezlepro" + assign where host.name == "life-noc" +} + +apply Service "exploitation-chezlepro-verification-procedures-reprise" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérifier les procédures de reprise et restauration" + assign where host.name == "life-noc" +} + +apply Service "exploitation-chezlepro-revue-capacite-ressources" { + import "service_echeance" + vars.date_echeance = "2026-06-15" + notes = "Revue CPU RAM stockage et charge de l'infrastructure" + assign where host.name == "life-noc" +} + +apply Service "exploitation-chezlepro-verification-jobs-automatises" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification des jobs automatisés et scripts périodiques" + assign where host.name == "life-noc" +} diff --git a/icinga/services/finances-personnelles.conf b/icinga/services/finances-personnelles.conf new file mode 100644 index 0000000..bee8d79 --- /dev/null +++ b/icinga/services/finances-personnelles.conf @@ -0,0 +1,68 @@ +/* + AUTO-GENERATED FILE - DOMAIN: finances-personnelles + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "finances-personnelles-revision-comptes-bancaires" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Révision mensuelle des comptes bancaires personnels" + assign where host.name == "life-noc" +} + +apply Service "finances-personnelles-verification-cartes-credit" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification des soldes et transactions des cartes de crédit" + assign where host.name == "life-noc" +} + +apply Service "finances-personnelles-paiement-cartes-credit" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Paiement des cartes de crédit personnelles" + assign where host.name == "life-noc" +} + +apply Service "finances-personnelles-revision-budget-personnel" { + import "service_echeance" + vars.date_echeance = "2026-04-05" + notes = "Révision mensuelle du budget personnel" + assign where host.name == "life-noc" +} + +apply Service "finances-personnelles-verification-prelevements-automatiques" { + import "service_echeance" + vars.date_echeance = "2026-04-03" + notes = "Vérification des prélèvements automatiques personnels" + assign where host.name == "life-noc" +} + +apply Service "finances-personnelles-verification-placements" { + import "service_echeance" + vars.date_echeance = "2026-06-30" + notes = "Vérification périodique des placements et comptes enregistrés" + assign where host.name == "life-noc" +} + +apply Service "finances-personnelles-verification-cotisations-reer" { + import "service_echeance" + vars.date_echeance = "2026-02-28" + notes = "Vérification des cotisations REER" + assign where host.name == "life-noc" +} + +apply Service "finances-personnelles-verification-celi" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification de l'espace CELI et de son utilisation" + assign where host.name == "life-noc" +} + +apply Service "finances-personnelles-preparation-dossier-financier-annuel" { + import "service_echeance" + vars.date_echeance = "2026-01-31" + notes = "Préparer le dossier financier annuel personnel" + assign where host.name == "life-noc" +} diff --git a/icinga/services/fiscalite-personnelle.conf b/icinga/services/fiscalite-personnelle.conf new file mode 100644 index 0000000..f0dbf3d --- /dev/null +++ b/icinga/services/fiscalite-personnelle.conf @@ -0,0 +1,54 @@ +/* + AUTO-GENERATED FILE - DOMAIN: fiscalite-personnelle + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "fiscalite-personnelle-preparation-documents-impots" { + import "service_echeance" + vars.date_echeance = "2026-03-15" + notes = "Rassembler tous les documents fiscaux personnels" + assign where host.name == "life-noc" +} + +apply Service "fiscalite-personnelle-production-impots-federal" { + import "service_echeance" + vars.date_echeance = "2026-04-30" + notes = "Produire la déclaration de revenus fédérale" + assign where host.name == "life-noc" +} + +apply Service "fiscalite-personnelle-production-impots-quebec" { + import "service_echeance" + vars.date_echeance = "2026-04-30" + notes = "Produire la déclaration de revenus Québec" + assign where host.name == "life-noc" +} + +apply Service "fiscalite-personnelle-paiement-solde-impots" { + import "service_echeance" + vars.date_echeance = "2026-04-30" + notes = "Payer tout solde d'impôt exigible" + assign where host.name == "life-noc" +} + +apply Service "fiscalite-personnelle-verification-avis-cotisation" { + import "service_echeance" + vars.date_echeance = "2026-05-31" + notes = "Vérifier les avis de cotisation ARC et Revenu Québec" + assign where host.name == "life-noc" +} + +apply Service "fiscalite-personnelle-archivage-documents-fiscaux" { + import "service_echeance" + vars.date_echeance = "2026-06-15" + notes = "Archiver les documents fiscaux personnels" + assign where host.name == "life-noc" +} + +apply Service "fiscalite-personnelle-verification-acomptes-provisionnels" { + import "service_echeance" + vars.date_echeance = "2026-03-15" + notes = "Vérifier si des acomptes provisionnels sont requis" + assign where host.name == "life-noc" +} diff --git a/icinga/services/focus.conf b/icinga/services/focus.conf index a2bd747..f3b2148 100644 --- a/icinga/services/focus.conf +++ b/icinga/services/focus.conf @@ -1,35 +1,26 @@ -apply Service "FOCUS-01" { - - import "service-focus" - - check_command = "dummy" - vars.dummy_state = 0 - vars.dummy_text = "Priorité 1" +/* + AUTO-GENERATED FILE - DOMAIN: focus + Ne pas modifier manuellement. + Source: domains.yaml +*/ +apply Service "focus-entretien-processus-focus" { + import "service_echeance" + vars.date_echeance = "2026-03-09" + notes = "Vérifier que les cartouches FOCUS sont à jour" assign where host.name == "life-noc" - } -apply Service "FOCUS-02" { - - import "service-focus" - - check_command = "dummy" - vars.dummy_state = 0 - vars.dummy_text = "Priorité 2" - +apply Service "focus-nettoyage-inbox-mentale" { + import "service_echeance" + vars.date_echeance = "2026-03-09" + notes = "Vider et clarifier les éléments capturés hors système" assign where host.name == "life-noc" - } -apply Service "FOCUS-03" { - - import "service-focus" - - check_command = "dummy" - vars.dummy_state = 0 - vars.dummy_text = "Priorité 3" - +apply Service "focus-revue-limitation-engagements" { + import "service_echeance" + vars.date_echeance = "2026-03-31" + notes = "Vérifier que les engagements actifs demeurent réalistes" assign where host.name == "life-noc" - } diff --git a/icinga/services/garage-et-rangement.conf b/icinga/services/garage-et-rangement.conf new file mode 100644 index 0000000..19bdd6f --- /dev/null +++ b/icinga/services/garage-et-rangement.conf @@ -0,0 +1,40 @@ +/* + AUTO-GENERATED FILE - DOMAIN: garage-et-rangement + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "garage-et-rangement-inspection-rangement-plafond" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des supports suspendus au plafond du garage" + assign where host.name == "life-noc" +} + +apply Service "garage-et-rangement-revue-inventaire-garage" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Revue de l'inventaire et de l'ordre du garage" + assign where host.name == "life-noc" +} + +apply Service "garage-et-rangement-verification-rouille-outillage" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification de la corrosion sur les outils et équipements" + assign where host.name == "life-noc" +} + +apply Service "garage-et-rangement-inspection-securite-garage" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérification des conditions de sécurité du garage" + assign where host.name == "life-noc" +} + +apply Service "garage-et-rangement-rotation-stockage-bacs" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Revue des contenus de bacs de rangement" + assign where host.name == "life-noc" +} diff --git a/icinga/services/informatique-personnelle.conf b/icinga/services/informatique-personnelle.conf new file mode 100644 index 0000000..cceb2df --- /dev/null +++ b/icinga/services/informatique-personnelle.conf @@ -0,0 +1,40 @@ +/* + AUTO-GENERATED FILE - DOMAIN: informatique-personnelle + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "informatique-personnelle-verification-sauvegardes-personnelles" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification des sauvegardes personnelles" + assign where host.name == "life-noc" +} + +apply Service "informatique-personnelle-nettoyage-stockage-personnel" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Nettoyage du stockage numérique personnel" + assign where host.name == "life-noc" +} + +apply Service "informatique-personnelle-verification-comptes-importants" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des comptes numériques personnels importants" + assign where host.name == "life-noc" +} + +apply Service "informatique-personnelle-revue-mots-de-passe-personnels" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Revue des mots de passe personnels critiques" + assign where host.name == "life-noc" +} + +apply Service "informatique-personnelle-verification-documents-cloud-personnels" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérifier la cohérence des documents personnels sauvegardés" + assign where host.name == "life-noc" +} diff --git a/icinga/services/infrastructure-chezlepro.conf b/icinga/services/infrastructure-chezlepro.conf new file mode 100644 index 0000000..f525cdb --- /dev/null +++ b/icinga/services/infrastructure-chezlepro.conf @@ -0,0 +1,96 @@ +/* + AUTO-GENERATED FILE - DOMAIN: infrastructure-chezlepro + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "infrastructure-chezlepro-verification-proxmox" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification générale de l'environnement Proxmox" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-ceph" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification générale de l'état Ceph" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-test-restauration-backups" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Test de restauration des sauvegardes" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-pbs-truenas" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des solutions de sauvegarde et synchronisation" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-ups-infrastructure" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification des UPS de l'infrastructure" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-capacite-stockage" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérifier capacité et croissance du stockage" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-apt-cacher-ng" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification du bon fonctionnement d'apt-cacher-ng" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-icinga2" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification de la supervision Icinga2" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-keycloak-openldap" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification de l'identité et de l'authentification centralisées" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-nextcloud" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification de l'état Nextcloud" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-mailcow" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification de l'infrastructure Mailcow" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-openvas" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification de la plateforme OpenVAS" + assign where host.name == "life-noc" +} + +apply Service "infrastructure-chezlepro-verification-journaux-systemes" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Revue des journaux systèmes critiques" + assign where host.name == "life-noc" +} diff --git a/icinga/services/infrastructure.conf b/icinga/services/infrastructure.conf new file mode 100644 index 0000000..5cfc002 --- /dev/null +++ b/icinga/services/infrastructure.conf @@ -0,0 +1,20 @@ +apply Service "Infra-test-backups" { + import "service_echeance" + vars.date_echeance = "2026-03-01" + notes = "Test restauration sauvegardes" + assign where host.name == "life-noc" +} + +apply Service "Infra-test-ups" { + import "service_echeance" + vars.date_echeance = "2026-07-01" + notes = "Test UPS infrastructure" + assign where host.name == "life-noc" +} + +apply Service "Infra-verification-firewall" { + import "service_echeance" + vars.date_echeance = "2026-03-15" + notes = "Verification firewall" + assign where host.name == "life-noc" +} diff --git a/icinga/services/jardin.conf b/icinga/services/jardin.conf new file mode 100644 index 0000000..16bf4fe --- /dev/null +++ b/icinga/services/jardin.conf @@ -0,0 +1,75 @@ +/* + AUTO-GENERATED FILE - DOMAIN: jardin + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "jardin-inspection-vignes" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Inspection et entretien des vignes" + assign where host.name == "life-noc" +} + +apply Service "jardin-entretien-bleuetiers" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Entretien des bleuetiers" + assign where host.name == "life-noc" +} + +apply Service "jardin-entretien-framboisiers" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Entretien des framboisiers" + assign where host.name == "life-noc" +} + +apply Service "jardin-inspection-kiwis-nordiques" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification des kiwis nordiques" + assign where host.name == "life-noc" +} + +apply Service "jardin-entretien-rhubarbe" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Entretien de la rhubarbe" + assign where host.name == "life-noc" +} + +apply Service "jardin-inspection-groseillier" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Inspection du groseillier" + assign where host.name == "life-noc" +} + +apply Service "jardin-inspection-muriers" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Inspection des mûriers" + assign where host.name == "life-noc" +} + +apply Service "jardin-entretien-houblon" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérification et entretien du houblon" + assign where host.name == "life-noc" +} + +apply Service "jardin-revision-pharmacopée-jardin" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification du stock de soins pour végétaux" + assign where host.name == "life-noc" +} + +apply Service "jardin-revision-armoire-produits-jardin" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification et ordre de l'armoire des produits pour végétaux" + assign where host.name == "life-noc" +} diff --git a/icinga/services/maison.conf b/icinga/services/maison.conf index e69de29..2aba7e5 100644 --- a/icinga/services/maison.conf +++ b/icinga/services/maison.conf @@ -0,0 +1,117 @@ +/* + AUTO-GENERATED FILE - DOMAIN: maison + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "maison-remplacement-filtre-fournaise" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Remplacer le filtre de la fournaise" + assign where host.name == "life-noc" +} + +apply Service "maison-inspection-fournaise" { + import "service_echeance" + vars.date_echeance = "2026-09-15" + notes = "Inspection générale de la fournaise avant saison froide" + assign where host.name == "life-noc" +} + +apply Service "maison-inspection-thermopompe" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Inspection et entretien de la thermopompe" + assign where host.name == "life-noc" +} + +apply Service "maison-nettoyage-unites-exterieures" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Nettoyer les unités extérieures et vérifier le dégagement" + assign where host.name == "life-noc" +} + +apply Service "maison-inspection-toiture" { + import "service_echeance" + vars.date_echeance = "2026-10-01" + notes = "Inspection annuelle de la toiture" + assign where host.name == "life-noc" +} + +apply Service "maison-inspection-gouttieres" { + import "service_echeance" + vars.date_echeance = "2026-11-01" + notes = "Inspection et nettoyage des gouttières" + assign where host.name == "life-noc" +} + +apply Service "maison-inspection-fondation" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Inspection de la fondation et des fissures" + assign where host.name == "life-noc" +} + +apply Service "maison-verification-drainage-terrain" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification du drainage autour de la maison" + assign where host.name == "life-noc" +} + +apply Service "maison-test-detecteurs-fumee" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Test des détecteurs de fumée" + assign where host.name == "life-noc" +} + +apply Service "maison-test-detecteurs-co" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Test des détecteurs de monoxyde de carbone" + assign where host.name == "life-noc" +} + +apply Service "maison-remplacement-piles-detecteurs" { + import "service_echeance" + vars.date_echeance = "2026-10-01" + notes = "Remplacement préventif des piles des détecteurs" + assign where host.name == "life-noc" +} + +apply Service "maison-verification-plomberie-visible" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification visuelle de la plomberie accessible" + assign where host.name == "life-noc" +} + +apply Service "maison-inspection-sump-pump" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification de la pompe de puisard si applicable" + assign where host.name == "life-noc" +} + +apply Service "maison-verification-calfetrage" { + import "service_echeance" + vars.date_echeance = "2026-10-15" + notes = "Vérification du calfeutrage portes et fenêtres" + assign where host.name == "life-noc" +} + +apply Service "maison-inspection-portes-garage" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification mécanique et sécurité des portes de garage" + assign where host.name == "life-noc" +} + +apply Service "maison-verification-extincteurs" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérification des extincteurs" + assign where host.name == "life-noc" +} diff --git a/icinga/services/obligations-chezlepro.conf b/icinga/services/obligations-chezlepro.conf new file mode 100644 index 0000000..4329907 --- /dev/null +++ b/icinga/services/obligations-chezlepro.conf @@ -0,0 +1,61 @@ +/* + AUTO-GENERATED FILE - DOMAIN: obligations-chezlepro + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "obligations-chezlepro-verification-registraire-entreprise" { + import "service_echeance" + vars.date_echeance = "2026-06-15" + notes = "Vérifier les obligations au Registraire des entreprises" + assign where host.name == "life-noc" +} + +apply Service "obligations-chezlepro-verification-declarations-taxes" { + import "service_echeance" + vars.date_echeance = "2026-04-30" + notes = "Vérifier les obligations de taxes de l'entreprise si applicables" + assign where host.name == "life-noc" +} + +apply Service "obligations-chezlepro-verification-dossier-comptable-entreprise" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérifier l'ordre du dossier comptable Chezlepro" + assign where host.name == "life-noc" +} + +apply Service "obligations-chezlepro-verification-facturation-clients" { + import "service_echeance" + vars.date_echeance = "2026-04-10" + notes = "Vérifier la facturation et son suivi" + assign where host.name == "life-noc" +} + +apply Service "obligations-chezlepro-verification-paiements-fournisseurs" { + import "service_echeance" + vars.date_echeance = "2026-04-10" + notes = "Vérifier les paiements fournisseurs" + assign where host.name == "life-noc" +} + +apply Service "obligations-chezlepro-verification-contrats-ententes" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérifier contrats, ententes et obligations associées" + assign where host.name == "life-noc" +} + +apply Service "obligations-chezlepro-verification-assurances-entreprise" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérifier les assurances de l'entreprise" + assign where host.name == "life-noc" +} + +apply Service "obligations-chezlepro-archivage-documents-entreprise" { + import "service_echeance" + vars.date_echeance = "2026-05-31" + notes = "Archiver les documents administratifs et financiers de l'entreprise" + assign where host.name == "life-noc" +} diff --git a/icinga/services/obligations-legales-personnelles.conf b/icinga/services/obligations-legales-personnelles.conf new file mode 100644 index 0000000..bda143e --- /dev/null +++ b/icinga/services/obligations-legales-personnelles.conf @@ -0,0 +1,54 @@ +/* + AUTO-GENERATED FILE - DOMAIN: obligations-legales-personnelles + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "obligations-legales-personnelles-verification-testament" { + import "service_echeance" + vars.date_echeance = "2026-07-01" + notes = "Vérifier la pertinence et l'actualité du testament" + assign where host.name == "life-noc" +} + +apply Service "obligations-legales-personnelles-verification-mandat-inaptitude" { + import "service_echeance" + vars.date_echeance = "2026-07-01" + notes = "Vérifier le mandat de protection et documents connexes" + assign where host.name == "life-noc" +} + +apply Service "obligations-legales-personnelles-verification-directives-medicales" { + import "service_echeance" + vars.date_echeance = "2026-07-15" + notes = "Vérifier les directives médicales anticipées" + assign where host.name == "life-noc" +} + +apply Service "obligations-legales-personnelles-verification-papiers-identite" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérifier l'expiration des papiers d'identité" + assign where host.name == "life-noc" +} + +apply Service "obligations-legales-personnelles-renouvellement-permis-conduire" { + import "service_echeance" + vars.date_echeance = "2027-01-01" + notes = "Vérifier le renouvellement du permis de conduire" + assign where host.name == "life-noc" +} + +apply Service "obligations-legales-personnelles-verification-carte-assurance-maladie" { + import "service_echeance" + vars.date_echeance = "2026-10-01" + notes = "Vérifier l'expiration de la carte d'assurance maladie" + assign where host.name == "life-noc" +} + +apply Service "obligations-legales-personnelles-verification-passeport" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérifier l'expiration du passeport" + assign where host.name == "life-noc" +} diff --git a/icinga/services/outils-et-equipements.conf b/icinga/services/outils-et-equipements.conf new file mode 100644 index 0000000..b4ae8c1 --- /dev/null +++ b/icinga/services/outils-et-equipements.conf @@ -0,0 +1,40 @@ +/* + AUTO-GENERATED FILE - DOMAIN: outils-et-equipements + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "outils-et-equipements-entretien-outils-jardin" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Nettoyage et entretien des outils de jardin" + assign where host.name == "life-noc" +} + +apply Service "outils-et-equipements-inspection-outils-electriques" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des outils électriques" + assign where host.name == "life-noc" +} + +apply Service "outils-et-equipements-verification-rallonges-et-connecteurs" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des rallonges et connecteurs" + assign where host.name == "life-noc" +} + +apply Service "outils-et-equipements-verification-compresseur-et-accessoires" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification du compresseur et accessoires" + assign where host.name == "life-noc" +} + +apply Service "outils-et-equipements-revision-inventaire-outillage" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Revue de l'inventaire d'outillage" + assign where host.name == "life-noc" +} diff --git a/icinga/services/projets.conf b/icinga/services/projets.conf new file mode 100644 index 0000000..dc8bd50 --- /dev/null +++ b/icinga/services/projets.conf @@ -0,0 +1,47 @@ +/* + AUTO-GENERATED FILE - DOMAIN: projets + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "projets-revision-life-noc" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Révision du projet Life-NOC" + assign where host.name == "life-noc" +} + +apply Service "projets-revision-alliance-boreale" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Révision du projet Alliance Boréale" + assign where host.name == "life-noc" +} + +apply Service "projets-revision-erplibre" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Révision du projet ERPLibre" + assign where host.name == "life-noc" +} + +apply Service "projets-revision-semence-numerique" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Révision du projet semence numérique" + assign where host.name == "life-noc" +} + +apply Service "projets-revision-ortrux-1" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Révision du système Ortrux-1" + assign where host.name == "life-noc" +} + +apply Service "projets-revision-district16" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Révision du projet DISTRICT16" + assign where host.name == "life-noc" +} diff --git a/icinga/services/reseau-chezlepro.conf b/icinga/services/reseau-chezlepro.conf new file mode 100644 index 0000000..aa4bb95 --- /dev/null +++ b/icinga/services/reseau-chezlepro.conf @@ -0,0 +1,75 @@ +/* + AUTO-GENERATED FILE - DOMAIN: reseau-chezlepro + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "reseau-chezlepro-verification-firewalls" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification des firewalls" + assign where host.name == "life-noc" +} + +apply Service "reseau-chezlepro-verification-vpn-openvpn" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification des tunnels OpenVPN" + assign where host.name == "life-noc" +} + +apply Service "reseau-chezlepro-verification-crl-certificats" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification de la CRL et des certificats" + assign where host.name == "life-noc" +} + +apply Service "reseau-chezlepro-verification-switches" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des switches et uplinks" + assign where host.name == "life-noc" +} + +apply Service "reseau-chezlepro-verification-vlans-segmentation" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification de la segmentation réseau" + assign where host.name == "life-noc" +} + +apply Service "reseau-chezlepro-verification-dns" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification DNS interne et externe" + assign where host.name == "life-noc" +} + +apply Service "reseau-chezlepro-verification-dynamic-dns" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification du DNS dynamique si utilisé" + assign where host.name == "life-noc" +} + +apply Service "reseau-chezlepro-audit-regles-firewall" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Audit périodique des règles de firewall" + assign where host.name == "life-noc" +} + +apply Service "reseau-chezlepro-verification-geoblocking" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérifier le geoblocking et son effet attendu" + assign where host.name == "life-noc" +} + +apply Service "reseau-chezlepro-verification-certificats-publics" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérifier les expirations de certificats publics" + assign where host.name == "life-noc" +} diff --git a/icinga/services/resilience.conf b/icinga/services/resilience.conf index e69de29..4422b03 100644 --- a/icinga/services/resilience.conf +++ b/icinga/services/resilience.conf @@ -0,0 +1,61 @@ +/* + AUTO-GENERATED FILE - DOMAIN: resilience + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "resilience-test-generatrice-propane" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Test mensuel de la génératrice au propane" + assign where host.name == "life-noc" +} + +apply Service "resilience-verification-carburant-generatrice" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification de l'approvisionnement propane lié à la génératrice" + assign where host.name == "life-noc" +} + +apply Service "resilience-verification-procedure-bascule" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Réviser la procédure de bascule en mode secours" + assign where host.name == "life-noc" +} + +apply Service "resilience-verification-stock-lampes-piles" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des lampes, piles et éclairage d'urgence" + assign where host.name == "life-noc" +} + +apply Service "resilience-verification-trousses-urgence" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification des trousses d'urgence" + assign where host.name == "life-noc" +} + +apply Service "resilience-revision-plan-urgence" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Réviser le plan d'urgence domestique" + assign where host.name == "life-noc" +} + +apply Service "resilience-test-autonomie-base" { + import "service_echeance" + vars.date_echeance = "2026-06-15" + notes = "Vérifier l'autonomie énergétique minimale attendue" + assign where host.name == "life-noc" +} + +apply Service "resilience-verification-moyens-cuisson-secours" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Vérification des moyens de cuisson de secours" + assign where host.name == "life-noc" +} diff --git a/icinga/services/revue.conf b/icinga/services/revue.conf new file mode 100644 index 0000000..21cd9a2 --- /dev/null +++ b/icinga/services/revue.conf @@ -0,0 +1,33 @@ +/* + AUTO-GENERATED FILE - DOMAIN: revue + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "revue-revue-quotidienne-life-noc" { + import "service_echeance" + vars.date_echeance = "2026-03-07" + notes = "Revue quotidienne du tableau Life-NOC" + assign where host.name == "life-noc" +} + +apply Service "revue-revue-hebdomadaire-priorites" { + import "service_echeance" + vars.date_echeance = "2026-03-08" + notes = "Revue hebdomadaire des priorités personnelles et professionnelles" + assign where host.name == "life-noc" +} + +apply Service "revue-revue-mensuelle-systeme-vie" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Revue mensuelle de l'ensemble du système Life-NOC" + assign where host.name == "life-noc" +} + +apply Service "revue-revue-trimestrielle-orientation" { + import "service_echeance" + vars.date_echeance = "2026-06-30" + notes = "Revue trimestrielle des orientations de vie et de Chezlepro" + assign where host.name == "life-noc" +} diff --git a/icinga/services/sante.conf b/icinga/services/sante.conf new file mode 100644 index 0000000..10df342 --- /dev/null +++ b/icinga/services/sante.conf @@ -0,0 +1,40 @@ +/* + AUTO-GENERATED FILE - DOMAIN: sante + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "sante-verification-trousse-premiers-soins" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification de la trousse de premiers soins" + assign where host.name == "life-noc" +} + +apply Service "sante-verification-expiration-medicaments" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des dates d'expiration des médicaments" + assign where host.name == "life-noc" +} + +apply Service "sante-revision-rendez-vous-medicaux" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Revoir les rendez-vous médicaux requis" + assign where host.name == "life-noc" +} + +apply Service "sante-verification-lunettes-prescriptions" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérifier les prescriptions et besoins de renouvellement" + assign where host.name == "life-noc" +} + +apply Service "sante-verification-dossier-sante" { + import "service_echeance" + vars.date_echeance = "2026-06-15" + notes = "Vérifier l'ordre et l'accessibilité des documents de santé" + assign where host.name == "life-noc" +} diff --git a/icinga/services/securite-chezlepro.conf b/icinga/services/securite-chezlepro.conf new file mode 100644 index 0000000..f2305a4 --- /dev/null +++ b/icinga/services/securite-chezlepro.conf @@ -0,0 +1,47 @@ +/* + AUTO-GENERATED FILE - DOMAIN: securite-chezlepro + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "securite-chezlepro-verification-mises-a-jour-securite" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification des mises à jour de sécurité" + assign where host.name == "life-noc" +} + +apply Service "securite-chezlepro-audit-comptes-acces" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Audit des comptes et accès privilégiés" + assign where host.name == "life-noc" +} + +apply Service "securite-chezlepro-verification-ids-snort" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des IDS et de leur état" + assign where host.name == "life-noc" +} + +apply Service "securite-chezlepro-revue-pki-privee" { + import "service_echeance" + vars.date_echeance = "2026-05-15" + notes = "Revue de la PKI privée et des autorités intermédiaires" + assign where host.name == "life-noc" +} + +apply Service "securite-chezlepro-revue-politiques-securite" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Revue des politiques et pratiques de sécurité numérique" + assign where host.name == "life-noc" +} + +apply Service "securite-chezlepro-verification-sauvegardes-configuration" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérifier les sauvegardes des configurations critiques" + assign where host.name == "life-noc" +} diff --git a/icinga/services/stock-alimentaire.conf b/icinga/services/stock-alimentaire.conf new file mode 100644 index 0000000..060c0cf --- /dev/null +++ b/icinga/services/stock-alimentaire.conf @@ -0,0 +1,54 @@ +/* + AUTO-GENERATED FILE - DOMAIN: stock-alimentaire + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "stock-alimentaire-rotation-nourriture-seche" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Rotation des stocks de nourriture sèche" + assign where host.name == "life-noc" +} + +apply Service "stock-alimentaire-verification-reserve-eau" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification de la réserve d'eau potable" + assign where host.name == "life-noc" +} + +apply Service "stock-alimentaire-verification-mylar-absorbeurs" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérifier l'intégrité des emballages Mylar et absorbeurs" + assign where host.name == "life-noc" +} + +apply Service "stock-alimentaire-revue-inventaire-conserves" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Revue des conserves et dates de rotation" + assign where host.name == "life-noc" +} + +apply Service "stock-alimentaire-revue-inventaire-farine-riz-pates" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification des gros stocks alimentaires de base" + assign where host.name == "life-noc" +} + +apply Service "stock-alimentaire-verification-bacs-legumes-racines" { + import "service_echeance" + vars.date_echeance = "2026-10-01" + notes = "Vérification des bacs de stockage de légumes racines" + assign where host.name == "life-noc" +} + +apply Service "stock-alimentaire-revue-supplements-vitamines" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification du stock de suppléments et dates utiles" + assign where host.name == "life-noc" +} diff --git a/icinga/services/stock.conf b/icinga/services/stock.conf new file mode 100644 index 0000000..4f9ceb5 --- /dev/null +++ b/icinga/services/stock.conf @@ -0,0 +1,13 @@ +apply Service "Stock-rotation-nourriture" { + import "service_echeance" + vars.date_echeance = "2026-03-01" + notes = "Rotation stock alimentaire" + assign where host.name == "life-noc" +} + +apply Service "Stock-reserve-eau" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Verification reserve eau" + assign where host.name == "life-noc" +} diff --git a/icinga/services/voiture.conf b/icinga/services/voiture.conf new file mode 100644 index 0000000..d689656 --- /dev/null +++ b/icinga/services/voiture.conf @@ -0,0 +1,75 @@ +/* + AUTO-GENERATED FILE - DOMAIN: voiture + Ne pas modifier manuellement. + Source: domains.yaml +*/ + +apply Service "voiture-verification-huile-moteur" { + import "service_echeance" + vars.date_echeance = "2026-04-01" + notes = "Vérification de l'huile moteur" + assign where host.name == "life-noc" +} + +apply Service "voiture-inspection-freins" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Inspection des freins" + assign where host.name == "life-noc" +} + +apply Service "voiture-verification-pneus" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification usure, pression et permutation des pneus" + assign where host.name == "life-noc" +} + +apply Service "voiture-ajustement-valves" { + import "service_echeance" + vars.date_echeance = "2026-08-01" + notes = "Vérification et ajustement des valves Honda Accord" + assign where host.name == "life-noc" +} + +apply Service "voiture-verification-timing-belt" { + import "service_echeance" + vars.date_echeance = "2027-01-01" + notes = "Vérification de la courroie de distribution et pompe à eau" + assign where host.name == "life-noc" +} + +apply Service "voiture-verification-batterie-voiture" { + import "service_echeance" + vars.date_echeance = "2026-10-01" + notes = "Vérification de l'état de la batterie automobile" + assign where host.name == "life-noc" +} + +apply Service "voiture-verification-balais-essuie-glace" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification des essuie-glaces" + assign where host.name == "life-noc" +} + +apply Service "voiture-verification-liquides" { + import "service_echeance" + vars.date_echeance = "2026-04-15" + notes = "Vérification des liquides de la voiture" + assign where host.name == "life-noc" +} + +apply Service "voiture-verification-eclairage" { + import "service_echeance" + vars.date_echeance = "2026-05-01" + notes = "Vérification de l'éclairage et des phares" + assign where host.name == "life-noc" +} + +apply Service "voiture-verification-immatriculation-assurance" { + import "service_echeance" + vars.date_echeance = "2026-06-01" + notes = "Vérification papiers d'assurance et immatriculation" + assign where host.name == "life-noc" +} diff --git a/prepare_commit.sh b/prepare_commit.sh deleted file mode 100755 index 2b254b1..0000000 --- a/prepare_commit.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env bash - -set -e - -echo "=== Life-NOC repository preparation ===" - -# Vérifier qu'on est dans un repo git -if [ ! -d ".git" ]; then - echo "Erreur: ce répertoire n'est pas un dépôt git." - exit 1 -fi - -echo -echo "1) Suppression du doublon template" - -DUPLICATE="icinga/templates/service-echeance.conf" - -if [ -f "$DUPLICATE" ]; then - git rm "$DUPLICATE" - echo "Supprimé: $DUPLICATE" -else - echo "Doublon déjà absent." -fi - -echo -echo "2) Création du .gitignore" - -cat > .gitignore << 'EOF' -*.swp -*.log -*.retry -*.pyc -__pycache__/ -.ansible/ -.vscode/ -EOF - -echo ".gitignore créé." - -echo -echo "3) Création du CHANGELOG" - -cat > CHANGELOG.md << 'EOF' -# CHANGELOG - -## v0.1 - -Initialisation du projet Life-NOC - -Contenu : - -- concept Life-NOC -- architecture Icinga -- premiers services -- check échéance -- structure BPM -- déploiement Ansible initial -EOF - -echo "CHANGELOG.md créé." - -echo -echo "4) Ajout des fichiers" - -git add . - -echo -echo "5) Commit" - -git commit -m "Life-NOC v0.1 initial architecture" - -echo -echo "=== Terminé ===" -echo -echo "Le dépôt Life-NOC est maintenant cristallisé." diff --git a/scripts/generate_services.py b/scripts/generate_services.py new file mode 100755 index 0000000..0358aa8 --- /dev/null +++ b/scripts/generate_services.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python3 + +from pathlib import Path +import re +import sys +import yaml + + +INPUT_FILE = Path("domains.yaml") +OUTPUT_DIR = Path("icinga/services") +HOST_NAME = "life-noc" +SERVICE_TEMPLATE = "service_echeance" + + +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 icinga_escape(value: str) -> str: + return value.replace("\\", "\\\\").replace('"', '\\"') + + +def render_service(domain: 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() + + service_name = f"{domain}-{name}" + + lines = [ + f'apply Service "{icinga_escape(service_name)}" {{', + f' import "{SERVICE_TEMPLATE}"', + f' vars.date_echeance = "{icinga_escape(date)}"', + ] + + 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 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) + + generated_files = [] + + for raw_domain, services in domains.items(): + domain = slugify(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", + "*/", + "", + ] + + 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 + + content.append(render_service(domain, item)) + + output_file.write_text("\n".join(content).rstrip() + "\n", encoding="utf-8") + generated_files.append(str(output_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())