Installation d’un serveur de sauvegarde: Bacula

Publié le 11 avril 2012 par Lolokai @lolokai

Introduction

L’année dernière lors de mon stage de fin d’année, parmi mes missions j’ai dû installer un serveur de sauvegarde. J’ai donc décidé de faire un petit break concernant les technologies Oracle et partager à travers deux articles ce que j’ai fait lors de mon stage. Pour cet article, dans un premier temps  je vais vous présenter ce qu’est BACULA et dans un second temps vous montrer   »un moyen » d’installation sur CentOS 5.

Présentation

Bacula est un logiciel  libre qui va nous permettre de faire des sauvegardes  ,  restaurations de données en réseaux.

Il fonctionne sur un model client-serveur.  Sur le serveur on aura différents composants installés tel que le Bacula Director qui va agir comme chef d’orchestre , le catalogue qui va stocker nos différents actions…

Sur le client , on va juste retrouver un service , le bacula file qui sera configuré par la suite pour communiquer avec notre serveur (Bacula Director).

Il faut savoir que ce logiciel , qui rappelons le est libre permet de sauvegarder sur plusieurs type de supports tels que les bandes magnetiques , disques dur , CD/DVD…

Composants et services de BACULA

Bacula est constitué des cinq composants ou services majeurs suivants :

  • Le service Bacula Director est le  chef d’orchestre son role est de superviser toutes les opérations de sauvegarde, restauration, vérification et archivage.
  • Le service Bacula Console va permettre à l’administrateur de communiquer avec le Bacula Director (Console/GUI).
  • Le service Bacula Storage est chargé de transférer les données aux support de sauvegarde et permet de les rstaurer.
  • Les services Catalogue sont role est de maintenir la base de données (MySQL, PostgreSQL, ou SQLite. )et les informations sur les données sauvegardés.
  • Le service Bacula File  est le programme installé sur la machine à sauvegarder.

Schema d’interactions des services BACULA

Installation BACULA

Dans la suite  nous aurons :

  • Un server Bacula sur un système GNU/UNIX, plus précisément sur  CentOs 5, l’adresse IP de cette machine est : 192.168.1.5  où l’on installera le Director, le Catalogue, le Storage et la Console (A bien retenir).
  • Un Client Bacula sur un système Windows, plus précisément sur Windows 7, l’adresse IP de cette machine n’étant pas statique on indiquera le nom d’hôte de la machine où l’on installera le File Daemon  ici : PC_CLIENT.lolokai.fr (A bien retenir).

Par la suite notre utilisateur root sera nommé : Root   et notre utilisateur normale sera nommé User.

Sauf précisions, toutes les commandes seront rentrées par l’utilisateur Root.

Installations des pré-requis 

Dans le terminal,  entrez les commandes suivantes :

yum -y install libxml2-devel zlib-devel pango-devel atk-devel libtermcap-devel

yum -y install gtk2-devel libgnomeui-devel ORBit2-devel libart_lgpl-devel

yum -y install libbonobo-devel libbonoboui-devel GConf2-devel freetype-devel mysql-devel

yum -y install autoconf automake e2fsprogs-devel gcc-c++ glibc-devel glibc-headers

yum -y install krb5-devel libacl-devel libgomp libstdc++-devel libtermcap-devel m4 make mysql mysql-server

yum -y install ncurses ncurses-devel openssl-devel  php qt4 qt4-devel readline-devel redhat-rpm-config rpm-build

Si vous n’avez pas le Perl-DBI sur votre machine :

wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.616.tar.gz
tar -zxvf DBI-1.616.tar.gz
cd DBI-1.616
perl Makefile.PL
make
make test
make install

Installer aussi le module Perl:

wget http://mirror.centos.org/centos/5/os/i386/CentOS/logwatch-7.3-8.el5.noarch.rpm
rpm -Uvh logwatch-7.3-8.el5.noarch.rpm

Puis installer le paquet suivant:

yum install qwt qwt-devel wxGTK

Installations de la base de données MySQL

yum install mysql-server
yum install mysql-devel
/etc/init.d/mysqld start
mysqladmin –u root password ‘vote_mot_de_passe’
chkconfig –add mysqld

