Bacula-2 Installation 💻

Prérequis: savoir utiliser les outils de gestion de services et savoir analyser les processus en cours d'exécution sur une machine linux. La connaissance de docker et des bases de données mysql sont aussi nécessaires.
environnement: ubuntu 20.04.02

Objectifs:
🎯 Installer bacula sur ubuntu.

Prérequis:
💡 connaître ubuntu.
💡 connaître mysql.
💡 connaître docker.


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

1) Démarrez un conteneur docker de l'image mysql:5.6

sudo docker run -d -e MYSQL_ROOT_PASSWORD=my-secret-pwd -p 9101:9101 -p 9102:9102 -p 9103:9103 -v /bacula/backup:/bacula/backup -v /bacula/restore:/bacula/restore --name=bacula-server -h bacula-server mysql:5.6

-> my-secret-pwd est le mot de passe d'accès à la base de données mysql dans le cadre du tutoriel à vous de choisir le votre et plus sécure. 😉

-> -p 9101:9101 pour mapper le port 9101 du conteneur au port 9101 de la machine hôte.

-> -v /bacula/backup/:/bacula/backup pour créer un dossier /bacula/backup dans le conteneur synchronisé avec le dossier /bacula/backup de la machine hôte.

2) Créez la base de données bacula dans le conteneur

2.1) Depuis votre machine host - Création du script create_bacula_bdd.sql

tee -a create_bacula_bdd.sql << EOF
create database bacula;
create user bacula@localhost identified by 'baculausermdp';
grant all privileges on bacula.* to bacula@'localhost';
flush privileges;
exit
EOF

-> baculausermdp est le mdp du user bacula de la base de données mysql dans le cadre du tutoriel, à vous de choisir le votre et plus sécure.😉

2.2) Depuis votre machine host - Création du script create_bacula_bdd.sh

tee -a create_bacula_bdd.sh << EOF
sudo docker cp create_bacula_bdd.sql bacula-server:/create_bacula_bdd.sql
sudo docker exec -it bacula-server bash -c 'mysql -uroot -pmy-secret-pw < create_bacula_bdd.sql'
EOF

2.3) Depuis votre machine host - Rendre les scripts exécutables puis lancer create_bacula_bdd.sh

chmod +x create_bacula_bdd.sql;
chmod +x create_bacula_bdd.sh;
bash create_bacula_bdd.sh

2.4) Depuis votre conteneur bacula-server - Installez bacula-director-mysql, Répondez yes et renseignez le mot de passe attribué à bacula@localhost dans le script create_bacula_bdd.sql

apt-get install bacula-director-mysql -y;

configuration de la base données pour bacula-director-mysql, outil devops d'automatisation de backups

3) Installez bacula-server et bacula client

Depuis votre conteneur bacula-server - Installations des packages nécéssaires.

apt-get install vim iproute procps;
apt-get install bacula-server;
apt-get install bacula-client -y;

4) Configurez votre premier job de backup

4.1) Depuis votre conteneur bacula-server - Gestion des dossiers et leurs droits

chmod 755 /etc/bacula/scripts/delete_catalog_backup;
mkdir -p /bacula/backup /bacula/restore;
chown -R bacula:bacula /bacula;
chmod -R 700 /bacula;

Les dossiers /bacula/backup et /backula/resrtore vont être utilisés pour la créations des backups et la restauration des données.

4.2) Depuis votre conteneur bacula-server - Configuration du director

vim /etc/bacula/bacula-dir.conf

configuration du director à l'aide du fichier de configuration bacula-dir.conf, outil devops d'automatisation de backups

J'ai mis l'adresse réseau (0.0.0.0) pour que mes futures machines à distance puissent se connecter au director.

configuration du storage File1 à l'aide du fichier de configuration bacula-dir.conf, outil devops d'automatisation de backups

J'ai mis l'adresse réseau (0.0.0.0) pour que mes futures machines à distance puissent se connecter au storage.

configuration du Fileset Full Set l'aide du fichier de configuration bacula-dir.conf, outil devops d'automatisation de backups

Rajoutez au FileSet "Full Set" la compression GZIP, inclure le dossier dont vous voulez faire un backup (/root dans mon cas), vous pouvez aussi exclure des dossiers du backup (image 👆).

configuration des Pools à l'aide du fichier de configuration bacula-dir.conf, outil devops d'automatisation de backups

Rajoutez aux pools Default et File les Label Format que vous voulez.(image 👆)

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

si la commande ne renvoit pas d'erreur c'est que la configuration est valide.

4.3) Depuis votre conteneur bacula - Configuration du storage daemon

vim /etc/bacula/bacula-sd.conf

configuration du storage daemon à l'aide du fichier de configuration bacula-sd.conf, outil devops d'automatisation de backups

J'ai mis l'adresse réseau (0.0.0.0) pour que mes futures machines à distance puissent se connecter au storage.

configuration du device à l'aide du fichier de configuration bacula-sd.conf, outil devops d'automatisation de backups

Trouvez le device dont le media type est File1 et lui donner comme valeur notre dossier de backup /bacula/backup (image 👆).

bacula-sd -tc /etc/bacula/bacula-sd.conf

si la commande ne renvoit pas d'erreur c'est que la configuration est valide.

4.4) Depuis votre conteneur bacula - Lancez bacula-director, bacula-sd et bacula-fd.

service bacula-director start;
service bacula-sd start;
service bacula-fd start;

4.5) Depuis votre conteneur bacula - Lancez votre premier job de backup.

bconsole
run
1


Run first job with bconsole

Toujours dans la bconsole tapez messages pour voir les derniers logs.

First job status

Le backup semble être ok