Outils pour utilisateurs

Outils du site


Panneau latéral

Vie de l'asso

Outils de travail

Bureau

Communication

Adminsys

Réseau

Services

ADSL/VDSL

WiFi

VPN

Hébergement de machines

Législatif et politique

Matériels

Transparence

Café vie privée

backup

Sauvegardes

Page en cours de rédaction

Mise en place

Intro

Les backups sont effectués à l'aide de borgbackup et sont déployés via notre playbook Ansible

Les secrets sont stockés dans un trousseau Keyringer. Comme le niveau des prérequis à l'exécution des rôles de sauvegarde est assez haut, on vous a préparé un petit script afin de vérifier très rapidement si votre machine est configurée correctement :

# dans le dépot adminsys:
python3 verification.py

Il est important de noter que l'ensemble des adminsys ne peuvent pas déployer les backups de toutes les machines de FAImaison. Le prérequis pour pouvoir déployer un backup c'est de pouvoir lire les secrets de la machine à sauvegarder dans Keyringer : si t'es pas admin de la machine t'es pas sensé pouvoir accéder à ces informations: simple.

Étape 1 : configurer les sauvegardes de la machine que l'on veut sauvegarder

Editez ou créez le fichier de configuration dans le host_vars de votre machine (par exemple host_vars/toto.faimaison.net/toto_backups.yml):

Cet exemple sauvegarde vers UN serveur, mais on peut aussi choisir de lister plusieurs cibles dans la liste borg_client_targets.

borg_client_targets:
  - # OBLIGATOIRE : serveur où on souhaite envoyer nos sauvegardes. ce serveur doit être membre du groupe ansible "borg_servers"
    remote_server: "serveur-destination-sauvegardes.faimaison.net"
 
    # FACULTATIF : chemins à sauvegarder 
    # (en plus des chemins déjà listés dans le base_source_path de group_vars/borg_clients.yml)
    extra_source_paths:
      - "/srv/transparency/"
      - "~postgres/etherpad.sql"
 
    # FACULTATIF : liste de fichiers/dossier à exclure
    # par défaut, utilisera la valeur dans "group_vars/borg_clients.yml"
    exclude_patterns: "{{ borg_clients_common_exclude_paths }}"
 
    # FACULTATIF : ici on a une liste de commandes à exécuter avant de lancer la sauvegarde.
    # dans cet exemple, on fera les dump de base de données par exemple
    before_backup_commands:
      -  "sudo -i -u postgres pg_dump -U postgres -F p etherpad > ~postgres/etherpad.sql"
 
    # FACULTATIF : ici on a une liste de commande à exécuter après la sauvegarde, 
    # typiquement on fera un peu de nettoyage (supprimer les dump de base de données)
    after_backup_commands:
        - "rm -f ~postgres/backup-etherpad.sql"
 
    # RECOMMANDÉ : ici on définit quand le backup démarre. 
    # Il est recommandé de réfléchir à un horaire où la machine est au repos
    # syntaxe et variables cron classique https://docs.ansible.com/ansible/latest/modules/cron_module.html
    when:
        hour: "1"
        minute: "0"

Étape 2 : ajouter la machine à sauvegarder au groupe borg_clients

Dans ansible_hosts ajouter la machine à sauvegarder au groupe borg_clients.

Étape 3 : jouer le rôle sur la machine à sauvegarder

ansible-playbook --diff -l toto.faimaison.net -t borg playbook-fma.yml

Étape 4: ajouter aux serveurs de sauvegarde la nouvelle machine à sauvegarder

Mettre à jour la variable une entrée à la variable borg_server_backup_clients dans group_vars/borg_servers.yml:

borg_server_backup_clients:
  - name: "toto"  # nom de la machine à sauvegarder
    ssh_pubkey: ""  # clef de sauvegarde (contenue dans ssh/borg-keys/toto.faimaison.net.pub)

Étape 5 : vérifier que tous les serveurs de backups sont dans le groupe backup_servers

Dans ansible_hosts vérifier que le groupe backup_servers connait bien toutes les machines de backups de faimaison.

Étape 6 : jouer le role sur les backup_servers

Il faut avoir accès au serveur de sauvegarde visé pour pouvoir effectuer cette étape… Ou bien la faire faire par quelqu'un qui y a accès.

ansible-playbook --diff -l backup_servers -t borg playbook-fma.yml

Procédures manuelles

Ces trois procédures nécessitent que les sauevgardes aient été configurées conformément aux sections précédentes, et les infos bien commitées dans le dépôt adminsys.

Créer une sauvegarde manuellement

Avant certaines opérations délicates, on peut souhaiter réaliser une sauvegarde manuelle.

  1. se connecter sur la machine à sauvegarder
  2. passer root sudo su
  3. Exécuter le script de sauvegarde /opt/<machine_source>_<machine_cible>.sh

Récupérer une sauvegarde depuis la machine concernée

TODO

Récupérer une sauvegarde depuis une autre machine

(si la machine sauvegardée est HS)

TODO

TOUT CE QUI EST EN DESSOUS DE CE TITRE EST DEPRECIE

trompe-souris

Les backups sont executé par un simple script bash qui tourne quotidiennement : /etc/cron.daily/backup

Le principe consiste à faire un backup du maximum de choses (bdd, site, configuration) et les déposer sur /home/faimaison-backup .

Ensuite, moyennant l'installation d'une clé ssh, un adminsys peut récupérer le contenu de ce répertoire pour en faire un copie locale en utilisant son application préférée (rdiff-backup, duplicity, script maison, etc.)

Pour l'instant est sauvegardé :

  • bdd pour le si
  • conf dns et postfix
  • sites du wiki et de l'assos
  • la configuration des mailing-list et les archives

Big Backup serveur

4U / 48Go de RAM / 35 Go de disques en RAID6

2 approches de la sauvegarde:

  • local avec [Borg[https://www.borgbackup.org]] 10 Go de RAM / 15To (VM “prod” et fichiers)
  • en VM, soit 150 VM (à 256 Mo de RAM et 40Go avec une moyenne de 150 Go).

Lien vers la solution de backup BORG

backup.txt · Dernière modification: 2020/05/15 11:59 de jocelynd