:::: MENU ::::

quarta-feira, 15 de junho de 2011

Nesse post, será mostrado como instalar o Bacula utilizando o banco de dados MySQL

Obtendo o bacula

No endereço http://www.bacula.org/en/?page=downloads vocês encontrarão várias versões do Bacula para download: tarballs, rpms, debpkgs, win32_64. Nesse tutorial, vamos fazer no método Warrior's Mode: Compilando \o/

wget http://ufpr.dl.sourceforge.net/project/bacula/bacula/5.0.3/bacula-5.0.3.tar.gz
tar xvf bacula-5.0.3.tar.gz
cd bacula-5.0.3
 

Compilando

Para a compilação, primeiro devemos satisfazer as dependências do Bacula:
zypper in gcc gcc-c++ libopenssl-devel mysql-community-server libmysqld-devel make
Se quiserem instalar com o BAT (Bacula Administration Tool), adicionem o libqt4-devel.


Caso você queira compilar para um outro sistema operacional, procure por pacotes similares. O que no openSUSE costumamos usar o -devel como sufixo na nomenclatura, em algumas distros utiliza-se o lib* como prefixo.

Enfim, continuando...

Com as dependências instaladas, utilizaremos alguns parâmetros na compilação. Eu costumo colocar-los em um arquivo .sh, acho que fica bem melhor do que fazer aquele catatau de parâmetros em uma linha. Fica uma merda pra gerenciar, porém quando colocamos em uma arquivo, ai a coisa muda! Um exemplo:


#!/bin/bash
# Parametros para compilacao do Bacula
# 14-06-2011

CFLAGS="-g -O2 -Wall" \
./configure \
--enable-smartalloc \
--with-mysql \
--with-dump-email=meu@email.com \
--with-job-email=me u@email.com \
--with-smtp-host=localhost \
--with-openssl \
--with-fd-password=VouNao \
--with-sd-password=QueroNao \
--with-dir-password=PossoNao

O que estamos definindo aqui:
--with-mysql = Usaremos o MySQL como database. O pacote libmysqld-devel é pré-requisito;
--with-openssl = Permite que seja utilizado TLS na comunicação entre o cliente-servidor
--with-fd-password = Senha do File daemon
--with-sd-password = Senha do Storage Daemon
--with-dir-password = Senha do Director Daemon
Eu estou definindo a senha logo aqui porque não gosto das senhas geradas automaticamente. Fico completamente azuado com aquela porrada de caracteres...

Se o seu Bacula for instalado em uma máquina com interface gráfica, instale o pacote devel do QT(libqt4-devel) e adicione o parâmetro --with-bat ao configure. Como isso geralmente não é trivial, não usaremos.
Depois da execução do ./configure, teremos a resposta do bacula:

Configuration on Tue Jun 14 11:44:49 BRT 2011:


Host: i686-pc-linux-gnu -- suse 11.4
Bacula version: Bacula 5.0.3 (04 August 2010)
Source code location: .
Install binaries: /sbin
Install libraries: /usr/lib
Install config files: /etc/bacula
Scripts directory: /etc/bacula
Archive directory: /tmp
Working directory: /var/bacula/working
PID directory: /var/run
Subsys directory: /var/lock/subsys
Man directory: ${datarootdir}/man
Data directory: /usr/share
Plugin directory: /usr/lib
C Compiler: gcc Linux)
C++ Compiler: /usr/bin/g++ Linux)
Compiler flags: -g -O2 -Wall -fno-strict-aliasing -fno-exceptions -fno-rtti
Linker flags:
Libraries: -lpthread -ldl
Statically Linked Tools: no
Statically Linked FD: no
Statically Linked SD: no
Statically Linked DIR: no
Statically Linked CONS: no
Database type: MySQL
Database port:
Database lib: -L/usr/lib -lmysqlclient_r -lz
Database name: bacula
Database user: bacula


Job Output Email: meu@email.com
Traceback Email: meu@email.com
SMTP Host Address: localhost


Director Port: 9101
File daemon Port: 9102
Storage daemon Port: 9103


Director User:
Director Group:
Storage Daemon User:
Storage DaemonGroup:
File Daemon User:
File Daemon Group:


SQL binaries Directory /usr/bin


Large file support: yes
Bacula conio support: no
readline support: no
TCP Wrappers support: no
TLS support: yes
Encryption support: yes
ZLIB support: yes
enable-smartalloc: yes
enable-lockmgr: no
bat support: no
enable-gnome: no
enable-bwx-console: no
enable-tray-monitor: no
client-only: no
build-dird: yes
build-stored: yes
Plugin support: yes
AFS support: no
ACL support: no
XATTR support: yes
Python support: no
Batch insert enabled: no

Verifique e veja se é isso mesmo que você quer. Caso algo esteja incorreto, altere o parâmetro e execute novamente o ./configure. Depois de tudo estar nos trinks, é hora do make && make install :D

make && make install
(Compila compila Compila compila Compila compila Compila compila...)

Enquanto ele compila, você pode ir assistir um videozin e talz... Ah, falando nisso, pra quem curte Dragon Ball Z, o pessoal do Gastação TV estão fazendo a tradução do DBZ Abridged! Saca o primeiro episódio:





SHHHOOOOWWWWWW!!!

Enfim, voltando :D

Após o make install, todos os arquivos estarão nos seus devidos lugares e prontos para rodarmos os scripts para criação de base de dados, tabelas e permissões na tabela. Então, já que vamos utilizar o banco de dados, que tal inciarmos o MySQL?
service mysql start

E seria bom também adicionar-lo na inicialização:
chkconfig mysql on
Após o banco subir, vamos aos scripts. São 3:
/etc/bacula/create_bacula_database
/etc/bacula/make_bacula_tables
/etc/bacula/grant_bacula_privileges

Após rodar os scripts, inicie o Bacula
bacula start

E  faça um simples teste:
bconsole

Caso apareça algo do tipo

Connecting to Director linux-sn99:9101
1000 OK: linux-sn99-dir Version: 5.0.3 (04 August 2010)
Enter a period to cancel a command.
*

Congratulations!!! Seu Bacula está pronto para ser configurado!!!

IF NO....
Caso ele não conecte e fique apenas tentando conexão, é porque sua configuração com o MySQL ainda está pendente. Verifique o arquivo /etc/bacula/bacula-dir.conf, procure pela linha do Catalog.

Se você definiu uma senha para o usuário do bacula, será necessário informar aqui também.:

Catalog {
Name = MyCatalog
dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport = 3306
dbname = "bacula"; dbuser = "bacula"; dbpassword = ""
}

Sempre é bom verificar também o arquivo de log. Ele fica integrado ao /var/log/messages
Não esqueça de ver as portas. O comando netstat -napt poderá te ajudar.

Até a prox!

0 comentários:

Postar um comentário

Só não vale xingar a mãe ou puxar cabelo nos comentários =)

Posts populares