Tested on Ubuntu 12.04 server (should also work on Debian - please report!)
Supports File backup on a dedicated storage server with a single bacula director and multiple clients to be backed up.
Painlessly autoconfigures itself and the Jobs to be done. Backs up daily incremental, full weekly. (see usage) Also supports installation of bacula console to observe your backup progresses.
- Files
- Mysql
- LDAP
- Chef server
bacula::server
Central backup server
bacula::client
Used by each client to be backed up
bacula::storage (bacula-sd)
For use on storage system
bacula::bat
Used for Systems with graphic environment - installs and configures "bat" Bacula qt-console
Cookbooks:
mysql
database
openssl #for password generation
#Attributes
default.rb
Configure the bacula user
node['bacula']['user']
node['bacula']['group']
server.rb
Set properties for File based backup
node['bacula']['volume_size'] = "1G"
node['bacula']['volume_max'] = 20
node['bacula']['label_format'] = "BaculaFile"
client.rb
Set files to be backed up (see Usage below)
node['bacula']['fd']['files']
storage.rb
Set up destination of File-Storage
default['bacula']['sd']['backup_dir'] = "/backup"
To autogenerate jobs the following expressions need to be true
on bacula::client
machine:
Mysql
node['mysql'] && node['mysql']['server_root_password']
Ldap
node['openldap'] && node['openldap']['slapd_type'] == "master"
Chef Server
node['fqdn'] == "chef.#{node['domain']}"
- node A => bacula::server
- node B => bacula::storage (with much storage)
- node C-Z => bacula::client
Set on your bacula::client
node
node.set['bacula']['fd']['files'] = {
'includes' => ['/']],
'excludes' => [ '/dev','sys']
}
To change the backup cycle make changes in templates/default/bacula-dir.conf
- Add restore jobs
- more datastores (postgresql, sqlite)
- make attributes out of the listening port
- make mailing work
see metadata.rb