Comment sauvegarder un serveur Ubuntu 14.04 avec Bacula

introduction

Ce tutoriel vous montrera comment configurer Bacula pour créer des sauvegardes d’un hôte distant Ubuntu 14.04, via une connexion réseau. Cela implique l’installation et la configuration du logiciel Client Bacula sur un hôte distant, ainsi que des ajouts à la configuration d’un serveur Bacula existant (décrits dans les conditions préalables).

Si vous essayez de créer des sauvegardes des hôtes CentOS 7, suivez plutôt ce lien: https://www.digitalocean.com/community/tutorials/how-to-back-up-a-centos-7-server-with-bacula [Comment sauvegarder un serveur CentOS 7 avec Bacula].

Conditions préalables

Ce tutoriel suppose que vous avez un serveur exécutant les composants du serveur Bacula, comme décrit dans ce lien: https://www.digitalocean.com/community/tutorials/how-to-install-bacula-server-on-ubuntu-14- 04 [Comment installer Bacula Server sur Ubuntu 14.04].

Nous supposons également que vous utilisez des interfaces réseau privées pour les communications serveur / client de sauvegarde. Nous ferons référence au nom de domaine complet privé des serveurs (noms de domaine complets qui pointent vers les adresses IP privées). Si vous utilisez des adresses IP, remplacez simplement les informations de connexion, le cas échéant.

Pour la suite de ce didacticiel, nous allons appeler le serveur Bacula «BaculaServer», «Bacula Server» ou «Backup Server». Nous ferons référence à l’hôte distant en cours de sauvegarde sous les noms «ClientHost», «Client hôte» ou «Client».

Commençons par apporter quelques modifications rapides à la configuration du serveur Bacula.

Organiser la configuration de Bacula Director (serveur)

Sur votre * serveur Bacula *, exécutez cette section une fois.

Lors de la configuration de votre serveur Bacula, vous avez peut-être remarqué que les fichiers de configuration sont excessivement longs. Nous allons essayer d’organiser un peu la configuration de Bacula Director afin qu’il utilise des fichiers séparés pour ajouter une nouvelle configuration, telle que des tâches, des ensembles de fichiers et des pools.

Créons un répertoire pour aider à organiser les fichiers de configuration de Bacula:

sudo mkdir /etc/bacula/conf.d

Ouvrez ensuite le fichier de configuration de Bacula Director:

sudo vi /etc/bacula/bacula-dir.conf

A la fin du fichier, ajoutez cette ligne:

bacula-dir.conf - Ajoute a la fin du fichier

@|"find /etc/bacula/conf.d -name '*.conf' -type f -exec echo @{} \;"

Sauvegarder et quitter. Cette ligne permet au directeur de rechercher dans le répertoire + / etc / bacula / conf.d + des fichiers de configuration supplémentaires à ajouter. En d’autres termes, tout fichier + .conf + ajouté sera chargé dans le cadre de la configuration.

Ajouter un pool de fichiers distants

Nous souhaitons ajouter un pool supplémentaire à notre configuration Bacula Director, que nous utiliserons pour configurer nos travaux de sauvegarde à distance.

Ouvrez le fichier + conf.d / pools.conf +:

sudo vi /etc/bacula/conf.d/pools.conf

Ajoutez la ressource de pool suivante:

conf.d / pools.conf - Ajouter une ressource de pool

Pool {
 Name = RemoteFile
 Pool Type = Backup
 Label Format = Remote-
 Recycle = yes                       # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 365 days         # one year
   Maximum Volume Bytes = 50G          # Limit Volume size to something reasonable
 Maximum Volumes = 100               # Limit number of Volumes in Pool
}

Sauvegarder et quitter. Cela définit un pool «RemoteFile», que nous utiliserons par le travail de sauvegarde que nous créerons ultérieurement. N’hésitez pas à modifier les paramètres pour répondre à vos propres besoins.