Installations des sources bacula

Maintenant passons aux choses sérieuses, nous allons par la suite télécharger les différents sources rpms, avant cela rendons nous dans le dossier /etc/tmp

cd /etc/tmp

Téléchargement des sources

wget http://downloads.sourceforge.net/project/bacula/rpms/5.0.3/bacula-bat-5.0.3-2.src.rpm
wget http://downloads.sourceforge.net/project/bacula/rpms/5.0.3/bacula-mtx-5.0.3-1.src.rpm
wget http://downloads.sourceforge.net/project/bacula/rpms/5.0.3/bacula-docs-5.0.3-1.src.rpm
wget http://downloads.sourceforge.net/project/bacula/rpms/5.0.3/bacula-5.0.3-1.src.rpm

Cela fait, nous allons attribuer certains droits à l’utilisateur User pour pouvoir “construire” (installer) ces sources.

Passer à l’utilisateur User et rentrer la commande suivante :

cp -r /usr/src/redhat ~/rpm_build

Puis créer un fichier caché .rpmmacros dans votre répertoire Home :

cd /home
touch .rpmmacros

Insertion des deux lignes suivantes dans le fichier  .rpmmacros :

%_topdir   %(echo ${HOME}/rpm_build)
%_tmppath   %{_topdir}/tmp

Cela fait , retournez maintenant dans le répertoire /etc/tmp et rentrer en tant que User les commandes suivantes  (pour cette partie la patience est de mise) :

rpmbuild –rebuild –define « build_centos5 1″ –define « build_mysql 1″ –define « build_bat 1″ –define « build_wxconsole 1″ bacula-5.0.3-1.src.rpm
rpmbuild –rebuild –define « build_centos5 1″ –define « build_mysql 1″ –define « build_bat 1″ –define « build_wxconsole 1″ bacula-bat-5.0.3-2.src.rpm
rpmbuild –rebuild –define « build_centos5 1″ –define « build_mysql 1″ –define « build_bat 1″ –define « build_wxconsole 1″ bacula-mtx-5.0.3-1.src.rpm
rpmbuild –rebuild –define « build_centos5 1″ –define « build_mysql 1″ –define « build_bat 1″ –define « build_wxconsole 1″ bacula-docs-5.0.3-1.src.rpm

Dans  le  même répertoire /etc/tmp , repasser en utilisateur Root, et rentrer les commandes suivantes :

rpm -Uvh bacula-libs-5.0.3-1.x86_64.rpm
rpm -Uvh bacula-mysql-5.0.3-1.x86_64.rpm
rpm -Uvh bacula-bat-5.0.3-2.x86_64.rpm
chown bacula:bacula  /usr/lib64/libbac-5.0.3.so

Donner les privilèges MySQL

/usr/lib64/bacula/grant_mysql_privileges –p

Password : ’votre_mot_de_passe’

Création de la base de donnée Bacula 

/usr/lib64/bacula/create_mysql_database –p

Password : ’votre_mot_de_passe’

Création des tables Bacula 

/usr/lib64/bacula/create_mysql_tables –p

Password : ‘Votre_Mot_de_Passe’

On se connecte à la base de données pour attribuer un mot de passe pour bacula :

mysql –u root -p

Password : ‘Votre_Mot_de_Passe’

mysql > set password for bacula=password(‘bacula password’);

mysql > set password for bacula@localhost=password(‘bacula password’);

Si vous voulez vérifier que tout va pour le mieux :

mysql> select user,host,password from mysql.user where user=’bacula’;

Voila , on vient de finir l’installation des différents composants de notre serveur de sauvegarde Bacula

Conclusion:

Tout au long de cet article , nous avons vu comment les composants Bacula interagissent entre eux , et surtout comment les installer.

Dans un prochain article , nous verrons comment configurer bacula coté serveur et coté client, nous aurons aussi une presentation de l’interface graphique de bacula et enfin nous verrons comment sauvegarder et récupérer des données.

Avez vous deja installé Bacula ?

si non , vous utilisez quel programme « libre » pour vos sauvegarde?

Je reste ouvert à tous commentaires