Webacula ou gérer ses sauvegardes Bacula
Bacula est un gestionnaire de sauvegarde complet. Il fournit par défaut une interface en ligne de commande pour superviser les sauvegarde passées, à venir et la restauration. Pour certaines actions, il est quand même agréable d’avoir une interface plus accessible ce que propose Webacula.
Pré requis
Pour installer convenablement Webacula sur son serveur, il faut :
- un environnement LAMP ou assimilé (ici je ne traiterais que le cas Apache2).
- le module bconsole
- un accès à la base de données de bacula director
- le framework Zend
- sudo pour autoriser le pilotage de bconsole
D’autres éléments sont nécessaires au bon fonctionnement de l’interface web mais elles seront explicitées par la suite.
Préparation de l’environnement
Webacula est une application php qui requiert certains éléments :
- Zend Framework
- php-db
Nous commençons par créer un répertoire vide /var/www/webacula
.
Nous téléchargeons webacula et le framework Zend :
wget http://github.com/tim4dev/webacula/tarball/v3.3.1
wget http://framework.zend.com/releases/ZendFramework-1.10.7/ZendFramework-1.10.7.tar.gz
tar xfzv tim4dev-webacula-v3.3.1-0-g32bc0e4.tar.gz
tar xfzv ZendFramework-1.10.7.tar.gz
Nous associons le framework au projet :
ln -s /var/www/webacula/ZendFramework-1.10.7/library/Zend /var/www/webacula/html/Zend
Nous pensons à installer les paquets d’accès à la base de données.
apt-get install php-bd
Accès aux données de Bacula
Webacula pour suivre et piloter les sauvegardes a besoin de 2 éléments spécifiques à Bacula :
- la console
- le catalogue
La console
La console bacula est un paquet autonome :
-
apt-get install bacula-console
Concernant la configuration de celui ci je vous invite à regarder le fichier /etc/bacula/bacula-console.conf
.
Une configuration type serait :
#
# Bacula User Agent (or Console) Configuration File
#
Director {
Name = director-dir #Nom du director
DIRport = 9101
address = 192.168.20.10 #IP director
Password = "sWaZRqTS1VX0uTcyTZNRlI4Ax9Gj5MK1FNC92QBta0xi"
}
Nous permettons à notre utilisateur apache d’exploiter bconsole grâce à sudo :
-
apt-get install sudo
- Dans
/etc/sudoers
, on ajoute la directivewww-data ALL=NOPASSWD: /usr/bin/bconsole
Le catalogue
Le catalogue liste toutes les données sauvegardées, où, comment , ... Il est donc utile de lire ses informations pour avoir le détail des jobs par exemple.
Pour accéder au catalogue, si nous avons une base MySQL ou PostgreSQL cela est assez simple, on installe les paquets client php pour ces serveurs de données.
apt-get install mysql-client php5-mysql
ou bien
apt-get install postgresql-client php5-pgsql
Si on utilise sqlite, cela est plus original. Si le Director est présent sur la même machine, il est possible de se connecter directement au fichier.
Si le Director est sur une autre machine, on a alors plusieurs alternatives :
- monter un répertoire fuse vers le director,
- scp la base sqlite,
- faire un .dump coté director et importer le sql sur notre machine web,
- autre idée
Il faut dans tous les cas avoir les paquets relatifs à Sqlite :
apt-get install sqlite3 php5-sqlite
Configuration de Webacula
La configuration se passe dans le fichier /var/www/webacula/application/config.ini
Je joins une configuration utilisant sqlite :
[general]
; supported adapters : PDO_MYSQL, PDO_PGSQL, PDO_SQLITE
db.adapter = PDO_SQLITE
;db.config.host = localhost
;db.config.username = root
;db.config.password =
; une copie de la base sqlite provenant du director
db.config.dbname = "/var/www/webacula/catalog/bacula.db"
; pour Sqlite db.config.dbname = "/chemin/complet/du/catalogue/bacula.db"
; see http://www.php.net/timezones
def.timezone = "Europe/Paris"
; Si pas de locale définie par défaut, webacula utilise l'auto détection
; locales disponibles : en, de, fr, pt_BR, ru
; locale = "fr"
; Se reporter au fichier INSTALL pour plus de détail
bacula.sudo = "/usr/bin/sudo"
bacula.bconsole = "/usr/bin/bconsole"
bacula.bconsolecmd = "-n -c /etc/bacula/bconsole.conf"
; Répertoire "tmpdir" dans le quel sera sauvé le fichier contenant la liste des fichier à restaurer.
; Ce répertoire et ses fichiers devaient être accessibles en lecture par le Director.
tmpdir = "/tmp"
; time to live data (session and temporary data tables) for restore files (sec)
; default = 1h, minimum = 600sec.
; ttl_restore_session = 3600
; for debug only (default = 0)
; debug = 1
; the text, which will be placed in the header of the page
; head_title = "webacula :: domain.tld"
; Menu principal flottant (default = 0)
; Le menu demeur visible meme si on scroll dans la page.
; They're animated, so they move up and down as you scroll the browser window up or down.
; mainmenu_floating = 1
[timeline]
gdfontpath = "/usr/share/fonts/dejavu"
fontname = "DejaVuLGCSansMono"
fontsize = 10
[webacula]
; supported adapters : PDO_MYSQL, PDO_PGSQL, PDO_SQLITE
db.adapter = PDO_SQLITE
;db.config.host = localhost
;db.config.username = wbuser
;db.config.password = "wbpass"
;db.config.dbname = webacula
; for Sqlite db.config.dbname = "/var/lib/sqlite/webacula.db"
db.config.dbname = "/var/www/bacula/catalog/webacula.db"
email.to_admin = root@localhost
email.from = webacula@localhost
[feed]
feed_title = "Mon serveur de sauvegarde Bacula #1"
feed_desc = "Description du flux ici"
[layout]
; available values : "default"
path = "default"
Configuration de la base webacula
Webacula trace certains éléments internes pour son bon fonctionnement, ce qui explique les 2 configurations d’accès aux bases de données.
Un script est disponible pour générer la base sqlite adaptée :
./webacula_sqlite_create_database.sh /var/www/webacula/catalog/webacula.db
À noter : Il est conseillé de patcher ce script car l’utilisateur apache n’est pas www-data par défaut.
Configuration d’Apache
Notre service webacula est configuré, notre serveur web doit maintenant l’exécuter correctement.
Webacula fournit un fichier de configuration (/var/www/webacula/conf/webacula.conf
) gérant les droits d’accès et les alias nécessaires à son bon fonctionnement.
La solution proposée est de préparer un fichier de configuration apache classique et d’inclure le fichier de configuration Webacula :
nano cat /etc/apache2/sites-available/webacula
<VirtualHost *:80>
ServerAdmin webacula@localhost
ServerName webacula
DocumentRoot /var/www/webacula
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/webacula/>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Include /var/www/webacula/install/webacula.conf
ErrorLog /var/log/apache2/webacula.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
Avant de relancer le serveur web, il est impératif de vérifier le fichier /var/www/webacula/install/webacula.conf
. La configuration par défaut cible un autre répertoire d’exécution et les droits d’accès sont limités à localhost.
Et pour finir
Un petit a2ensites webacula ; /etc/init.d/apache2 reload
devrait nous donner satisfaction :
Messages
1. Problème installation webacula, 24 octobre 2011, 09:03, par André
A la fin quand je reload apache il m’affiche cette erreur :
apache2 : Syntax error on line 230 of /etc/apache2/apache2.conf : Syntax error on line 17 of /etc/apache2/sites-enabled/webacula : Syntax error on line 6 of /var/www/webacula/install/webacula.conf : Cannot load /etc/apache2/modules/mod_rewrite.so into server : /etc/apache2/modules/mod_rewrite.so : cannot open shared object file : No such file or directory
Action ’configtest’ failed.
The Apache error log may have more information.
failed !
1. Problème installation webacula, 24 octobre 2011, 10:15, par km
Bonjour
Au vu des éléments présents, est ce que le module rewrite rule est actif ? Je crois que cela aidera pas mal à la résolution du problème.
N’hésite pas à revenir si cela ne suffit pas à résoudre le problème.
2. Problème rewrite, réponse à André, 29 mars 2012, 11:02, par cptnflam
Il faut charger le module concerné.
a2enmod rewrite
/etc/init.d/apache2 restart
3. Webacula ou gérer ses sauvegardes Bacula, 1er juin 2013, 23:38, par ouni hamza
Est ce que je peux grée les sauvegardée de bacula avec une interface crée avec VB.NET OU J2EE ? et merci
1. Webacula ou gérer ses sauvegardes Bacula, 21 juin 2013, 18:39, par km
Bonjour
L’interface webacula est codé en PHP mais ce n’est qu’une "simple" interface au dessus de bacula.
Il est donc possible de trouver ou de coder un client qui utilise les langages dot net ou J2EE