Nous n’avons pas besoin de redémarrer Bacula Director pour l’instant, mais vérifions que sa configuration ne contient aucune erreur:

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

S’il n’y a pas d’erreur, vous êtes prêt à continuer la configuration du client Bacula.

Installer et configurer le client Bacula

Exécutez cette section sur tout * hôte client * que vous ajoutez à votre configuration Bacula.

Tout d’abord, mettez à jour apt-get:

sudo apt-get update

Puis installez le paquet + bacula-client +:

sudo apt-get install bacula-client

Cela installe le démon de fichier Bacula (FD), souvent appelé «client Bacula».

Configurer le client

Avant de configurer le File Daemon du client, vous souhaiterez rechercher les informations suivantes, qui seront utilisées tout au long du reste de ce didacticiel:

  • * Nom d’hôte du client: *: Notre exemple utilisera «ClientHost»

  • * Nom de domaine complet privé du client: * Nous nous référerons à cela en tant que "client_private_FQDN", ce qui peut ressembler à + ​​clienthost.private.example.com +

  • * Nom d’hôte du serveur Bacula: * Notre exemple utilisera “BackupServer”

Votre configuration réelle sera différente de celle de l’exemple. Veillez donc à effectuer des substitutions le cas échéant.

Ouvrez la configuration du démon de fichier:

sudo vi /etc/bacula/bacula-fd.conf

Nous devons modifier quelques éléments et enregistrer certaines informations dont nous aurons besoin pour la configuration de notre serveur.

Commencez par rechercher la ressource Director nommée d’après le nom d’hôte de votre client (par exemple, "ClientHost-dir"). Comme le directeur Bacula que nous voulons contrôler ce client est situé sur le serveur Bacula, remplacez le paramètre «Nom» par le nom d’hôte de votre serveur de sauvegarde suivi de «-dir». Suivant notre exemple, avec «BackupServer» comme nom d’hôte du serveur Bacula, il devrait ressembler à ceci après sa mise à jour:

bacula-fd.conf - Nom du directeur de mise à jour

Director {
 Name = -dir
 Password = "IrIK4BHRA2o5JUvw2C_YNmBX_70oqfaUi"
}

Vous devez également copier le + Password +, qui est le mot de passe généré automatiquement utilisé pour les connexions au File Daemon, et le sauvegarder pour référence ultérieure. Ceci sera utilisé dans la configuration du directeur de Backup Server, que nous définirons dans une prochaine étape, pour se connecter au File Daemon de votre client.

Ensuite, nous devons ajuster un paramètre dans la ressource FileDaemon. Nous allons modifier le paramètre + FDAddress + pour qu’il corresponde au nom de domaine complet privé de notre ordinateur client. Le paramètre + Nom + devrait déjà être renseigné correctement avec le nom du démon de fichier client. La ressource doit ressembler à ceci (remplacez le nom de domaine complet ou l’adresse IP réelle):

bacula-fd.conf - Mettre à jour FDAddress

FileDaemon {                          # this is me
 Name = -fd
 FDport = 9102                  # where we listen for the director
 WorkingDirectory = /var/lib/bacula
 Pid Directory = /var/run/bacula
 Maximum Concurrent Jobs = 20
 FDAddress =
}

Nous devons également configurer ce démon pour qu’il transmette ses messages de journal au serveur de sauvegarde. Recherchez la ressource Messages et modifiez le paramètre + director + pour faire correspondre le nom d’hôte de votre serveur de sauvegarde avec un suffixe «-dir». Ça devrait ressembler a quelque chose comme ca:

bacula-fd.conf - Directeur de mise à jour

Messages {
 Name = Standard
 director =  -dir = all, !skipped, !restored
}

Enregistrez le fichier et quittez. Votre File Daemon (Bacula Client) est maintenant configuré pour écouter les connexions sur le réseau privé.

Vérifiez que la syntaxe de votre fichier de configuration est correcte à l’aide de la commande suivante:

