Outils pour utilisateurs

Outils du site


linux:proxmox-backup-server (lu 9505 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
linux:proxmox-backup-server [17-12-2025 22:09] – [Ajouter un server proxmox] edmc73linux:proxmox-backup-server [20-02-2026 08:45] (Version actuelle) – [Ajouter un server proxmox] edmc73
Ligne 29: Ligne 29:
   Enabled: false   Enabled: false
  
 +==== Certificats ssl ====
 +
 +Comme il y a déjà un certificat ssl letsencrypt géré par Proxmox VE, on va les utiliser pour PBS
 +
 +Les certificats PVE se trouvent dans ''/etc/pve/nodes/<nom du node>/'' -> ''pveproxy-ssl.key'' et ''pveproxy-ssl.pem''
 +
 +Les certificats PBS se trouvent dans ''/etc/proxmox-backup'' -> ''proxy.key'' et ''proxy.pem''
 +
 +Supprimons les fichiers de PBS et créons un lien symbolique de PVE vers PBS
 +
 +  rm /etc/proxmox-backup/proxy.key
 +  rm /etc/proxmox-backup/proxy.pem
 +  ln -s /etc/pve/nodes/<nom du node>/pveproxy-ssl.key /etc/proxmox-backup/proxy.key
 +  ln -s /etc/pve/nodes/<nom du node>/pveproxy-ssl.pem /etc/proxmox-backup/proxy.pem
 +
 +  systemctl restart proxmox-backup-proxy.service
 +
 +Bon, pour une histoire de droit, la solution avec les liens symboliques ne fonctionne pas. Soit ajuster les droits, soit faire une copie en étant synchro avec la mise à jour des certificats.
 ===== Ajouter un server proxmox ===== ===== Ajouter un server proxmox =====
  
Ligne 41: Ligne 59:
     * Bouton **View certificate** et copier le **fingerprint**     * Bouton **View certificate** et copier le **fingerprint**
  
 +===== Les rétentions de backup =====
  
 +Entre keep-last, keep-hour, keep-daily, keep-weekly, keep-monthly et keep-yearly il y a de quoi s'y perdre.
 +
 +Heureusement, il y a un simulateur dispo !
 +
 +-> https://pbs.proxmox.com/docs/prune-simulator/index.html
 ===== proxmox-backup-client ===== ===== proxmox-backup-client =====
  
Ligne 48: Ligne 72:
  
 On peut backuper des systèmes de fichiers voir même des systèmes de block avec la commande ''proxmox-backup-client'' en gardant les avantages de sauvegarde incrémentielle, chiffré etc... On peut backuper des systèmes de fichiers voir même des systèmes de block avec la commande ''proxmox-backup-client'' en gardant les avantages de sauvegarde incrémentielle, chiffré etc...
 +
 +Mes exigences / contraintes :
 +  * Je ne veux pas que mon serveur distant puisse se connecter à mon serveur PBS (pour des raisons de sécurité)
 +  * Je met le password dans un fichier pour qu'il ne s'affiche pas dans les process
 +  * Installation obligatoire du binaire proxmox-backup-client sur le serveur distant
 +  * Connexion ssh par clé 
 +  * Tunnel ssh pour bénéficier de la déduplication de PBS
 +
 +Créer une paire de clés SSH dédié
 +  ssh-keygen -t ed25519 -f ~/.ssh/id_pbs_backup
 +
 +
 +On peut restreindre l'utilisation de ssh sur le serveur distant en éditant ''~/.ssh/authorized_keys''
 +  no-pty,no-X11-forwarding,no-agent-forwarding,command="/bin/echo 'Tunnel only'" ssh-ed25519 AAAAC3Nza... (votre clé)
 +
 +Automatiser la connexion ssh sur le serveur PBS en éditant le fichier ''~/.ssh/config''
 +<code>
 +Host sauvegarde-distante
 +    HostName IP_DU_SERVEUR_DISTANT
 +    User utilisateur
 +    IdentityFile ~/.ssh/id_pbs_backup
 +    RemoteForward 8007 localhost:8007
 +</code>
 +
 +
 +Exemple d'un script qui permet de sauvegarder une machine distante
 +<code bash>
 +#!/bin/bash
 +
 +# --- Configuration ---
 +REMOTE_USER="utilisateur"
 +REMOTE_HOST="ip_du_serveur_distant"
 +PBS_PASSWORD="ton_mot_de_passe_pbs"
 +PBS_REPOSITORY="utilisateur@localhost:8007:datastore"
 +BACKUP_PATH="/chemin/a/sauvegarder"
 +WEBHOOK_URL="https://votre-url-webhook.com/..."
 +
 +# Internes
 +SSH_CONTROL="~/.ssh/pbs_tunnel_control"
 +REMOTE_PASS_FILE="/tmp/.pbs_pass_tmp"
 +START_TIME=$(date +%s)
 +
 +# --- Fonction Webhook ---
 +send_notification() {
 +    curl -H "Content-Type: application/json" -X POST -d "{\"content\": \"$1\"}" "$WEBHOOK_URL" > /dev/null 2>&1
 +}
 +
 +send_notification "🚀 Début de la sauvegarde Proxmox pour **$REMOTE_HOST**."
 +
 +# 1. Ouverture du tunnel
 +# -M : Mode maître / -S : Fichier de contrôle (socket) / -fN : Arrière-plan sans commande
 +ssh -fN -M -S "$SSH_CONTROL" -R 8007:localhost:8007 "$REMOTE_USER@$REMOTE_HOST"
 +
 +# 2. Préparation du secret
 +ssh -S "$SSH_CONTROL" "$REMOTE_USER@$REMOTE_HOST" "echo '$PBS_PASSWORD' > $REMOTE_PASS_FILE && chmod 600 $REMOTE_PASS_FILE"
 +
 +# 3. Sauvegarde
 +ssh -S "$SSH_CONTROL" "$REMOTE_USER@$REMOTE_HOST" \
 +    "proxmox-backup-client backup root.pxar:$BACKUP_PATH --repository $PBS_REPOSITORY --password-file $REMOTE_PASS_FILE"
 +
 +BACKUP_EXIT_CODE=$?
 +END_TIME=$(date +%s)
 +DURATION=$((END_TIME - START_TIME))
 +H_DURATION=$(printf '%02dh %02dm %02ds\n' $((DURATION/3600)) $((DURATION%3600/60)) $((DURATION%60)))
 +
 +# 4. Nettoyage
 +ssh -S "$SSH_CONTROL" "$REMOTE_USER@$REMOTE_HOST" "rm -f $REMOTE_PASS_FILE"
 +ssh -S "$SSH_CONTROL" -O exit "$REMOTE_USER@$REMOTE_HOST"
 +
 +# --- Notification de fin ---
 +if [ $BACKUP_EXIT_CODE -eq 0 ]; then
 +    send_notification "✅ Sauvegarde réussie en **$H_DURATION**."
 +else
 +    send_notification "❌ Échec de la sauvegarde sur **$REMOTE_HOST** après $H_DURATION (Code: $BACKUP_EXIT_CODE)."
 +    exit $BACKUP_EXIT_CODE
 +fi
 +</code>
linux/proxmox-backup-server.1766009358.txt.gz · Dernière modification : de edmc73