Table of Contents
Installing Bacula 5.0.x on Ubuntu Server 9.10
As Ubuntu is shipping with Bacula 2.4 and there is no more recent version available in the backports repository, using bacula 5.0.x on Ubuntu 9.10 means compiling it from scratch - this is meant to be a short copy-n-paste instruction on how to do this.
Preparing MySQL
aptitude install mysql-server mysql-client # choose secure password
edit ~/.my.cnf
to contain the following lines:
[client] user="root" password="<enter your literal password here>"
Preparing the System
create a system (-r
) account:
useradd -r -m -c "Bacula System Account" -s /bin/noshell bacula addgroup bacula tape
(using /bin/noshell is a security measure. If you ever have to become bacula, use the command
su - bacula -s /bin/bash
)
As we are going to compile bacula with TCP Wrapper support, make sure it can be accessed locally by adding the following linew to /etc/hosts.allow
:
ALL: LOCAL ALL: 127.0.0.1 ALL: <ip number of system>
Install the tool(s):
aptitude install mtx
Installing bacula
Install packages (needed on a fresh installed server)
aptitude install gcc g++ libqt4-dev libreadline-dev libmysqlclient-dev \ libwrap0-dev python-dev
Download files:
mkdir download cd download wget -c "https://sourceforge.net/projects/bacula/files/bacula/5.0.1/bacula-5.0.1.tar.gz/download" wget -c "https://sourceforge.net/projects/bacula/files/bacula/5.0.1/bacula-docs-5.0.1.tar.bz2/download" wget -c "https://sourceforge.net/projects/bacula/files/bacula/5.0.1/bacula-gui-5.0.1.tar.gz/download" wget -c "https://sourceforge.net/projects/bacula/files/bacula/5.0.1/bacula-regress-5.0.1.tar.gz/download" cd ..
Compile things:
mkdir src cd src tar -xvkpzf ../download/bacula-5.0.1.tar.gz cd bacula-5.0.1 ./configure --prefix=/opt/bacula-5.0.1 \ --sbindir=/opt/bacula-5.0.1/bin \ --sysconfdir=/opt/bacula-5.0.1/etc \ --mandir=/opt/bacula-5.0.1/man \ --docdir=/opt/bacula-5.0.1/html \ --htmldir=/opt/bacula-5.0.1/html \ --with-working-dir=/opt/bacula-5.0.1/working \ --with-pid-dir=/opt/bacula-5.0.1/working \ --with-subsys-dir=/opt/bacula-5.0.1/working \ --with-scriptdir=/opt/bacula-5.0.1/scripts \ --with-plugindir=/opt/bacula-5.0.1/plugins \ --libdir=/opt/bacula-5.0.1/lib \ --enable-smartalloc \ --enable-tray-monitor \ --enable-bat \ --with-mysql \ --with-smtp-host=localhost \ --with-baseport=9101 \ --with-tcp-wrappers \ --with-python \ --enable-lockmgr \ --disable-conio \ --with-readline=/usr/include/readline make
Du as root:
mkdir /opt/bacula-5.0.1 cd /opt ln -s bacula-5.0.1 bacula cd <wherever you compiled it>/src/bacula-5.0.1 make install cd /opt/bacula chgrp bacula etc/*.conf chown bacula:bacula working
Continue as user (using ~/.my.cnf
as described above)
Setup MySQL for bacula:
cd /opt/bacula/scripts /bin/sh ./grant_mysql_privileges mysql -u bacula -p ''
Hit Enter at the password prompt (initial password is empty, which is not the same as no password. Enter at the SQL prompt:
set password = password('<enter new literal bacula mysql password here') ; quit
remove MySQL history as it contains the unencrypted password:
rm -v ~/.mysql_history
continue with setting up MySQL for bacula:
/bin/sh ./create_mysql_database /bin/sh ./make_mysql_tables
Fix file permissions as root:
(this is needed, as we do not want to run the storage deamon and the director as root)
cd /opt/bacula/scripts chmod a+x mtx-changer dvd-handler disk-changer startmysql stopmysql \ bacula-ctl-dir bacula-ctl-sd bacula-ctl-fd bconsole make_catalog_backup.pl delete_catalog_backup cd /opt/bacula/bin chmod a+x *
Reinit database
This will destroy all information about previous backups!!! It's only noted here to get rid of data produced by testruns!
cd /opt/bacula/scripts /bin/sh ./drop_mysql_tables /bin/sh ./make_mysql_tables
You might want to “clean” your tape as well:
(stop Bacula or unmount the drive) mt -f /dev/nst0 rewind mt -f /dev/nst0 weof
(These two hints are from the bacula manual)
I recomment to clean the working directory as well:
rm -rv /opt/bacula/working/*
Build client only
./configure --prefix=/opt/bacula-5.0.1-client \ --sbindir=/opt/bacula-5.0.1-client/bin \ --sysconfdir=/opt/bacula-5.0.1-client/etc \ --mandir=/opt/bacula-5.0.1-client/man \ --docdir=/opt/bacula-5.0.1-client/html \ --htmldir=/opt/bacula-5.0.1-client/html \ --with-working-dir=/opt/bacula-5.0.1-client/working \ --with-pid-dir=/opt/bacula-5.0.1-client/working \ --with-subsys-dir=/opt/bacula-5.0.1-client/working \ --with-scriptdir=/opt/bacula-5.0.1-client/scripts \ --with-plugindir=/opt/bacula-5.0.1-client/plugins \ --libdir=/opt/bacula-5.0.1-client/lib \ --enable-smartalloc \ --disable-tray-monitor \ --disable-bat \ --enable-client-only \ --with-smtp-host=localhost \ --with-baseport=9101 \ --with-tcp-wrappers \ --enable-lockmgr \ --disable-conio
NB: –enable-static-fd
didn't work for me
Further Reading
There is a lot of documentation on the projects web page. Especcially useful for configuration is the Directors index.