Instalação do Webacula com PostgreSQL no Debian Wheezy
O Webacula é uma interface web para gerenciamento do bacula. Na minha opinião uma das melhores para tal finalidade.
Recursos:
- ACLs para Bacula e Webacula implementadas. As ACLs são armazenadas no banco de dados bacula nas tableas de uso do Webacula.
- Suporte completo aos seguinte banco de dados: MySQL, PostgreSQL e Sqlite.
- Rodar jobs
- Restaurar todos os arquivos ou arquivos selecionados de um jobid
- Restaurar o backup mais recente para um cliente
- Restaurar backup para um cliente antes de um período específico.
- Visualização de uma linha do tempo para os Jobs
- Montar e desmonstar Storeages
- Visualização quais jobs foram executados com erros.
- Visualização da condição dos Volumes
- Visualização dos jobs agendados para as próximas 24 horas.
- Visualização de todos os jobs que estão rodando.
- Visualização dos jobs que foram executados nas últimas 24 horas.
- Pesquisa de jobs por diversas condições
- Interface (Ajax) para Bacula Console
- Informações detalhadas sobre Pools, Volumes, Storages e Clientes.
- Logbook. Logbook - É um relatório eletronico simples dos backups. Registros no logbook são inseridos, modificacos e deletados manualmente pelo usuário. Registros podem contem links (geralmente links web nos quais temos a possibilidade de clicar) para abrir jobs do Bacula ou links para outros registros do logbook.
- RSS feed
- Suporte multi-idiomas - padrão arquivos gettext (*.mo). Idiomas suportados: Inglês, English, Tcheco, Francês, Alemão, Italiano, Português Brasilieiro, Russo e Espanhol.
- Para web designers: Agora é muito facil criar novos skins.
Alguns telas.
Tela de Login
Página principal.
Restauração de Job - part 1
Restauração de Job - part 2
Linha do tempo.
Logbook
Painel de Administração
Administração de Usuários.
Instalação e configuração do Webacula
Vamos a instalação das dependências para o Webacula
aptitude install php5 php5-mcrypt php5-gd php5-pgsql php5-cli apache2 sudo -y
Agora vamos criar um diretório para armazenar o webacula
mkdir /var/www/webacula
Vamos acessar o diretório do webacula
cd /var/www/webacula
Agora vamos obter o código fonte, favor usar o código que eu estou especificando pois ja inseri o zend e fiz alguns ajustes nos fontes.
wget -c http://wiki.douglasqsantos.com.br/Downloads/bacula/webacula-5.5.1.tar.gz
Agora vamos extrair os fontes
tar -xvf webacula-5.5.1.tar.gz
Agora vamos mover o conteúdo para o diretório corrente.
mv webacula-5.5.1/* .
Agora vamos remover o diretório que nao precisamos mais.
rm -rf webacula-5.5.1
Agora vamos ajustar as permissões do diretório do bacula e de alguns arquivos.
chmod 770 /etc/bacula chown root:bacula /sbin/bconsole chmod u=rwx,g=rx,o= /sbin/bconsole chown root:bacula /etc/bacula/bconsole.conf chmod u=rw,g=r,o= /etc/bacula/bconsole.conf
Agora vamos inserir o apache no grupo do bacula
usermod -aG bacula www-data
Agora vamos ajustar o sudo para o Webacula
echo "www-data ALL=NOPASSWD: /sbin/bconsole" >> /etc/sudoers echo "www-data ALL=NOPASSWD: /sbin/bacula-dir" >> /etc/sudoers
Agora já podemos testar o acesso do apache ao bconsole utilizando sudo
su -l www-data -s /bin/sh -c "/usr/bin/sudo /sbin/bconsole -n -c /etc/bacula/bconsole.conf" Connecting to Director 127.0.0.1:9101 1000 OK: 1 bacula-dir Version: 7.0.5 (28 July 2014) Enter a period to cancel a command. *quit
Agora precisamos ajustar a configuração do php
vim /etc/php5/apache2/php.ini [...] max_execution_time = 3600 [...] date.timezone = "America/Sao_Paulo"
Agora vamos ajustar a configuração do Webacula para conectar no banco de dados.
vim /var/www/webacula/application/config.ini [...] db.adapter = PDO_PGSQL db.config.host = localhost db.config.username = usuario_do_banco_de_dados_bacula db.config.password = "SENHA_DO_BACULA" db.config.dbname = banco_de_dados_do_bacula [...] def.timezone = "America/Sao_Paulo" [...] bacula.sudo = "/usr/bin/sudo" bacula.bconsole = "/sbin/bconsole" bacula.bconsolecmd = "-n -c /etc/bacula/bconsole.conf" [...]
Agora precisamos ajustar o arquivo que vai conter as variáveis para a importação das tabelas para o webacula.
vim /var/www/webacula/install/db.conf # See also application/config.ini # bacula settings db_name="banco_de_dados_do_bacula" db_user="usuario_do_banco_de_dados_bacula" # CHANGE_THIS db_pwd="senha_do_bacula" # Webacula web interface settings # # Built-in superuser login is 'root' # # CHANGE_THIS webacula_root_pwd="senha_para_a_interface_web"
Agora vamos importar as novas tabelas para o banco de dados.
su -l bacula -s /bin/sh -c "cd /var/www/webacula/install/PostgreSql/ && ./10_make_tables.sh" su -l bacula -s /bin/sh -c "cd /var/www/webacula/install/PostgreSql/ && ./20_acl_make_tables.sh"
Agora vamos criar um virtualhost para o webacula
vim /etc/apache2/sites-available/webacula <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName webacula.douglasqsantos.com.br DocumentRoot /var/www/webacula/html <Directory /var/www/webacula/html> Options -Indexes +FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> <Directory /var/www/webacula/docs> Order deny,allow Deny from all </Directory> <Directory /var/www/webacula/application> Order deny,allow Deny from all </Directory> <Directory /var/www/webacula/languages> Order deny,allow Deny from all </Directory> <Directory /var/www/webacula/library> Order deny,allow Deny from all </Directory> <Directory /var/www/webacula/install> Order deny,allow Deny from all </Directory> <Directory /var/www/webacula/tests> Order deny,allow Deny from all </Directory> <Directory /var/www/webacula/data> Order deny,allow Deny from all </Directory> ErrorLog /var/log/apache2/webacula.douglasqsantos.com.br-error.log LogLevel warn CustomLog /var/log/apache2/webacula.douglasqsantos.com.br-access.log combined </VirtualHost>
Agora vamos ajustar o .htaccess para não termos problemas
vim /var/www/webacula/html/.htaccess SetEnv APPLICATION_ENV production RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] php_flag magic_quotes_gpc off php_flag register_globals off
Agora vamos desabilitar o site default do apache
a2dissite 000-default
Agora vamos habilitar o nosso site para o webacula.
a2ensite webacula
Agora vamos habilitar o módulo rewrite do apache
a2enmod rewrite
Agora vamos ajustar as permissões do diretório do webacula
chown -R www-data:www-data /var/www/webacula
Agora vamos reiniciar o apache
/etc/init.d/apache2 restart
Agora é so acessar http://webacula.douglasqsantos.com.br ou http://ip_do_servidor e informar o usuário: root e a senha que foi definida em: webacula_root_pwd=“senha_para_a_interface_web”
Referências
- /var/www/webacula/docs/html