Code source wiki de Backups

Version 110.5 par Clément AUBIN le 2022/01/17 13:25

Afficher les derniers auteurs
1 {{toc/}}
2
3 = Présentation =
4
5 Depuis le mois de février 2017, ATILLA dispose de sauvegardes sur les principaux composants de son infrastructure. Ces sauvegardes sont effectuées chaque jour et incluent des éléments tels que :
6
7 * Des dumps des bases de données de production ({{code}}pgsql-prod{{/code}}, {{code}}mysql-prod{{/code}}) et de test ({{code}}pgsql-test{{/code}}, {{code}}mysql-test{{/code}})
8 * Des dumps de bases de données spécifiques à certains services : {{code}}gitlab-prod{{/code}} et {{code}}rocket-prod{{/code}}
9 * Des éléments de configuration pour les services critiques de l’infrastructure : configuration DNS, DHCP, …
10
11 = Fonctionnement =
12
13 Ces sauvegardes sont effectuées à l’aide de l’infrastructure [[Bacula>>url:http://blog.bacula.org/]] proposée au sein du S.I. de l’EISTI ; le serveur {{code}}bill.atilla.org{{/code}} dispose d’un //file daemon// Bacula chargé d’effectuer les sauvegardes de l’infrastructure tous les jours à partir de 21h.
14
15 En pratique, l’agent {{code}}bacula-fd{{/code}} présent sur {{code}}bill.atilla.org{{/code}} ne sauvegarde que le contenu du dossier {{code}}/srv/bacula{{/code}}, dans ce dossier se trouvent plusieurs montages NFS des différents serveurs à sauvegarder.
16
17 = Ajout d’un nouveau contenu à sauvegarder =
18
19 Si vous souhaitez mettre en place une sauvegarde pour un nouveau serveur, voici un exemple de procédure à suivre.
20
21 Depuis Janvier 2022, le montage des dossiers de backup entre la VM à sauvegarder et Bill est effectué automatiquement avec Puppet. En pratique, il est nécessaire d'ajouter la classe {{code language="none"}}atilla::services::backups::share{{/code}} au nœud à sauvegarder, et de configurer la variable {{code language="none"}}atilla::services::backups::share::folder{{/code}}. Puppet se charge ensuite d'installer {{code language="none"}}nfs-kernel-server{{/code}} sur la machine, de configurer ses exports, et de créer un point de montage sur Bill. L'ensemble doit être opérationnel sous une heure après l'ajout de la configuration dans Puppet. Il est possible de regarder sur [[puppet.admin.atilla.org>>https://puppet.admin.atilla.org]] pour valider que le déploiement de la configuration se passe comme prévu, ou alors on peut tout simplement forcer l'exécution de la synchro Puppet, d'abord sur la machine à sauvegarder, puis sur Bill, avec la commande {{code language="none"}}puppet agent -t{{/code}}.
22
23 * On se connecte en SSH à {{code language="none"}}puppet-prod.prod.infra.atilla.org{{/code}}
24 * On
25
26
27 Considérons qu’il est nécessaire de mettre en place la sauvegarde pour un tout nouveau serveur {{code}}pgsql-preprod{{/code}} …
28
29 == Configuration du serveur à sauvegarder ==
30
31 1. Créer le dossier {{code}}/srv/backups{{/code}} : {{code}}mkdir -p /srv/backups{{/code}}
32 1. Installer le serveur NFS : {{code}}apt install nfs-kernel-server{{/code}}
33 1. Configurer le serveur NFS : {{code}}echo "/srv/backups 192.168.10.0/24(async,ro,no_subtree_check,no_root_squash)" >> /etc/exports{{/code}}
34 1. Appliquer la configuration : {{code}}systemctl restart nfs-kernel-server{{/code}}
35 1. Installer un [[Cron>>url:https://en.wikipedia.org/wiki/Cron]] pour réaliser les dumps de la base de données : {{code}}crontab -e{{/code}}, ajouter la ligne {{code}}0 2 * * * su -l -c "pg_dumpall -f /srv/backups/postgres.sql" postgres{{/code}}
36
37 == Configuration de {{code}}bill.atilla.org{{/code}} ==
38
39 1. Créer le dossier du montage NFS : {{code}}mkdir -p /srv/bacula/pgsql-preprod{{/code}}
40 1. Ajouter le partage NFS dans le [[fstab>>url:https://en.wikipedia.org/wiki/Fstab]] : {{code}}echo "pgsql-preprod.preprod.infra.atilla.org:/srv/backups /srv/bacula/pgsql-preprod/ nfs noauto,ro,hard,intr 0 0" >> /etc/fstab{{/code}}
41 1. Monter le partage NFS : {{code}}mount pgsql-preprod.preprod.infra.atilla.org:/srv/backups{{/code}}
42
43 C’est tout ! L’agent Bacula se charge ensuite d’effectuer la sauvegarde de {{code}}/srv/bacula{{/code}}.
44
45 = Notes importantes =
46
47 * Pour que notre installation de Bacula soit homogène avec les installations de la DOSI, notre agent {{code}}bacula-fd{{/code}} à été rétrogradé à sa version 5.4.
48 * Il est nécessaire de notifier la DOSI lors de l’ajout d’un nouveau répertoire monté via NFS dans {{code}}/srv/bacula{{/code}} pour que la sauvegarde de ce nouveau point de montage soit effective.
49 * Il est également nécessaire de notifier la DOSI lors de l'ajout de gros volumes à sauvegarder (>5G).