Bacula is a set of Open Source, computer programs that permit you to manage backup, recovery, and verification of computer data across a network of computers.
Bacularis is a web interface to configure, manage and monitor Bacula backup environment. It is a complete solution for setting up backup jobs, doing restore data, managing tape or disk volumes in local and remote storage, work with backup clients, and doing daily administrative work with backup.
Bacula linux binaries Deb / Rpm can be found on Bacula website. To access these binaries, you will need an access key, which will be provided when you complete a simple registration.
Bacula windows binaries can be found on Bacula website.
You can create client config files automatically. For this you can find some scripts and templates on the repo. You load the files into a directory and start the bash scripts. Run scriptname -h / --help
to see help.
- Download files below in a directory
wget https://raw.githubusercontent.com/johann8/bacularis/master/1_create_new_bacula_client_linux--server_side_template.sh
wget https://raw.githubusercontent.com/johann8/bacularis/master/2_create_new_bacula_client_linux--client_side_template.sh
wget https://raw.githubusercontent.com/johann8/bacularis/master/bacula-dir_template.conf
wget https://raw.githubusercontent.com/johann8/bacularis/master/bacula-fd_template.conf
wget https://raw.githubusercontent.com/johann8/bacularis/master/bconsole_template.conf
- To create configuration for Bacula
Linux
client on server side, you need to pass two parameters to script 1, namelyclient name
andIP address
- To create configuration for Bacula
Linux
client on client side, you need to pass only one parametes to script 2, namelyclient name
- The MD5 Bacula client password is automatically created by the script
- The
bacula-mon
password you can read out from server configuration. After that you can insert the password into the script:2_create_new_bacula_client_linux--client_side_template.sh
. The variable is calledDIRECTOR_CONSOLE_MONITOR_PASSWORD
. You must use single quote marks. Here is an example:
DIRECTOR_CONSOLE_MONITOR_PASSWORD='MySuperPassword'
- An example: login to the server where docker container is running with bacula server. Adjust the path of
bacula-dir
configuration file and execute the commands below
BACULA_SERVER_CONFIG_DIR_DOCKER=/opt/bacularis/data/bacula/config/etc/bacula/bacula-dir.conf
cat ${BACULA_SERVER_CONFIG_DIR_DOCKER} |sed -n '/bacula-mon/,+1p' |grep Password |cut -f 2 -d '"'
vim 2_create_new_bacula_client_linux--client_side_template.sh # And insert "bacula-mon" password
- When everything is ready, run the scripts to create bacula linux client config files. Here is an example:
./1_create_new_bacula_client_linux--server_side_template.sh -n srv01 -ip 192.168.155.5
./2_create_new_bacula_client_linux--client_side_template.sh -n srv01
- The created files can be found in the folder
config_files
. The content of the filebacula-dir_srv01.conf
is added to the configuration filebacula-dir.conf
of thebacula server
cat config_files/bacula-dir_srv01.conf >> /opt/bacularis/data/bacula/config/etc/bacula/bacula-dir.conf
cd /opt/bacularis && docker-compose exec bacularis bash
bconsole
reload
- The created files
bacula-fd_srv01.conf
andbconsole_srv01.conf
must be copied to client by folder/opt/bacula/etc
cd /opt/bacula/etc
# create backup of old files
mv bacula-fd.conf bacula-fd.conf.back
mv bconsole.conf bconsole.conf.back
# rename files
mv bacula-fd_srv01.conf bacula-fd.conf
mv bconsole_srv01.conf bconsole.conf
systemctl restart bacula-fd.service
- Download files below in a directory
wget https://raw.githubusercontent.com/johann8/bacularis/master/3_create_new_bacula_client_windows--server_side_template.sh
wget https://raw.githubusercontent.com/johann8/bacularis/master/bacula-dir_template_windows.conf
- To create configuration for Bacula
Windows
client on server side, you need to pass two parameters to script 3, namelyclient name
andIP address
- The MD5 Bacula client password is automatically created by the script
- When everything is ready, run the scripts to create bacula windows client config files. Here is an example:
./3_create_new_bacula_client_windows--server_side_template.sh -n win-srv01 -ip 192.168.155.8
- The created files can be found in the folder
config_files
. The content of the filebacula-dir_win-srv01.conf
is added to the configuration filebacula-dir.conf
of thebacula server
cat config_files/bacula-dir_win-srv01.conf >> /opt/bacularis/data/bacula/config/etc/bacula/bacula-dir.conf
cd /opt/bacularis && docker-compose exec bacularis bash
bconsole
reload
For the installation of Bacula Windows client you need the name of Bacula Director bacula-dir
, MD5 password of bacula windows client and the ip address of docker host.
- You can read out MD5 bacula client password from created config file
bacula-dir_win-srv01.conf
cat config_files/bacula-dir_win-srv01.conf | sed -n '/Client {/,+4p' | grep -w Password |cut -f 2 -d '"'
As a result comes something like this: [md5]607e60c2c1f4f859679fbe9d742b0c59
- You need the ip address of
docker host
. This ip address is specified asbacula-dir
ip address. You can execute the following command ondocker host
to find out the ip address:
ip addr show $(ip route | awk '/default/ {print $5}') |grep -w inet | awk '/inet/ {print $2}' | cut -d'/' -f1
As a result comes something like this: 192.168.155.15
- Download Bacula windows binaries from Bacula website
- Run bacula installation
- Fill in the data as in the picture
- Finish the installation
- Open the file
C:\Program Files\Bacula\bacula-fd.conf
- Find the section
#
# List Directors who are permitted to contact this File daemon
#
Director {
Name = bacula-dir
Password = "Ck7WxwW8xfew45stslKdXoPGIAk+8QyB07tli92W1XWC" # Director must know this password
- Replace the password with the MD5 password from the client
#
# List Directors who are permitted to contact this File daemon
#
Director {
Name = bacula-dir
Password = "[md5]607e60c2c1f4f859679fbe9d742b0c59" # Director must know this password
- Restart Windows bacula daemon
- Windows firewall configuration - unblock ports 9102/TCP and 9103/TCP for incoming rules