sudo bacula-fd -tc /etc/bacula/bacula-fd.conf

Si la commande ne renvoie aucune sortie, la syntaxe du fichier de configuration est valide. Redémarrez le démon de fichier pour utiliser les nouveaux paramètres:

sudo service bacula-fd restart

Configurons un répertoire dans lequel le serveur Bacula peut restaurer des fichiers. Créez la structure de fichier et verrouillez les autorisations et la propriété pour la sécurité à l’aide des commandes suivantes:

sudo mkdir -p /bacula/restore
sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

La machine client est maintenant configurée correctement. Ensuite, nous allons configurer le serveur de sauvegarde pour pouvoir se connecter au client Bacula.

Ajouter des ensembles de fichiers (serveur)

Bacula FileSet définit un ensemble de fichiers ou de répertoires à inclure ou à exclure de la sélection de sauvegarde et est utilisé par les tâches de sauvegarde sur le serveur Bacula.

Si vous avez suivi le didacticiel préalable, qui configure les composants de Bacula Server, vous disposez déjà d’un ensemble de fichiers appelé «Ensemble complet». Si vous souhaitez exécuter des travaux de sauvegarde qui incluent presque tous les fichiers de vos clients de sauvegarde, vous pouvez utiliser ce FileSet dans vos travaux. Cependant, vous constaterez peut-être que souvent vous ne voulez pas ou n’avez pas besoin de tout sauvegarder sur un serveur et qu’un sous-ensemble de données suffit.

Le fait de sélectionner de manière plus sélective l’inclusion de fichiers dans un ensemble de fichiers diminuera la quantité d’espace disque et le temps requis par votre serveur de sauvegarde pour exécuter un travail de sauvegarde. Cela peut également simplifier la restauration, car vous n’avez pas besoin de parcourir le «jeu complet» pour trouver les fichiers que vous souhaitez restaurer.

Nous allons vous montrer comment créer de nouvelles ressources FileSet, afin que vous puissiez être plus sélectif dans ce que vous sauvegardez.

Sur votre * serveur Bacula *, ouvrez un fichier nommé + filesets.conf +, dans le répertoire de configuration de Bacula Director créé précédemment:

sudo vi /etc/bacula/conf.d/filesets.conf

Créez une ressource FileSet pour chaque ensemble de fichiers que vous souhaitez utiliser dans vos travaux de sauvegarde. Dans cet exemple, nous allons créer un ensemble de fichiers qui ne comprend que les répertoires home et etc:

filesets.conf - Ajouter les fichiers de maison et autres

FileSet {
 Name = ""
 Include {
   Options {
     signature = MD5
     compression = GZIP
   }


 }
 Exclude {

 }
}

Il y a beaucoup de choses qui se passent dans ce fichier, mais voici quelques détails à garder à l’esprit:

  • Le nom du fichier doit être unique

  • Incluez tous les fichiers ou partitions sur lesquels vous souhaitez effectuer des sauvegardes.

  • Exclure tous les fichiers que vous ne souhaitez pas sauvegarder, mais qui ont été sélectionnés en raison de leur existence dans un fichier inclus

Vous pouvez créer plusieurs FileSets si vous le souhaitez. Sauvegardez et quittez lorsque vous avez terminé.

Nous sommes maintenant prêts à créer un travail de sauvegarde qui utilisera notre nouveau FileSet.

Ajouter un client et un travail de sauvegarde au serveur Bacula

Nous sommes maintenant prêts à ajouter notre client au serveur Bacula. Pour ce faire, nous devons configurer Bacula Director avec de nouvelles ressources Client et Job.

Ouvrez le fichier + conf.d / clients.conf +:

sudo vi /etc/bacula/conf.d/clients.conf

Ajouter une ressource client

Une ressource client configure le directeur avec les informations nécessaires pour se connecter à l’hôte client. Cela inclut le nom, l’adresse et le mot de passe du File Daemon du client.

