Faire des sauvegardes

L’installation de notre serveur est bien avancé et on commence à l’utiliser, il serait bien de mettre en place un système de sauvegardes.

Préambule

Différentes solutions de sauvegarde existent, du simple script qui sauvegarde un fichier au système complet de backups, synchronisé ou non. Notre installation se situe entre les deux, c’est à dire qu’elle est assez complexe avec ses deux machines pour faire plus que copier un répertoire vers un autre mais pas assez pour avoir des machines supplémentaires dédiées à la redondance ou aux backups. De plus je suppose que notre hébergeur a ses propres systèmes de sauvegardes en interne, donc on va se contenter de sauvegarder quelques répertoires du serveur Web et la base de données du serveur SQL. Chacune des deux machines servira d’espace de sauvegarde à l’autre, ce sera suffisant pour ce qu’on en fait et pour notre budget ! Le risque est de faire la même bourde sur les deux machines, ou qu’une machine vérolée infecte l’autre dans quels cas on perdra tout.
Notre choix s’arrête sur le paquetage backup-manager qui permet beaucoup de choses avec un configuration plutôt simple.
En plus des sauvegardes de notre VPS_WEB, on fait la sauvegarde de la base de données de la seconde machine ( VPS_SQL ) depuis le même programme, quand je vous dit que backup-manager sait tout faire ! On utilise notre VPS_WEB pour gérer la mécanique de sauvegarde.
Remarque: On pourrait faire l’inverse en utilisant la fonction pipe de backup-manager pour récupérer les répertoires du VPS_WEB sur le VPS_SQL.

Préparation

Il nous faut d’abord créer un utilisateur pour les 2 machines et qui gèrera les sauvegardes à travers SSH. Sur le serveur VPS_SQL on créé un utilisateur nommé vpsbackup et on l’autorise à se connecter par ssh :

adduser vpsbackup
echo "AllowUsers vpsbackup" >> /etc/ssh/sshd_config
/etc/init.d/ssh restart

Puis sur le serveur VPS_WEB on créé un utilisateur système nommévspbackup :

adduser vpsbackup

En se loguant avec ce nouvel utilisateur on créé une clé ssh qui nous permettra d’envoyer les sauvegardes vers l’autre VPS, on dit de mettre la clé dans /home/vpsbackup/.ssh/id_dsa, on ne met pas de passphrase :

su vpsbackup
ssh-keygen -t dsa

Maintenant on va envoyer notre clé vers le VPS_SQL (on note ici la manière de renseigner le port SSH configuré plus tôt à la commande) :

ssh-copy-id -i ~/.ssh/id_dsa.pub "-p PORT_SSH_DU_VPS_SQL vpsbackup@"

Il demande le mot de passe de l’utilisateur vpsbackup puis indique qu’il a copier la clé. On test la connexion avec :

ssh -p PORT_SSH_DU_VPS_SQL vpsbackup@

Le prompt à changer en indiquant le nom de la machine. Tout est OK on peut se déloguer de la session SSH et ensuite de l’utilisateur vpsbackup :

exit
exit

Ensuite on crée le répertoire qui contiendra les sauvegardes qu’on donne à l’utilisateur nouvellement créé :

mkdir /var/vspbackup
chown -R vspbackup:vspbackup /var/vspbackup

A noter que pour se connecter à MySQL sur la seconde machine, on utilise le compte MySQL vpsweb créer lors de l’installation de PhpMyAdmin.

Installation

Sur notre VPS_WEB on installe le paquetage :

apt-get install backup-manager

La fenêtre de configuration apparait, on lui indique le dossier de destination des sauvegardes /var/vpsbackup, le propriétaire des sauvegardes sera root ainsi que le groupe, et au vue de notrestructure de dossier on lui dit de sauvegarder /etc /root /home /usr/local/bin /var/www ainsi que la base SQL, on créer des archives incrémentales avec une sauvegarde complète toutes les semaines.
On modifie son fichier de configuration pour coller à nos besoins :

nano /etc/backup-manager.conf

