diff --git a/CHANGELOG.md b/CHANGELOG.md index bdbe52a..5a78afe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,9 +35,11 @@ SSH_KEY * [#378] Script Backup BDD Vaultwarden * [#381] Variabiliser tous les scripts * [#384] Fix Correctif -* [#390] Rotation des script +* [#390] Rotation des scripts * [#392] Scripts de reconstruction des bases de données * [#427] Correctifs +* [#433] Ajout du dossier RebuildBdd et creation de la theorique du script de rebuild de base de données +* [#002-19] correctif generaliser sur l'application suite aux nombreuses modifications et ajout de script ### Changed ### Fixed diff --git a/README.md b/README.md index df0b3a2..6007c5e 100644 --- a/README.md +++ b/README.md @@ -1,56 +1,189 @@ -# Malio-Ops +Voici une version **corrigée, structurée et professionnalisée**, adaptée à votre contexte actuel (scripts rebuild + infra + exploitation). +Format directement exploitable pour README.md / BookStack. -Ce depot centralise les scripts d'exploitation et de maintenance utilises pour l'infrastructure MALIO. Il sert de base de versionnement pour les sauvegardes, la supervision, les operations PostgreSQL et la reconstruction de bases. +--- -## Objectif +# MALIO-OPS -Le depot permet de : +Ce dépôt centralise l’ensemble des **scripts d’exploitation, de maintenance et d’automatisation** utilisés dans l’infrastructure MALIO. +Il constitue une base unique de **versionnement, standardisation et industrialisation** des opérations techniques (backup, supervision, PostgreSQL, reconstruction de bases). -* suivre les modifications des scripts dans le temps -* conserver des versions stables et reproductibles -* mutualiser la configuration et les bonnes pratiques d'exploitation -* centraliser la documentation technique associee +--- -## Structure du depot +# Objectif -Le depot est organise par dossier fonctionnel : +Le dépôt permet de : -* [CheckStorage](CheckStorage) : surveillance de l'espace disque et alertes Discord -* [BackupVaultWarden](BackupVaultWarden) : sauvegarde et transfert distant des donnees Vaultwarden -* [RecetteScripts](RecetteScripts) : scripts historiques de backup, monitoring et rebuild pour l'environnement de recette -* [RebuildBdd](RebuildBdd) : orchestration de reconstruction de bases PostgreSQL, bootstrap de cibles et checks de preparation +* assurer le **versionnement et la traçabilité** des scripts +* garantir des **exécutions reproductibles et fiables** +* mutualiser les **bonnes pratiques d’exploitation** +* centraliser la **configuration et la documentation technique** +* faciliter le **déploiement automatisé des environnements** -## Focus RebuildBdd +--- -Le dossier [RebuildBdd](RebuildBdd) regroupe la nouvelle chaine de reconstruction de base. Il contient notamment : +# Structure du dépôt -* [run-rebuild-bdd.sh](/home/matte/Malio-ops/RebuildBdd/run-rebuild-bdd.sh) : point d'entree principal -* [rebuild-bdd-core.sh](/home/matte/Malio-ops/RebuildBdd/rebuild-bdd-core.sh) : logique de restauration -* [bootstrap-target-host.sh](/home/matte/Malio-ops/RebuildBdd/bootstrap-target-host.sh) : preparation de la machine cible -* [create-target-config.sh](/home/matte/Malio-ops/RebuildBdd/create-target-config.sh) : generation de configuration cible -* [Checkup](RebuildBdd/Checkup) : scripts de verification prealable -* [Config](RebuildBdd/Config) : fichiers d'exemple de configuration globale et par cible +Organisation par domaine fonctionnel : -La documentation detaillee est disponible dans [RebuildBdd/README.md](/home/matte/Malio-ops/RebuildBdd/README.md). +## CheckStorage -## Prerequis +* Surveillance de l’espace disque +* Alerting via Discord +* Vérification proactive des capacités -Les scripts du depot reposent principalement sur : +## BackupVaultWarden -* `bash` -* `jq` -* `curl` -* `ssh` -* `scp` +* Sauvegarde des données Vaultwarden +* Archivage et transfert distant sécurisé +* Gestion des logs et rétention -Selon les scripts, d'autres outils peuvent etre necessaires, notamment PostgreSQL (`psql`, `pg_dump`, `pg_restore`) ou `tar`. +## RecetteScripts -## Configuration +* Scripts legacy pour environnement de recette +* Backup PostgreSQL +* Monitoring applicatif +* Rebuild simplifié -Un modele commun est disponible dans [global.env.exemple](global.env.exemple). Il sert de base pour les variables partagees entre plusieurs scripts. +⚠️ Dossier en cours de transition vers `RebuildBdd` -Chaque dossier peut aussi contenir son propre fichier `.env.exemple` ou ses propres fichiers de configuration. Les secrets et webhooks ne doivent jamais etre versionnes dans git et doivent rester dans des fichiers locaux ignores. +## RebuildBdd -## Documentation +* Nouvelle architecture standardisée de reconstruction PostgreSQL +* Gestion multi-cibles +* Exécution non interactive (compatible web/API) +* Retour structuré (JSON + logs) -Les evolutions importantes sont suivies dans [CHANGELOG.md](CHANGELOG.md). +--- + +# Focus : RebuildBdd + +Ce module constitue le **socle principal de reconstruction de bases PostgreSQL**. + +## Scripts principaux + +* `run-rebuild-bdd.sh` + → Point d’entrée (local / IA / interface web) + +* `rebuild-bdd-core.sh` + → Logique métier de restauration (dump + rôles + base) + +* `bootstrap-target-host.sh` + → Préparation automatique de la machine cible + +* `create-target-config.sh` + → Génération des configurations par environnement + +## Sous-dossiers + +* `Checkup/` + → Vérification des prérequis (PostgreSQL, accès, rôles) + +* `Config/` + → Fichiers de configuration globaux et par cible + +## Fonctionnalités clés + +* Installation automatique PostgreSQL si absent +* Vérification et création des rôles +* Restauration complète (rôles + base) +* Gestion des dumps distants +* Mode sécurisé (validation des paramètres) +* Logs exploitables + sortie JSON (intégration web) + +👉 Documentation détaillée : `RebuildBdd/README.md` + +--- + +# Prérequis + +Les scripts nécessitent : + +## Outils de base + +* bash +* jq +* curl +* ssh +* scp + +## Outils optionnels (selon usage) + +* PostgreSQL (`psql`, `pg_dump`, `pg_restore`) +* tar +* systemd (gestion services) + +--- + +# Configuration + +## Configuration globale + +Un modèle est fourni : + +```bash +global.env.exemple +``` + +Utilisation : + +```bash +cp global.env.exemple global.env +``` + +## Configuration locale + +* Chaque module peut contenir son propre `.env` +* Les variables sensibles doivent être définies localement + +⚠️ Règles strictes : + +* **Aucun secret en versionné** +* Utiliser `.gitignore` +* Cloisonner les accès (SSH, DB, webhooks) + +--- + +# Sécurité + +* Authentification SSH par clé obligatoire +* Validation des paramètres en entrée (scripts rebuild) +* Isolation des environnements (cibles distinctes) +* Logs sans données sensibles + +--- + +# Bonnes pratiques + +* Scripts **idempotents** (relançables sans effet de bord) +* Logs systématiques +* Gestion des erreurs (`set -euo pipefail`) +* Centralisation des configurations +* Utilisation de formats structurés (JSON) + +--- + +# Documentation + +* Documentation détaillée par module (README locaux) +* Historique des évolutions : + + ```bash + CHANGELOG.md + ``` + +--- + +# Positionnement actuel + +* `RebuildBdd` = **standard cible** +* `RecetteScripts` = **legacy en cours de migration** +* Objectif : convergence vers une **chaîne unique, robuste et automatisable (web/API)** + +--- + +Si vous le souhaitez, je peux : + +* restructurer votre README `RebuildBdd` pour qu’il soit au même niveau +* ajouter un schéma d’architecture (flux SSH / dump / restore) +* ou intégrer directement votre workflow réel (IA machine + backup server + cible) dans la doc