Collez cette définition de ressource client dans le fichier. Assurez-vous de remplacer votre nom d’hôte, votre nom de domaine complet (FQDN) privé et votre mot de passe (à partir du + bacula-fd.conf + du client), en surbrillance:

conf.d / clients.conf - Ajouter une ressource client

Client {
 Name = -fd
 Address =
 FDPort = 9102
 Catalog = MyCatalog
 Password = ""          # password for Remote FileDaemon
 File Retention = 30 days            # 30 days
 Job Retention = 6 months            # six months
 AutoPrune = yes                     # Prune expired Jobs/Files
}

Vous ne devez le faire qu’une fois pour chaque client.

Créez un travail de sauvegarde:

Un travail de sauvegarde, qui doit avoir un nom unique, définit les détails du client et des données à sauvegarder.

Ensuite, collez ce travail de sauvegarde dans le fichier, en remplaçant le nom d’hôte du client par le texte en surbrillance:

conf.d / clients.conf - Ajouter une ressource de travail de sauvegarde

Job {
 Name = "Backup"
 JobDefs = "DefaultJob"
 Client = -fd
 Pool = RemoteFile
 FileSet="Home and Etc"
}

Cela crée un travail de sauvegarde appelé «BackupClientHost», qui sauvegardera les répertoires de base et autres de l’hôte client, comme défini dans le fichier «Home and Etc». Il utilisera les paramètres spécifiés dans les ressources de pool «DefaultJob» JobDefs et «RemoteFile», qui sont tous deux définis dans le fichier principal + bacula-dir.conf +. Par défaut, les travaux spécifiant + JobDefs =" DefaultJob "+ seront exécutés chaque semaine.

Enregistrez et quittez lorsque vous avez terminé.

Vérifier la configuration du directeur

Vérifions qu’il n’ya pas d’erreur de syntaxe dans votre fichier de configuration de Director:

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

Si vous revenez à l’invite du shell, il n’ya pas d’erreur de syntaxe dans les fichiers de configuration de Bacula Director.

Redémarrer Bacula Director

Pour appliquer les modifications de configuration que vous avez apportées, redémarrez Bacula Director:

sudo service bacula-director restart

Votre client, ou hôte distant, est maintenant configuré pour être sauvegardé par votre serveur Bacula.

Tester la connexion du client

Nous devons vérifier que le directeur Bacula peut se connecter au client Bacula.

Sur votre serveur Bacula, entrez la console Bacula:

sudo bconsole
status client
Select Client resource: ClientHost-fdThe defined Client resources are:
    1: BackupServer-fd
    2: ClientHost-fd
Select Client (File daemon) resource (1-2):

L’état du démon de fichiers du client doit revenir immédiatement. Si ce n’est pas le cas et qu’il y a une erreur de connexion, il y a un problème avec la configuration du serveur Bacula ou du démon de fichier du client.

Tester le job de sauvegarde

Exécutons le travail de sauvegarde pour s’assurer qu’il fonctionne.

Sur le * serveur Bacula *, toujours dans la console, utilisez cette commande:

run

Vous serez invité à sélectionner le travail à exécuter. Sélectionnez celui que nous avons créé précédemment, par exemple. “4. BackupClientHost ”:

Select Job resource: BackupClientHostThe defined Job resources are:
    1: BackupLocalFiles
    2: BackupCatalog
    3: RestoreLocalFiles
    4: BackupClientHost
Select Job resource (1-4):

À l’invite de confirmation, entrez «oui»:

Confirmation prompt:
OK to run? (yes/mod/no):

Vérifier les messages et le statut

Après avoir exécuté un travail, Bacula vous dira que vous avez des messages. Les messages sont générés par les travaux en cours.

Vérifiez les messages en tapant:

messages