# REPOSITORY
export BM_REPOSITORY_ROOT=”/var/vpsackup”
export BM_TEMP_DIR=”/tmp”
export BM_REPOSITORY_SECURE=”true”
export BM_REPOSITORY_USER=”root”
export BM_REPOSITORY_GROUP=”root”
export BM_REPOSITORY_CHMOD=”770″
# ARCHIVE
export BM_ARCHIVE_CHMOD=”660″
export BM_ARCHIVE_TTL=”14″
export BM_REPOSITORY_RECURSIVEPURGE=”false”
export BM_ARCHIVE_PURGEDUPS=”true”
export BM_ARCHIVE_PREFIX=”$HOSTNAME”
export BM_ARCHIVE_STRICTPURGE=”true”
export BM_ARCHVIE_NICE_LEVEL=”10″
export BM_ARCHIVE_METHOD=”tarball-incremental mysql”
# ENCRYPTION
export BM_ENCRYPTION_METHOD=”false”
export BM_ENCRYPTION_RECIPIENT=””
# TARBALL
export BM_TARBALL_NAMEFORMAT=”long”
export BM_TARBALL_FILETYPE=”tar.gz”
export BM_TARBALL_OVER_SSH=”false”
export BM_TARBALL_DUMPSYMLINKS=”false”
export BM_TARBALL_DIRECTORIES=”/etc /root /home /usr/local/bin /var/www”
export BM_TARBALL_BLACKLIST=”/var/vpsbackup *.log”
export BM_TARBALL_SLICESIZE=”1000M”
export BM_TARBALL_EXTRA_OPTIONS=””
export BM_TARBALLINC_MASTERDATETYPE=”weekly”
export BM_TARBALLINC_MASTERDATEVALUE=”1″
# MYSQL
export BM_MYSQL_DATABASES=”__ALL__”
export BM_MYSQL_SAFEDUMPS=”true”
export BM_MYSQL_ADMINLOGIN=”vpsweb”
export BM_MYSQL_ADMINPASS=”MOT_DE_PASSE_SQL”
export BM_MYSQL_HOST=”IP_V4_DU_VPS_SQL”
export BM_MYSQL_PORT=”PORT_SQL_DU_VPS_SQL”
export BM_MYSQL_FILETYPE=”bzip2″
# UPLOADS METHODS
export BM_UPLOAD_METHOD=”scp”
export BM_UPLOAD_HOSTS=”IP_DU_VPS_SQL”
export BM_UPLOAD_DESTINATION=”/home/vpsbackup”
# SSH
export BM_UPLOAD_SSH_USER=”vpsbackup”
export BM_UPLOAD_SSH_KEY=”/home/vpsbackup/.ssh/id_dsa”
export BM_UPLOAD_SSH_HOSTS=”IP_V4_DU_VPS_SQL”
export BM_UPLOAD_SSH_PORT=”PORT_SSH_DU_VPS_SQL”
export BM_UPLOAD_SSH_DESTINATION=”/home/vpsbackup”
export BM_UPLOAD_SSH_PURGE=”true”
export BM_UPLOAD_SSH_TTL=”14″

Ne pas oublier de remplacer les IP et port par ceux qu’on a choisi tout au long de l’installation des serveurs et de désactiver toutes les autres méthodes présentes dans ce fichier.
On lance un premier backup pour tester :

backup-manager -v

On vérifie sur notre deuxième machine que les archives sont présentes dans /home/vpsbackup avec normalement une archive par répertoire sauvegardé, plus une archive pour mysql.
Et on vérifier sur note première machine que backup-manager s’est bien ajouté aux taches planifiées:

l /etc/cron.weekly/backup-manager

Et voila on aura de jolies sauvegardes.
Pour s’amuser, si vous avez suivi tous les épisodes de note installation de serveur, vous pouvez partager le répertoire /var/vpsbackup du VPS_WEB avec BitTorrent Sync vers votre NAS. (Attention toutefois si votre VPS est limité en bande passante par mois)

Au suivant

C’est bon on a fait des sauvegarde on peut maintenant tout casser en essayant d’installer un serveur mail.

Sources

Atbildēt

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *