Bacula
Jump to navigation
Jump to search
"It comes by night and sucks the vital essence from your computers." -Bacula Project
How perfect for Transylvania... muhahahaha!
Bacula is an enterprise-class, open source, network backup solution. While its configuration and use may seem daunting to understand at first, its structure is very logical and easy to use and maintain once you understand the basics. Bacula is supported by a team of developers that also offer commercial support for the product which is in its third version.
Basics
Bacula consists of 3 basic daemons and thus 3 config files:
- bacula-dir.conf - The director config.. the BIG config.. jobs, clients, schedules, etc (server only)
- bacula-sd.conf - The storage daemon config.. tape and/or disk drive config (server only)
- bacula-fd.conf - The file daemon config.. allows the director to backup the system (server + clients)
TBC..
Server Installation
- This documentation is from the install of version 3.0.2 from sourcecode onto Kay on Aug 21, 2009 by Chris Moore.
mkdir /usr/local/bacula-src # Where we will keep and build the source
mkdir /usr/local/bacula # The installation directory (binaries, configs, etc)
cd /usr/local/bacula-src
wget http://downloads.sourceforge.net/project/bacula/bacula/3.0.2/bacula-3.0.2.tar.bz2
wget http://downloads.sourceforge.net/project/bacula/bacula/3.0.2/bacula-gui-3.0.2.tar.bz2
wget http://downloads.sourceforge.net/project/bacula/bacula/3.0.2/bacula-docs-3.0.2.tar.bz2
wget http://downloads.sourceforge.net/project/bacula/bacula/3.0.2/bacula-rescue-3.0.2.tar.bz2
tar -xvzf bacula-3.0.2.tar.bz2
tar -xvzf bacula-gui-3.0.2.tar.bz2
tar -xvjf bacula-docs-3.0.2.tar.bz2
tar -xvzf bacula-rescue-3.0.2.tar.bz2
cd ./bacula-3.0.2
yum install php httpd phpmyadmin php-mcrypt php-mbstring mysql mysql-devel mysql-server qwtplot3d qwtplot3d-devel zlib-devel gccc gcc-c++ python-devel readline-devel
groupadd bacula -g 811
useradd bacula -u 811 -g 811 -d /usr/local/bacula -s /sbin/nologin
./configure --sbindir=/usr/local/bacula/bin \
--sysconfdir=/usr/local/bacula \
--enable-smartalloc \
--with-qwt=/usr/lib/libqwt.so \
--enable-batch-insert \
--enable-tray-monitor \
--enable-largefile \
--enable-readline \
--with-mysql \
--with-openssl \
--with-python \
--with-working-dir=/usr/local/bacula \
--with-dir-user=bacula \
--with-dir-group=bacula \
--with-sd-user=bacula \
--with-sd-group=bacula \
--with-fd-user=root \
--with-fd-group=root
Output:
Configuration on Sat Aug 22 04:38:27 EDT 2009:
Host: x86_64-unknown-linux-gnu -- redhat
Bacula version: Bacula 3.0.2 (18 July 2009)
Source code location: .
Install binaries: /usr/local/bacula/bin
Install libraries: /usr/lib
Install config files: /usr/local/bacula
Scripts directory: /usr/local/bacula
Archive directory: /tmp
Working directory: /usr/local/bacula
PID directory: /var/run
Subsys directory: /var/lock/subsys
Man directory: ${datarootdir}/man
Data directory: /usr/share
Plugin directory: /usr/lib
C Compiler: gcc 4.1.2
C++ Compiler: /usr/bin/g++ 4.1.2
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/lib64/mysql -lmysqlclient_r -lz
Database name: bacula
Database user: bacula
Job Output Email: root@localhost
Traceback Email: root@localhost
SMTP Host Address: localhost
Director Port: 9101
File daemon Port: 9102
Storage daemon Port: 9103
Director User: bacula
Director Group: bacula
Storage Daemon User: bacula
Storage DaemonGroup: bacula
File Daemon User: root
File Daemon Group: root
SQL binaries Directory /usr/bin
Large file support: yes
Bacula conio support: yes -ltermcap
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: yes
client-only: no
build-dird: yes
build-stored: yes
ACL support: no
XATTR support: yes
Python support: yes -L/usr/lib64/python2.4/config -lpython2.4 -lutil -lrt
Batch insert enabled: yes
make all
make install
chown -R bacula.bacula /usr/local/bacula
== Install Init Scripts ==
cd /usr/local/bacula-src/bacula-3.0.2/platforms/redhat
chmod +x bacula-dir
chmod +x bacula-sd
chmod +x bacula-fd
cp bacula-dir /etc/init.d
cp bacula-sd /etc/init.d
cp bacula-fd /etc/init.d
chkconfig --add bacula-dir
chkconfig --add bacula-sd
chkconfig --add bacula-fd
chkconfig mysqld on
Configure Firewall, Apache, phpmyadmin
- Firewall
- Run system-config-securitylevel-tui
- Select "Customize" button
- Enable "WWW (HTTP)" and "Secure WWW (HTTPS)"
- Add "tcp:9101,udp:9101" to "Other ports"
- Select "OK" twice to exit
- Apache
- edit /etc/httpd/conf/httpd.conf
- set "ServerName kay.cs.transy.edu"
- edit /etc/httpd/conf/httpd.conf
- phpmyadmin
- edit /usr/share/phpmyadmin/config.inc.php
- Fill in random characters for 'blowfish_secret'
- edit /etc/httpd/conf.d/phpmyadmin.conf
- add "Allow from 10." below "Allow from 127.0.0.1"
- edit /usr/share/phpmyadmin/config.inc.php
- Restart Apache
- /etc/init.d/httpd restart
Configuring MySQL Database
- /etc/init.d/mysqld start
- Follow on-screen instructions to set root password for MySQL
- Test logging into database: mysql -u root --password (quit to exit)
- Browse to kay.cs.transy.edu/phpmyadmin
- Login as 'root'
- Click 'Priviledges'
- Click 'Add new user'
- Username: bacula
- Host: localhost
- Password: bacula
- Select "Create database with same name and grant all privileges"
- Click 'Go'
Web GUI Install (bweb)
- Bweb is a Perl based front-end to Bacula. Great for reporting and checking logs, though I wouldn't recommend using it to interface with the Bacula directore - use bconsole.
cd /usr/local/bacula-src/bacula-gui-3.0.2