sauvegarde la base du portail et teste sa restauration chaque semaine
La sauvegarde ne couvrait que /etc, /home et /root : la base MariaDB du portail et son .env (APP_KEY) en étaient absents. Ajoute aussi le réglage du quota et du gabarit du projet des labs dans Ansible, la reprise des VM au démarrage de l'hôte (Nova), et le script du test de capacité. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
424d0f6f79
commit
3f0b565e1e
11 changed files with 458 additions and 1 deletions
|
|
@ -25,8 +25,25 @@ trap 'rm -rf "$WORKDIR"' EXIT
|
|||
|
||||
ARCHIVE_QUOT="quotidienne-${DATE}.tar.zst.age"
|
||||
|
||||
# Portail (étape 13) : export cohérent de sa base (--single-transaction, sans
|
||||
# bloquer le site) et ses fichiers d'état. Le mot de passe root est lu dans
|
||||
# le conteneur : il n'apparaît jamais sur la ligne de commande de l'hôte.
|
||||
# Absent sur un serveur neuf (la sauvegarde arrive avant le portail) : ignoré.
|
||||
EN_PLUS=()
|
||||
if [ "$(docker inspect -f '{% raw %}{{.State.Running}}{% endraw %}' {{ sauvegardes_portail_conteneur }} 2>/dev/null)" = "true" ]; then
|
||||
docker exec {{ sauvegardes_portail_conteneur }} sh -c \
|
||||
'MYSQL_PWD="$MARIADB_ROOT_PASSWORD" exec mariadb-dump -uroot --single-transaction --routines --triggers --databases {{ sauvegardes_portail_base }}' \
|
||||
> "$WORKDIR/portail.sql"
|
||||
EN_PLUS+=(-C "$WORKDIR" portail.sql)
|
||||
fi
|
||||
for chemin in {{ sauvegardes_portail_fichiers | join(' ') }}; do
|
||||
if [ -e "$chemin" ]; then
|
||||
EN_PLUS+=("$chemin")
|
||||
fi
|
||||
done
|
||||
|
||||
tar --exclude="{{ sauvegardes_age_dir }}" --exclude='/root/.dedibackup' \
|
||||
-I zstd -cf - {{ sauvegardes_repertoires | join(' ') }} \
|
||||
-I zstd -cf - {{ sauvegardes_repertoires | join(' ') }} "${EN_PLUS[@]}" \
|
||||
| age -r "$AGE_PUB" -o "$WORKDIR/$ARCHIVE_QUOT"
|
||||
|
||||
lftp -u "$DEDIBACKUP_USER,$DEDIBACKUP_PASS" "$DEDIBACKUP_HOST" -e "
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue