L'application porte tous ses liens (groupe=capacite, hote=VM, port, requiert, expose). L'exposition DNS quitte docs/domaines.yml et vit sur l'application via 'expose' ; domaines.yml ne decrit plus que les zones. - inventory_rules : expositions_des_applications + domaine_parent ; valider_applications valide requiert / expose / port. - serveurs_nginx derive ses vhosts des applications (expose + edge), resolvant application -> hote -> IP (role + template reecrits). - filter plugin : expose la nouvelle regle a Ansible. - CLI : applications.py --port/--requiert/--expose ; domaines.py affiche les expositions derivees des applications. - GUI : champs Port/Requiert/Expose sur la fiche Application (persistes ; corrige la perte de champs a la sauvegarde) ; l'API expose les domaines. Le groupe n'est plus une cible de liaison, seulement une capacite. Renommage nomenclature.domaines -> fonctions : Phase 1b. Generation de l'inventaire depuis le plan : Phase 3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
34 lines
1 KiB
Python
34 lines
1 KiB
Python
"""Filtres Ansible exposant les regles de resolution des registres Set-OPS.
|
|
|
|
Reutilise scripts/inventory_rules.py : la regle de liaison application <-> base
|
|
(et la derivation du DSN) vit une SEULE fois, en Python. Le CLI, le GUI (qui en
|
|
est le miroir) et Ansible passent tous par la meme logique.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "scripts"))
|
|
|
|
from inventory_rules import ( # noqa: E402
|
|
applications_de_hote,
|
|
bases_de_application,
|
|
bases_du_groupe,
|
|
chaine_connexion,
|
|
expositions_des_applications,
|
|
)
|
|
|
|
|
|
class FilterModule:
|
|
"""Filtres Set-OPS pour les playbooks par application."""
|
|
|
|
def filters(self) -> dict:
|
|
return {
|
|
"bases_de_application": bases_de_application,
|
|
"applications_de_hote": applications_de_hote,
|
|
"bases_du_groupe": bases_du_groupe,
|
|
"chaine_connexion": chaine_connexion,
|
|
"expositions_des_applications": expositions_des_applications,
|
|
}
|