Outils pour utilisateurs

Outils du site


backup

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
backup [2020/10/03 22:36] – ajout procédure sauvegarde lockée jocelyndbackup [2021/04/08 19:51] (Version actuelle) gde
Ligne 1: Ligne 1:
-<markdown> 
  
-# Sauvegardes 
  
-</markdown>+====== Sauvegardes ======
  
-<WRAP center round todo 60%> 
-Page en cours de rédaction 
-</WRAP> 
  
  
-<markdown> 
  
-## Mise en place 
  
-### Intro+ 
 +===== Mise en place ===== 
 + 
 + 
 +==== Intro ==== 
  
 Les backups sont effectués à l'aide de [borgbackup](https://www.borgbackup.org/) et sont déployés via notre [playbook](https://git.faimaison.net/faimaison-adminsys/adminsys/-/tree/master/ansible) [Ansible](https://docs.ansible.com/) Les backups sont effectués à l'aide de [borgbackup](https://www.borgbackup.org/) et sont déployés via notre [playbook](https://git.faimaison.net/faimaison-adminsys/adminsys/-/tree/master/ansible) [Ansible](https://docs.ansible.com/)
Ligne 20: Ligne 18:
 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  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 
  
-```bash+<code>
 # dans le dépot adminsys: # dans le dépot adminsys:
 python3 verification.py python3 verification.py
-```+</code>
  
 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. 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.
Ligne 82: Ligne 80:
  
 ```bash ```bash
-ansible-playbook --diff -l toto.faimaison.net -t borg playbook-fma.yml+ansible-playbook -K --diff -l toto.faimaison.net -t borg-client playbook-fma.yml
 ``` ```
 +
 +Et commiter les fichiers de cléfs:
 +
 +- Keyringer: `passwords/machines/keys/noyau/<MACHINE>/borg`
 +- SSH: `ssh/borg-keys/<MACHINE>.pub`
  
 ### Étape 4: ajouter aux serveurs de sauvegarde la nouvelle machine à sauvegarder ### Étape 4: ajouter aux serveurs de sauvegarde la nouvelle machine à sauvegarder
Ligne 106: Ligne 109:
 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. 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.
 </WRAP> </WRAP>
 +
 +<WRAP center round tip 60%>
 +Si avertissement car catalogue apt périmé sur le serveur de sauvegarde, ''sudo apt update -o Acquire::Check-Valid-Until=false'' sur ce dernier.
 +
 +Solution long terme : mettre à niveau carlota :-p.
 +
 + --- //Jocelyn 2020/10/06 00:25//
 +</WRAP>
 +
 +
  
 <markdown> <markdown>
  
 ```bash ```bash
-ansible-playbook --diff -l backup_servers -t borg playbook-fma.yml+ansible-playbook --diff -K -l borg_servers -t borg-server playbook-fma.yml
 ``` ```
  
 ## Procédures manuelles ## Procédures manuelles
  
-Ces trois procédures nécessitent que les sauvegardes aient été configurées conformément aux sections précédentes, et les infos bien commitées dans le dépôt adminsys.+Ces procédures nécessitent que les sauvegardes aient été configurées conformément aux sections précédentes, et les infos bien commitées dans le dépôt adminsys.
  
-### Récupérer d'une sauvegarde plantée (lock)+### PROCÉDURE : Récupérer d'une sauvegarde plantée (lock)
  
 </markdown> </markdown>
Ligne 131: Ligne 144:
 > Remote: borg.locking.LockTimeout: /var/borg-backups/repos/bambelle/lock > Remote: borg.locking.LockTimeout: /var/borg-backups/repos/bambelle/lock
  
-Cela veut dire qu'une sauvegarde a crashée, et par prudence un « lock » est laissé… Et empêche toute sauvegarde ultérieure m(. À moins qu'un processus borg soit toujours en cours d'exécution (`sudo ps aux|grep borg` pour s'en assurer), il faut « casser » le lock pour que les sauvegardes puissent reprendre :+Cela veut dire qu'une sauvegarde a crashée, et par prudence un « lock » est laissé… Et empêche toute sauvegarde ultérieure. À moins qu'un processus borg soit toujours en cours d'exécution (`sudo ps aux|grep borg` pour s'en assurer). Il faut « casser » le lock pour que les sauvegardes puissent reprendre :
  
  
Ligne 173: Ligne 186:
 La prochaine sauvegarde devrait pouvoir s'effectuer comme il faut. Si on ne veut pas attendre, on peut aussi créer une sauvegarde manuelle (cf ci-après). La prochaine sauvegarde devrait pouvoir s'effectuer comme il faut. Si on ne veut pas attendre, on peut aussi créer une sauvegarde manuelle (cf ci-après).
  