Les messages doivent indiquer «Aucun enregistrement de travail de sauvegarde complet précédent n’a été trouvé» et que le travail de sauvegarde a démarré. S’il y a des erreurs, quelque chose ne va pas et elles devraient vous indiquer pourquoi le travail n’a pas été exécuté.

Une autre façon de voir le statut du travail consiste à vérifier le statut du directeur. Pour ce faire, entrez cette commande à l’invite bconsole:

status director

Si tout fonctionne correctement, vous devez voir que votre travail est en cours d’exécution ou s’est terminé avec le statut «OK».

Effectuer la restauration

La première fois que vous configurez un nouveau client Bacula, vous devez vérifier que la restauration fonctionne correctement.

Si vous souhaitez effectuer une restauration, utilisez la commande + restore + sur la console Bacula:

restore all

Un menu de sélection apparaît avec de nombreuses options permettant d’identifier le jeu de sauvegarde à restaurer. Comme nous n’avons qu’une seule sauvegarde, sélectionnons l’option 5 «Sélectionnez la sauvegarde la plus récente»:

Select item (1-13):5

Ensuite, vous devez spécifier le client à restaurer. Nous voulons restaurer l’hôte distant que nous venons de configurer, par exemple. "ClientHost-fd":

Select the Client: ClientHost-fdDefined Clients:
    1: BackupServer-fd
    2: ClientHost-fd
Select the Client (1-2):

Cela vous déposera dans une arborescence de fichiers virtuelle avec toute la structure de répertoires que vous avez sauvegardée. Cette interface de type shell permet aux commandes simples de marquer et de désélectionner les fichiers à restaurer.

Parce que nous avons spécifié que nous voulions “tout restaurer”, chaque fichier sauvegardé est déjà marqué pour la restauration. Les fichiers marqués sont identifiés par un caractère + * +.

Si vous souhaitez affiner votre sélection, vous pouvez naviguer et répertorier les fichiers avec les commandes «ls» et «cd», marquer les fichiers pour restauration avec «marquer», et désélectionner les fichiers avec «désélectionner». Une liste complète des commandes est disponible en tapant «help» dans la console.

Lorsque vous avez terminé votre sélection de restauration, continuez en tapant:

done

Confirmez que vous souhaitez exécuter le travail de restauration:

OK to run? (yes/mod/no):yes

Vérifier les messages et le statut

Comme pour les tâches de sauvegarde, vous devez vérifier les messages et l’état de Director après avoir exécuté une tâche de restauration.

Vérifiez les messages en tapant:

messages

Il devrait y avoir un message indiquant que le travail de restauration a démarré ou s’est terminé avec le statut «Restaurer OK». S’il y a des erreurs, quelque chose ne va pas et elles devraient vous indiquer pourquoi le travail n’a pas été exécuté.

Là encore, vérifier le statut de directeur est un excellent moyen de connaître l’état d’un travail de restauration:

status director

Lorsque vous avez terminé la restauration, tapez + exit + pour quitter la console Bacula:

exit

Si tout fonctionne correctement, vos fichiers restaurés seront sur votre hôte client, dans le répertoire + / bacula / restore +. Si vous testiez simplement le processus de restauration, vous devez supprimer le contenu de ce répertoire.

Conclusion

Vous avez maintenant un serveur Bacula qui sauvegarde des fichiers à partir d’un client Bacula distant. Veillez à examiner et à réviser votre configuration jusqu’à ce que vous soyez certain de sauvegarder les ensembles de fichiers appropriés, selon un calendrier répondant à vos besoins. Si vous essayez de créer des sauvegardes des hôtes CentOS 7, suivez ce lien: https://www.digitalocean.com/community/tutorials/how-to-back-up-a-centos-7-server-with-bacula [ Comment sauvegarder un serveur CentOS 7 avec Bacula].

Ensuite, répétez les sections pertinentes de ce didacticiel pour tous les serveurs Ubuntu 14.04 supplémentaires que vous souhaitez sauvegarder.