From 5acfed1e3a0646f63cab0b07c8a2d2cb34973b64 Mon Sep 17 00:00:00 2001 From: "Christian P. MOMON" Date: Thu, 16 Mar 2023 10:25:07 +0100 Subject: [PATCH] Improved Plan B scripts. --- Plan Borg/models/deploy-remote | 58 ++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 Plan Borg/models/deploy-remote diff --git a/Plan Borg/models/deploy-remote b/Plan Borg/models/deploy-remote new file mode 100755 index 0000000..0f1c3ec --- /dev/null +++ b/Plan Borg/models/deploy-remote @@ -0,0 +1,58 @@ +#!/bin/bash + +# Ajouter les backports bullseye. +if [ $(grep -Rih backport /etc/apt/ |grep -v "^#" | wc -l) -ne 0 ]; then + echo "Backports apt configuration: PASSED" +else + echo "deb http://ftp.fr.debian.org/debian/ bullseye-backports main" > /etc/apt/sources.list.d/backports.list + echo "Backports apt configuration: DONE" +fi + +# Installer les paquets nécessaires. +borgmatic --version > /dev/null +STATE1=$? +borgbackup --version > /dev/null +STATE2=$? +if [ $STATE1 -eq 0 ] && [ $STATE2 -eq 0 ]; then + echo "Borgmatic package install: PASSED" +else + apt update && apt install -t bullseye-backports borgmatic borgbackup + if [ $? -eq 0 ]; then + echo "Borgmatic package install: DONE" + else + echo "Borgmatic package install: FAILED" + exit -1 + fi +fi + +# Forcer l'action create dans le service Systemd de Borgmatic. +if [ $(grep "/usr/bin/borgmatic create" /lib/systemd/system/borgmatic.service | wc -l) -eq 1 ]; then + echo "Borgmatic service patch: PASSED" +else + sed -i s#/usr/bin/borgmatic#/usr/bin/borgmatic\ create# /lib/systemd/system/borgmatic.service && systemctl daemon-reload + if [ $? -eq 0 ]; then + echo "Borgmatic service path: DONE" + else + echo "Borgmatic service path: FAILED" + exit -1 + fi +fi + +# Créer des clés ssh pour l'utilisateur root (si besoin). +# Créer des clés ssh pour l'utilisateur root (si besoin). +if [ $(ls /root/.ssh/*pub 2> /dev/null | wc -l) -ne 0 ]; then + echo "SSH root key creation: PASSED" +else + sudo ssh-keygen -t ed25519 + echo "SSH root key creation: DONE" +fi + +# Peupler le dossier de configruation de Borgmatic. +mkdir -p /etc/borgmatic +cd /etc/borgmatic +URL=https://git.a-lec.org/a-lec/commissions/infrastructure/sauvegardes/-/raw/main/Plan%20Borg/ +wget -nv $URL/models/excludes +wget -nv $URL/models/model-conf-remote-client.yaml -O /etc/borgmatic/config.yaml + +# Vérifier que la configuration Borgmatic. +validate-borgmatic-config