-### Créer une sauvegarde manuellement+### PROCÉDURE : Créer une sauvegarde manuellement
  
 Avant certaines opérations délicates, on peut souhaiter réaliser une sauvegarde manuelle. Avant certaines opérations délicates, on peut souhaiter réaliser une sauvegarde manuelle.
Ligne 179: Ligne 192:
 1. se connecter sur la machine à sauvegarder 1. se connecter sur la machine à sauvegarder
 2. passer root `sudo su` 2. passer root `sudo su`
-3. Exécuter le script de sauvegarde `/opt/<machine_source>_<machine_cible>.sh` +3. Exécuter le script de sauvegarde `/opt/borgbackup-client/<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 +
  
 +### PROCÉDURE : Récupérer totalement une sauvegarde depuis la machine concernée
  
 </markdown> </markdown>
 +<WRAP center round important 60%>
 +Cette procédure restaure l'intégralité d'une sauvegarde, en écrasant éventuellement des fichiers en place sur la machine. Pour faire plus fin, regarder la [[https://borgbackup.readthedocs.io/en/stable/usage/extract.html|doc de borg extract]] ou utiliser [[https://borgbackup.readthedocs.io/en/stable/usage/mount.html|borg mount]] qui permet de monter une sauvegarde distante pour l'examiner ou y piocher quelques fichiers.
 +</WRAP>
  
 +<markdown>
  
-====== TOUT CE QUI EST EN DESSOUS DE CE TITRE EST DEPRECIE ======+1. se connecter sur la machine à sauvegarder 
 +2. passer root `sudo su` 
 +3. Ouvrir un « shell borg » avec toutes les variables d'env définies((plus d'infos avec `--help`)): `/opt/borgbackup-client/<machine_source>_<machine_cible>.sh -c` 
 +4. lister les sauvegardes disponibles : 
 +``` 
 +[borg@carlota.faimaison.net:repos/bambelle ]$  # borg list $REPOSITORY 
 +bambelle-2020-05-17-02-00            Sun, 2020-05-17 02:00:11 
 +bambelle-2020-05-24-02-00            Sun, 2020-05-24 02:00:10 
 +bambelle-2020-05-31-02-00            Sun, 2020-05-31 02:00:11 
 +bambelle-2020-06-07-02-00            Sun, 2020-06-07 02:00:10 
 +bambelle-2020-06-10-02-00            Wed, 2020-06-10 02:00:10 
 +bambelle-2020-06-11-02-00            Thu, 2020-06-11 02:00:10 
 +bambelle-2020-06-12-02-00            Fri, 2020-06-12 02:00:10 
 +bambelle-2020-06-13-02-00            Sat, 2020-06-13 02:00:11 
 +bambelle-2020-06-14-02-00            Sun, 2020-06-14 02:00:10 
 +bambelle-2020-10-04-02-00            Sun, 2020-10-04 02:00:09 
 +bambelle-2020-10-05-02-00            Mon, 2020-10-05 02:00:11 
 +``` 
 +Repérer le nom de l'archive qui nous intéresse, par exemple `bambelle-2020-10-05-02-00`. 
 +5. Repasser root (en conservant les variables d'environnement), pour avoir le droit de restaurer la sauvegarde dans le système de fichiers. 
 +``` 
 +[borg@carlota.faimaison.net:repos/bambelle ]$  # su 
 +``` 
 +6. Se rendre à la racine (sinon on va restaurer notre sauvegarde dans un sous-dossier) 
 +``` 
 +root@bambelle # cd / 
 +``` 
 +7. Lancer la restauration de l'archive choisie.
  
 +```
 +root@bambelle # borg extract $REPOSITORY::bambelle-2020-10-05-02-00
 +```
  
-===== trompe-souris =====+Des opérations supplémentaires peuvent ensuite être nécessaire selon le type de fichiers restaurés (ex: restaurer un fichier .sql dans une base).
  
-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 //.+### PROCÉDURE : Récupérer une sauvegarde depuis une autre machine
  
-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.)+On doit récupérer :
  
 +  - le dépôt borg qui contient les sauvegardes de la machine
 +  - la passphrase du dépôt
  
-Pour l'instant est sauvegardé :+Le dépôt (repository) est contenu sur le serveur de sauvegarde ((actuellement, carlota -- //Jocelyn 2020/10/05 23:53//)) dans le répertoire **/var/borg-backups/repos/**.
  
-  * bdd pour le si +On va imaginer qu'on veut récupérer les sauvegardes de la machine bambelle.faimaison.net dans le cas ou celle-ci aurait-été détruite.
-  * conf dns et postfix +
-  * sites du wiki et de l'assos +
-  * la configuration des mailing-list et les archives+
  
-===== Big Backup serveur ===== +1. Récupérer le dossier */var/borg-backups/repos/bambelle*  depuis le serveur de sauvegarde (par ex en demandant gentiment à un·e admin du serveur de sauvegarde). Ici on va considérer qu'on le stocke en local dans *~/repo_bambelle* 
-4U 48Go de RAM 35 Go de disques en RAID6+2. Récupérer la passphrase du dépôt et la stocker dans la variable qui va bien : 
 +``` 
 +BORG_PASSPHRASE=$(keyringer fma-machines decrypt noyau/bambelle.faimaison.net/borg/repository_passphrase.asc) 
 +``` 
 +3. Lister les archives contenues dans le dépôt : 
 +``` 
 +$ borg list ~/repo_bambelle 
 +bambelle-2020-05-17-02-00            Sun, 2020-05-17 02:00:11 
 +bambelle-2020-05-24-02-00            Sun, 2020-05-24 02:00:10 
 +bambelle-2020-05-31-02-00            Sun, 2020-05-31 02:00:11 
 +bambelle-2020-06-07-02-00            Sun, 2020-06-07 02:00:10 
 +bambelle-2020-06-10-02-00            Wed, 2020-06-10 02:00:10 
 +bambelle-2020-06-11-02-00            Thu, 2020-06-11 02:00:10 
 +bambelle-2020-06-12-02-00            Fri, 2020-06-12 02:00:10 
 +bambelle-2020-06-13-02-00            Sat, 2020-06-13 02:00:11 
 +bambelle-2020-06-14-02-00            Sun, 2020-06-14 02:00:10 
 +bambelle-2020-10-04-02-00            Sun, 2020-10-04 02:00:09 
 +bambelle-2020-10-05-02-00            Mon, 2020-10-05 02:00:11 
 +```
  
-2 approches de la sauvegarde: +4. Créer un dossier pour extraire l'archive de ton choix et l'extraire  
-  * 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).+$ mkdir ~/restauration 
 +$ cd ~/restauration 
 +$ borg extract ~/repo_bambelle 
 +```
  
 +</markdown>
  
-Lien vers la solution de backup [[backup:borg|BORG]]+<WRAP center round tip 60%> 
 +Il est aussi possible d'utiliser ''[[https://borgbackup.readthedocs.io/en/stable/usage/mount.html|borg mount]]'' au lieu de ''borg extract'' pour examiner/picorer l'archive plutôt que de l'extraire d'un bloc. 
 +</WRAP>
backup.1601764611.txt.gz · Dernière modification : 2020/10/03 22:36 de jocelynd