Instalação do Bacula-Web com PostgreSQL no CentOS 6

O Bacula-Web é uma ferramenta open source com licença (GPL v 2.0) que faz parte do projeto comunitário do Bacula.

A principal vantagem do Bacula-Web é a sua simplicidade de instalação e configuração e é instalação totalmente web sem a necessidade de instalação de um cliente local.

O Bacula-Web prove muitas informações a respeito dos seus últimos backups, restores, volumes pools e etc.

Se você estiver interresado em uma lista de todos os recursos disponíveis você vai conseguir mais informações na seção documentação do projeto em: Documentação

A única coisa que é necessário para o bacula-web trabalhar é configurar um servidor web com suporte ao banco de dados de catalogo do Bacula.

O Bacula-Web GUI (graphical user interface) é em sua maior parte escrita em PHP com isso é compativel com o seu SO favorito como Red Hat, Centos, Fedora, O Ubuntu, Debian, Gentoo, FreeBSD, etc.

Algumas telas de exemplo do Bacula-web.

DashBoard

Relatório de Job

Relatório de Cliente

Relatório de Jobs

Relatório de logs

job-logs-report.jpg

Relatório de pool e volumes

pools-and-volumes-report.jpg

Página de teste

test-page.jpg

Aqui vamos efetuar a instalação dessa ferramenta utilizando o banco de dados PostgreSQL.

O que vamos utilizar:

  • CentOS 6: Servidor Bacula
  • IP: 192.168.1.200
  • Banco de dados: bacula
  • Usuário do banco: bacula
  • Host: localhost
  • Senha do banco Bacula: YfDgtzJ2gxbCainCXzAstCinyUL1JeFncKI

Vamos fazer a instalaçao do servidor web e as dependências para o Bacula-web

yum install httpd php php-pgsql php-gd -y

Agora precisamos inserir o apache na incialização do sistema

chkconfig --add httpd
chkconfig httpd on

Agora vamos criar um diretório para armazenar o bacula-web

mkdir /var/www/html/bacula-web

Agora vamos acessar o diretório

cd /var/www/html/bacula-web

Agora vamos obter o bacula-web

wget http://wiki.douglasqsantos.com.br/Downloads/bacula/bacula-web-latest.tgz

Agora vamos desempacotar o bacula-web

tar -xvf bacula-web-latest.tgz

Agora vamos ajustar as permissões do bacula-web

chown -R apache:apache /var/www/html/bacula-web

Agora vamos remover o pacote do bacula-web

rm -rf bacula-web-latest.tgz

Agora vamos criar o arquivo de conexão com o banco de dados

vim /var/www/html/bacula-web/application/config/config.php
<?php

// Show inactive clients (false by default)
$config['show_inactive_clients'] = true;

// Hide empty pools (displayed by default)
$config['hide_empty_pools'] = false;

// Jobs per page (Jobs report page)
$config['jobs_per_page'] = 25;

// Translations
$config['language'] = 'en_US';

// en_US -> English - maintened by Davide Franco (bacula-dev@dflc.ch)
// es_ES -> Spanish - Mantained by Juan Luis Franc�s Jim�nez
// it_IT -> Italian - Mantained by Gian Domenico Messina (gianni.messina AT c-ict.it)
// fr_FR -> French - Mantained by Morgan LEFIEUX (comete AT daknet.org)
// de_DE -> German - Mantained by Florian Heigl
// sv_SV -> Swedish - Maintened by Daniel Nylander (po@danielnylander.se)
// pt_BR -> Portuguese Brazil - Last updated by J. Ritter (condector@gmail.com)
// nl_NL -> Dutch - last updated by Dion van Adrichem

// MySQL bacula catalog
$config[0]['label'] = 'Prod Server';
$config[0]['host'] = 'localhost';
$config[0]['login'] = 'bacula';
$config[0]['password'] = 'YfDgtzJ2gxbCainCXzAstCinyUL1JeFncKI';
$config[0]['db_name'] = 'bacula';
$config[0]['db_type'] = 'pgsql';
$config[0]['db_port'] = '5432';

?>

Agora vamos criar o virtualhost para o bacula-web

vim /etc/httpd/conf.d/bacula-web.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName bacula-web.douglasqsantos.com.br
    DocumentRoot /var/www/html/bacula-web
    <Directory />
      Options +FollowSymLinks
      AllowOverride All
    </Directory>
    <Directory /var/www/html/bacula-web>
      Options -Indexes +FollowSymLinks +MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
      AuthUserFile /etc/httpd/access/bacula-htpasswd
      AuthName "Bacula"
      AuthType Basic
      require valid-user
    </Directory>

    ErrorLog /var/log/httpd/bacula-web.douglasqsantos.com.br-error.log
    LogLevel warn
    CustomLog /var/log/httpd/bacula-web.douglasqsantos.com.br-access.log combined
</VirtualHost>

Como o bacula-web não tem uma tela de login vamos criar um usuário e senha para autenticar via htaccess

Vamos criar o diretório para armazenar o usuário e senha

mkdir /etc/httpd/access/

Agora vamos criar o arquivo que vai armazenar o usuário e senha

htpasswd -cdb /etc/httpd/access/bacula-htpasswd bacula senha134*

Agora vamos reiniciar o apache

/etc/init.d/httpd restart

Agora já podemos acessar o bacula-web em http://192.168.1.200 ou em http://bacula-web.douglasqsantos.com.br se você configurou o dns.

Vai ser solicitado um usuário:bacula e a senha: senha134*

Referências