Instalação e configuração do Bacula com interface web (Bweb/Brestore) Instalação do Bacula no Ubuntu/Debian Informações gerais: • Ubuntu Server 10.04 • MySQL Server 5.0 • Apache2 Instalação do Bacula A instalação do Bacula através do gerenciador de pacotes é bastante simples, basta executar o comando abaixo que serão instaladas todas as dependências, inclusive o MySQL, que é o banco de dados padrão do programa. Também há suporte ao banco de dados Postgres, porém devem ser especificados os pacotes, mas não será abordado nesse tutorial. # apt-get install bacula Serão instalados os seguintes pacotes: bacula-client bacula-common bacula-common-mysql bacula-console bacula-director-common bacula-director-mysql bacula-fd bacula-sd bacula-sd-mysql bacula-server dbconfigcommon Será instalado o bacula director, file daemon e storaged daemon. Para a instalação parcial deverão ser instalados o bacula-director-common, bacula-fd e bacula-sd respectivamente. Configuração do Bacula O Bacula é um sistema distribuído, sendo formado por 3 daemons: director, storage daemon e file daemon. Cada daemon "executa" independentemente, podendo estar localizado em máquinas separadas. O file daemon deve estar instalado em todas as máquinas clientes. No ambiente analisado, todos os daemons estão instalados na mesma máquina. Bacula Director (bacula-dir.conf): Gerenciador; Núcleo do programa; é responsável por supervisionar todas as operações de backup, restauração, controle e verificação de arquivos. Bacula Storage: Responsável pelo armazenamento, leitura e escrita em fita, disco ou outros dispositivos. Deve ser instalado onde os arquivos serão armazenados, podendo ser instalado em mais de uma máquina. Bacula File Daemon: Este é o cliente do Bacula. Deve ser instalado em todas as máquinas onde serão realizados os backups. Configuração do director Altere as configurações de acordo com a necessidade/ambiente. Director { #definições do gerenciador/director Name = ubuntuu-dir #nome do gerenciador/director DIRport = 9101 #porta de comunicação do director QueryFile = "/etc/bacula/scripts/query.sql" WorkingDirectory = "/var/lib/bacula" PidDirectory = "/var/run/bacula" Maximum Concurrent Jobs = 10 #máximo de conexões simultâneas Password = "yveAet993vzsWug3KoZUKjVbdZy0nrSqIqQCFH80rIVS" #senha cliente terminal/console Messages = Daemon #tipo de mensagens a serem geradas no log } JobDefs { #definições de padrão de tarefa 1 246 #ip do cliente (File Daemon) FDPort = 9102 #porta de comunicação com o cliente Catalog = MyCatalog #catálogo de arquivos Password = "zWfAKqdbZb1PjYL9Ud-HForFnoUzkJBSM" #senha cliente (File Daemon) File Retention = 30 days #retenção dos arquivos (30 dias) Job Retention = 6 months #retenção da tarefa (6 meses) AutoPrune = yes #limpeza/supressão automática do catálogo após expirado o tempo de retenção (não afeta os dados do volume) } 2 .Name = "DefaultJob"#nome do padrão Type = Backup #tipo de tarefa (backup/restore) Level = Incremental #tipo de backup (incremental/diferencial/full) Client = ubuntuu-fd #cliente FileSet = "Full Set" #nome do conjunto de arquivos Schedule = "Diario" #tipo de agendamento Storage = File #tipo de armazenamento (file/tape) Messages = Standard #padrão de mensagens geradas (log) Pool = File #tipo de pool utilizado Priority = 10 #prioridade Write Bootstrap = "/var/lib/bacula/%c.254.bsr" } Job { #definição de tarefa Name = "BackupClient1" #nome da tarefa JobDefs = "DefaultJob" #padrão de tarefa } Job { #definição da tarefa Name = "RestoreFiles" #nome da tarefa Type = Restore #tipo de tarefa (backup/restore) Client=ubuntuu-fd #cliente FileSet="Full Set" #nome do conjunto de arquivos Storage = File #tipo de armazenamento (file/tape) Pool = Default #tipo de pool utilizado Messages = Standard #padrão de mensagens geradas (log) Where = /mnt/bacula-restores #onde será restaurado o backup } FileSet { #conjunto de arquivos e diretórios Name = "Home Set" #nome do conjunto Include { Options { signature = MD5 #hash para verificação de integridade } File = /home #arquivos selecionados } Exclude { File = /home/backup #arquivos excluídos } } Schedule { #agendamento Name = "Diario" #nome do agendamento Run = Full sun-sat at 23:10 #definição do agendamento (Full de domingo (sunday) a sabado (saturday) as 23:10) } Client { #definições do cliente Name = ubuntuu-fd #nome do cliente Address = 10.113. conf) Password = "zWfAKqdbZb1PjYL9Ud-HForFnoUzkJBSM" #senha (mesmo do bacula-dir.246 #ip do dispositivo de armazenamento (Storaged Daemon) SDPort = 9103 #porta de comunicação com a storaged Password = "jKNZOR8Kl8nSuHFWi6H9txhEyTqODE3gW" #senha dispositivo (Storaged Daemon) Device = FileStorage #dispositivo (Storaged Daemon) Media Type = File #tipo de armazenamento } Pool { #definição do tipo de volume/partição a ser montado Name = Default #nome do volume Pool Type = Backup #tipo de pool Backup/Archive/Cloned/Migration/Copy/Save (atualmente apenas backup implementado) Recycle = yes #bacula automaticamente recicla os volumes (caso não possa ser adicionado mais volumes será rescrito sobre os expirados) AutoPrune = yes #limpeza/supressão automática do catálogo após expirado o tempo de retenção (não afeta os dados do volume) Volume Retention = 365 days #tempo de retenção de 365 dias } Console { Name = ubuntuu-mon Password = "8UZ_p8sbi38XUmDGT5I3tt4egyM7uTpDx" CommandACL = status. . no caso todos(all).conf) } Messages { #definição do tipo de mensagem a ser logada Name = Standard #nome do padrão director = ubuntuu-dir = all. exceto saída (skipped) e restauração (restore) } Configuração do dispositivo de armazenamento (storaged daemon) As configurações devem ser alteradas de acordo com a necessidade/ambiente. !restored #parametros a serem logados.status } Configuração do cliente (file daemon) Altere as configurações de acordo com a necessidade/ambiente. Storage { #definições storaged Name = ubuntuu-sd #nome SDPort = 9103 #porta de comunicação com o director WorkingDirectory = "/var/lib/bacula" Pid Directory = "/var/run/bacula" Maximum Concurrent Jobs = 20 #maximo de tarefas simultâneas 3 .conf) FDport = 9102 #porta de comunicacao com o director WorkingDirectory = /var/lib/bacula Pid Directory = /var/run/bacula Maximum Concurrent Jobs = 20 #maximo de tarefas simultâneas } Director { #dados para comunicação com o director Name = ubuntuu-dir #nome (mesmo do bacula-dir.Storage { #definição do dispositivo de armazenamento Name = File #nome do dispositivo Address = 10. !skipped. FileDaemon { #definições file daemon Name = ubuntuu-fd #nome (mesmo do bacula-dir.113.254. para isso pode ser utilizado o wget: # wget http://sourceforge. através dos comandos: # perl Makefile.2.0. AlwaysOpen = no.0. no caso todos(all) } Após configuração dos daemons.0 #ip da máquina } Director { #definição do director que terá acesso ao "daemon" de armazenamento Name = ubuntuu-dir #nome Password = "jKNZOR8Kl8nSuHFWi6H9txhEyTqODE3gW" #senha } Device { #definições do dispositivo de armazenamento Name = FileStorage #nome (mesmo a ser usado no director) Media Type = File #tipo de media/dispositivo . AutomaticMount = yes.tar.0.2. deve-se desempacotar o mesmo e entrar na pasta da aplicação Bweb: # tar xzvf bacula-gui-5. RemovableMedia = no..gz # cd bacula-gui-5.2/bacula-gui-5.PL # make install Em seguida. #quando o dispositivo abrir.# SDAddress = 0.0. 4 .net/projects/bacula/files/bacula/5. deve-se copiar as bibliotecas Bweb Perl para a o caminho do perl5. lê-lo. Instalação e configuração da interface web (Bweb) Instalar dependências do aplicativo bweb Módulos Perl: # apt-get install libgd-graph-perl libhtml-template-perl libexpect-perl \ libdbd-mysql-perl libdbd-pg-perl libdbi-perl \ libdate-calc-perl libtime-modules-perl Fonte: # apt-get install ttf-dejavu Instalar o Bweb Primeiramente devem ser baixados os arquivos fonte do Bweb.File/Tape Archive Device = /mnt/backup #ponto de montagem do volume LabelMedia = yes. #bacula permitir media sem rótulo/nomeação Random Access = Yes.2/bweb Após descompactado. os mesmos devem ser reinicializados.0.0.tar. } Messages { #definição do tipo de mensagem a ser logada Name = Standard #nome do padrão director = ubuntuu-dir = all #parametros a serem logados. devem ser copiados os arquivos do programa Bweb para a pasta cgi do servidor. # cd .gz/download Após baixar o arquivo. conf'. 'name' => undef. atribuindo em seguida o usuário do servidor web apache como proprietário do mesmo. 'wiki_url' => ''.conf # chown www-data /etc/bacula/bweb.gif.pl /usr/lib/cgi-bin/bweb Agora cria-se o arquivo de configuração através do seguinte comando. Se é utilizado o sudo. no document root do servidor web.conf Em seguida deve ser criada a pasta para os templates da aplicação e copiados os arquivos correspondentes através dos seguintes comandos: # mkdir -p /usr/share/bweb/tpl/en # install -m 644 -o root -g root bweb/lang/en/tpl/*.# mkdir -m 755 /usr/lib/cgi-bin/bweb # install -m 755 -o root -g root bweb/cgi/*. 'display_log_time' => 0. 'default_age' => '7d' }. # echo '$VAR1 = { template_dir => "/usr/share/bweb/tpl" }.html} /var/www/bweb Configurar o Bweb Após instalado a aplicação Bweb.css. 'dbi' => 'DBI:mysql:database=bacula'. 'graph_font' => '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.tpl /usr/share/bweb/tpl/en Para finalizar. 'Bweb::Config' ). 'debug' => 0.{js.ttf'. 'user' => 'bacula'. 'lang' => 'en'.ico. copia-se os elementos gráficos da aplicação dentro da pasta Bweb (que deve ser criada).conf'. 'fv_write_path' => '/var/spool/bweb'.png. deve ser realizada a configuração do arquivo /etc/bacula/bweb. 'email_media' => 'frsl@localhost'. 'config_file' => '/etc/bacula/bweb. 'template_dir' => '/usr/share/bweb/tpl'. 'enable_security_acl' => 0. 'stat_job_table' => 'Job'. 'password' => 'senhamysql'. # mkdir /var/www/bweb # install -m 644 -o root -g root bweb/html/*.: O arquivo de configuração deve ser adaptado de acordo com as configurações do ambiente que está sendo instalada a aplicação.' > /etc/bacula/bweb. Obs. insira os seguintes valores no arquivo /etc/sudoers: www-data ALL = (root) NOPASSWD: /usr/sbin/mtx -f /dev/changer transfer * www-data ALL = (root) NOPASSWD: /usr/sbin/mtx -f /dev/changer status www-data ALL = (root) NOPASSWD: /usr/sbin/mtx -f /dev/changer load * www-data ALL = (root) NOPASSWD: /usr/sbin/mtx -f /dev/changer unload * Acesse a aplicação através do seguinte endereço no navegador web: http://your-server/bweb 5 . 'error' => ''.conf com os seguintes parâmetros: $VAR1 = bless( { 'enable_security' => 0. 'bconsole' => '/usr/bin/bconsole -n -c /etc/bacula/bconsole. # cd /bweb/script # mysql -u root bacula < bweb-mysql. Após a inserção da senha. as tabelas do Bacula serão atualizadas.sencha.3.glade' .pl'.1.0.3. # wget http://www.com/deploy/ext-2.pl" e habilitar a seguinte variável com o valor '1'.pl /usr/bin Configuração do Brestore Edite o arquivo "/usr/lib/cgi-bin/bweb/bresto.0.3. utilize o wget e em seguida descompacte os arquivos dentro da pasta 'ext' do 'document root' do servidor web. Após acessar a pasta.glade /usr/share/brestore # install -m 755 -o root -g root brestore.0. 'bweb' => 'http://localhost/cgi-bin/bweb/bweb.conf'. 'connection_string' => 'DBI:mysql:database=bacula. 'bconsole' => '/usr/local/bin/bconsole -n -c /etc/bacula/bconsole.pl" com as seguintes variáveis my $glade_file = '/usr/share/brestore/brestore.0/ /var/www/bweb/ext Carregar atualizações do MySQL Para que o brestore funcione é necessário a atualização do banco de dados.host=127.sql -p Será solicitada a senha de root para acesso ao banco.zip Descompactar em /var/www/bweb/ext: # unzip -d ext ext-2. my $bresto_enable = 1. Instalação do Brestore Para instalar o Brestore basta acessar a pasta baixada anteriormente para instalar o Bweb no passo 7 e acessar a pasta 'brestore'.0.Obs.sql' para o bd mysql. será apresentada uma tela inicial para que se possa configurar o mesmo através da interface.port=3306'. $parameters = { 'mozilla' => 'mozilla'. Instalação e configuração da interface web (Brestore) Instalar dependências do aplicativo Brestore Módulos Perl: # apt-get install libgtk2-gladexml-perl \ libdbd-mysql-perl \ libdbd-pg-perl \ libexpect-perl \ libwww-perl Módulos Extjs: Para baixar os arquivos do modulo extjs. 'username' => 'bacula'. deve-se instalar a interface glade do brestore na pasta /usr/share/brestore através dos comandos: # cd bacula-gui-5. para isso acesse a pasta 'script' dentro do bweb e carregue o arquivo 'bweb-mysql. 6 .0.zip # mv ext-2. Edite o arquivo "/usr/bin/brestore.: Se o arquivo de configuração não for editado.2/brestore # mkdir -p /usr/share/brestore # install -m 644 -o root -g root brestore. 'bsr_dest' => 'file://var/tmp'. que foram sanados utilizando o IP da máquina. Abaixo há um exemplo listando o status do cliente "desktop-fd" através do comando "status". Acessando via terminal Para acessar o bacula via terminal basta digitar o comando: $ bconsole Para verificar os comandos disponíveis basta digitar a tecla tab duas vezes.0. O IP da máquina utilizada foi 10. 'default_restore_job' => 'restore' }.254.0. inclusive o banco de dados (MySQL) e o servidor web (Apache2).1'. Nos testes houveram alguns problemas na utilização do nome localhost e do IP de loopback '127. Ao instalar em máquinas diferentes.246.'password' => 'xxxx'.html Considerações finais e referências Considerações sobre o exemplo citado: No exemplo citado nesse tutorial. Será exibida a página do Bweb: 7 . Acesse a aplicação através do seguinte endereço no navegador web ou através do Bweb: http://your-server/bweb/bresto. 'use_ok_bkp_only' => 1.113. Acessando o Bweb Para acessar Bacula via interface web basta digitar o endereço http://ip-do-server/bweb no navegador. 'debug' => 0. observar de configurar corretamente as senhas de acesso aos daemons e IPs das máquinas correspondentes. todos os módulos do Bacula foram instalados na mesma máquina. html no navegador ou ir até o menu jobs do Bweb e clicar no link Web Restore. Será exibida a página do Brestore: 8 .Acessando o Brestore Para acessar o módulo de recuperação do Bacula via interface web basta digitar o endereço http://ip-doserver/bweb/bresto. como pode ser observado na figura a abaixo.
Comments
Report "Instalação e configuração do Bacula com interface web"