introduction
Autobackup est un système de sauvegarde automatisé qui récupère les données à sauvegarder à partir d'un serveur distant et les stocke sur le serveur. Dans notre cas, nous pouvons utiliser une instance de stockage Vultr avec d'énormes quantités d'espace disque et sauvegarder toutes nos instances de calcul à travers cela afin d'éviter toute perte de données.
Exigences
Installation
Vous pouvez installer AutoBackup en utilisant git
facilement sur votre système. Allez-y et clonez le référentiel:
mkdir /opt/
git clone https://github.com/fbrandstetter/Autobackup.git /opt/autobackup/
Configuration
Avant de pouvoir commencer à sauvegarder les données de nos instances de calcul, nous devons y accéder. Pour cela, nous allons créer une clé SSH sur notre instance de stockage et accorder l'accès à partir de celle-ci à toutes les instances de calcul. Ensuite, nous allons commencer par créer la clé:
ssh-keygen
À partir de maintenant, nous devons copier notre clé publique dans les instances de calcul. Ouvrez le fichier suivant ~/.ssh/id_rsa.pub
et copiez-le dans les instances de calcul ~/.ssh/authorized_keys
:
cat ~/.ssh/id_rsa.pub
Si vous ne travaillez pas avec des clés publiques pour accéder à vos instances de calcul, vous devez d'abord définir le fichier de clés autorisées dans la configuration du serveur SSH. Ouvrez le fichier suivant /etc/ssh/sshd_config
sur les instances de calcul et décommentez la ligne suivante:
AuthorizedKeysFile %h/.ssh/authorized_keys
Connexion
Une fois que vous avez ajouté la clé SSH de l'instance de stockage sur toutes les instances de calcul, vous pouvez continuer à essayer la connexion à l'une de vos instances de calcul (afin d'éviter tout problème ultérieurement, assurez-vous que la connexion à tous les serveurs fonctionne):
ssh root@COMPUTE_INSTANCE_1
Vous devriez pouvoir vous connecter sans taper de mot de passe ni rien d'autre.
La sauvegarde automatique nécessite également une configuration pour fonctionner correctement. Ouvrez le /opt/autobackup/backup.sh
fichier, car toute configuration est stockée dans le fichier bash lui-même. Jetez un œil aux lignes suivantes et adaptez-les à vos besoins:
BACKUPDIR=""
PASSWORD=""
FREEUPSPACE=""
MAXUSED=""
- BACKUPDIR: Il s'agit du dossier dans lequel toutes les sauvegardes seront stockées.
- MOT DE PASSE: il s'agit du mot de passe utilisé pour crypter les sauvegardes.
- FREEUPSPACE: définit si le script doit supprimer les anciennes sauvegardes si le disque est plein ou non.
- MAXUSED: définit la taille de disque la plus basse autorisée jusqu'à ce qu'elle arrête la sauvegarde ou commence à supprimer les anciennes.
Ajouter un serveur
Tous les serveurs à sauvegarder sont stockés dans le /opt/autobackup/serverlist.template
fichier au format suivant:
<SERVER_HOSTNAME OR IP>|<USERNAME FOR AUTHENTICATION>|<EXCLUDE LIST>
Global exclut
Par défaut, Autobackup sauvegarde automatiquement l'intégralité du serveur, ce qui signifie qu'il essaie de télécharger /
récursif. Certaines personnes n'ayant pas besoin de sauvegarder l'intégralité du système, vous pouvez ajouter des exclusions globales (qui s'appliquent à n'importe quel serveur) et des exclusions spécifiques au serveur, qui s'appliquent à des serveurs spécifiques. Toutes les exclusions globales sont stockées dans le fichier appelé /opt/autobackup/default-excludes.template
et le fichier est prérempli avec /proc
et /dev
, vous pouvez y ajouter de nouveaux dossiers et extensions de fichier en ajoutant simplement de nouvelles lignes:
/proc
/dev
Exclut spécifique au serveur
Étant donné que la plupart des gens utilisent différents types de serveurs (par exemple, des serveurs Web et des serveurs de base de données), il existe des listes d'exclusion uniques pour chaque serveur. Le format des fichiers d'exclusion spécifiques au serveur ressemble à celui des fichiers globaux. Vous pouvez créer un nouveau fichier et l'appeler à celui que EXCLUDE_LIST
vous avez défini pour le serveur dans la liste de serveurs. Si vous ne souhaitez pas spécifier de liste d'exclusion pour ce serveur, définissez-la empty
dans la liste de serveurs. Le fichier appelé empty
a déjà été téléchargé par le clone du référentiel - ce fichier est vide afin de ne pas avoir de répertoires ou quoi que ce soit d'autre exclu, tandis que les exclus par défaut prennent toujours effet.
Restaurer les données
Dans un environnement idéal, nous ne sommes même pas censés restaurer nos sauvegardes chiffrées. Bien que face à des problèmes et que nous devions récupérer nos données sauvegardées, il est assez facile de les restaurer. Vous pouvez restaurer n'importe quel fichier de sauvegarde à l'aide de la commande suivante:
openssl aes-256-cbc -d -salt -in BACKUP.tar.aes -out BACKUP.restored.tar
mkdir backup/
tar -xvf BACKUP.restored.tar backup/
Remplacez le BACKUP.tar.aes
par le nom de fichier de la sauvegarde souhaitée à restaurer. BACKUP.restored.tar
sera le nom de fichier de l'archive non chiffrée. Dans l'exemple ci-dessus, nous avons déjà effectué les étapes suivantes, qui sont:
- Créer un nouveau dossier
- Restaurer l'archive non chiffrée dans le dossier
Conclusion
Autobackup est un script de sauvegarde entièrement automatisé et assez intelligent qui gère automatiquement les sauvegardes pour nous et l'énorme avantage est que les données sont cryptées par un mot de passe qui peut être presque illimité. Cela signifie que tant que vous gardez votre mot de passe sécurisé et qu'il est suffisamment long, personne ne peut toucher vos données en temps opportun. Happy Hacking!