Modules - tlr-cli
Définition d'un module
Un module est un bloc fonctionnel autonome qui :
- expose une interface CLI stable (
<module> <action>) ; - encapsule la logique d'administration d'un domaine (ex. : vhosts) ;
- fournit ses tests et ses templates ;
- produit un rendu lisible et un code de retour strict.
Liste initiale (proposée)
system: updates, packages, base OS.tests: exécute le runner global (tlr tests run).ssh: durcissement, ports, keys, agent.ufw: firewall et règles.fail2ban: protection bruteforce.vhosts: Apache vhosts, activation, logs.letsencrypt: certificats wildcard (OVH DNS-01).php: PHP-FPM, extensions.mariadb: install, sécurisation, checks.logs: rotation, permissions, sanity checks.backup: dumps, rétention, vérification.
Structure d'un module
modules/<module>/ module.sh tests/ templates/ data/
Conventions module
module.shexposeinfo|status|check|apply|test.tests/contient des scripts idempotents.templates/pour confs et vhosts.data/pour fixtures de test.- Les modules peuvent définir des actions supplémentaires (ex. :
run,switch).
Versioning
- Modules versionnés avec le repo.
- Changelog par module si besoin.
Reste à faire
- Documenter et développer le module
vhosts(voirtools/bash/vhosts.md). - Définir les modules
ssh,ufw,fail2banavec tests idempotents. - Normaliser les templates par module (noms, variables, conventions).