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.
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>"
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
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 *
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/*
./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
There is a lot of documentation on the projects web page. Especcially useful for configuration is the Directors index.