Bacula-1 Présentation 👨‍🏫

Objectifs:
🎯 automatiser des backups de serveurs.

Prérequis:
N/A


logo de bacula, outil devops d'automatisation de backups.

Il existe de nombreux moyen de sauvegarder les données de ses serveurs. Il est aussi bien possible de faire une compression (rar, zip, tar? ) de tous les dossiers que l'on veut conserver et les envoyer sur vos disques de sauvegarde, faire des images docker à stocker dans un dépôt dédié, ou utiliser des outils dédiés comme bacula. Ce dernier est un outil que j'aime utiliser parce qu'il est open source, la documentation à disposition est plutôt bien faite et qu'une fois qu'on comprend bien la configuration cela tourne bien et la gestion des backups est flexible.

Bacula est logiciel de type client-serveur, c'est à dire que pour configurer votre première tâche de backup dans bacula, il vous faudra déployer un bacula-server qui pourra planifier des actions de backups de serveurs à condition que le bacula-client soit installé sur ces derniers.

Passons à quelques définitions importantes de composants de bacula pour comprendre le fonctionnement et la configuration de cet outil de gestion de backup.
source: bacula.org(Allez sur -> documentation -> Main Reference Guide et faites une recherche du mot "configur" )

Director daemon: 😈
Le director daemon est le composant qui permet de définir les éléments nécessaires à la planification de tâches de backup. Il faudra dans son fichier de configuration bacula-dir.conf y définir les ressources suivantes:

Director: 👨‍✈️
Pour définir le director et son mot de passe d'accès à la console. Il doit en avoir qu'un seul. Si vous avez /dev/random ou bc sur votre machine, bacula va générer un mot de passe durant le proces de configuration, autrement le champ sera laissé vide.

Job: 📋
Pour définir les jobs de backup/restore, cette ressource permet de faire le lien entre les ressources Client, FileSet et Schedule à utiliser pour réaliser une tâche de backup/restore.

JobDefs: 📋
ressource optionnelle servant de template pour les jobs.

Schedule:
Pour définir quand est ce qu'un job doit être automatiquement lancé par le planificateur de bacula. Vous pouvez définir autant de Schedule que vous voulez mais pour un job est associé à un seul schedule.

FileSet: 📂
Pour définir un ensemble de fichiers à inclure/exclure dans les backups. Vous pouvez définir autant de Fileset que vous voulez mais un job est associé à un seul Fileset.

Client: 🧔🏽
Pour définir quel client va être backupé. Il est possible de définir plusieurs clients, chacun d'eux sera associé à un job.

Storage (ou Autochanger): 💾
Pour définir sur quel stockage physique les volumes doivent être montés. Il faut avoir au moins une définition de Storage.

Pool: 🎱
Pour définir le groupe de volumes de données bacula qui peut être utilisé pour un job spécifique.

Catalog: 📕
Pour définir la base de données dans laquelle il faut conserver la listes des fichiers et le nom des volumes de données dans lesquels ils sont backupés.

Console: 👩🏼‍💻
Pour définir comment les administrateurs et utilisateurs peuvent intéragir avec le Director.

Counter:
Pour définir une variable de compteur accessible par expansion de variable utilisée pour créer des étiquettes de volume.
Messages: 💬
Pour définir où les messages d'erreur et d'information vont être envoyés ou loggé. You may define multiple different message resources and hence direct particular classes of messages to different users or locations (files, ...).

Storage daemon: 😈
Le storage daemon permet de faire le lien entre les medias de stockage physique et les volumes de données managés par bacula. Il faudra dans son fichier de configuration bacula-sd.conf y définir les ressources suivantes:

Storage: 💾
Pour définir le nom du Storage daemon.

Director(n): 👨‍✈️
Pour définir le nom du director qui fera appel à ce storage daemon et son mot de passe.

Device: 📳
Pour définir les caractéristiques de votre périphérique de stockage.

Messages: 💬
Pour définir le path dans lequel les messages d'erreurs et d'informations vont être envoyés.

File daemon: 😈
Le file daemon quant à lui est l'agent qui doit être actif sur les serveurs dont on souhaite faire un backup. Il faudra dans son fichier de configuration bacula-fd.conf définir les ressources suivantes:

Client: 🧔🏽
Pour définir le client pour lequel il faudra faire un backup.

Director: 👨‍✈️
Pour définir le nom du director qui fera appel à ce file daemon et son mot de passe.

Messages: 💬
Pour définir le path dans lequel les messages d'erreurs et d'informations vont être envoyés.


Conclusion:
Avec les définitions précédentes nous avons l'essentiel pour installer et configurer bacula.
Cela fait beaucoup d'information, le plus important dans ce chapitre est de retenir que bacula fonctionne à l'aide de 3 deamons (processus): Director daemon, Storage daemon et File daemon.
Le Director daemon et le Storage daemon sont installés et actifs exclusivement sur le seveur bacula tandis que le File daemon est l'agent et donc doit être installé et actif sur toutes les machines pour lesquelles vous voulez faire un backup.

Dans le prochain chapitre bacula-2: Installation nous allons procéder à l'installation de bacula.