## ## THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE. ## USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git ## ## # For Bacula release 5.0.1 (24 February 2010) -- debian 5.0.4 ######################################################################## # Bacula Director itself # ######################################################################## Director { Name = <%= bacula_director_name %> Description = <%= hostname %> - <%= domain %> Bacula Director QueryFile = "/etc/bacula/scripts/query.sql" WorkingDirectory = "/var/lib/bacula" PidDirectory = "/var/run/bacula" Maximum Concurrent Jobs = 20 Password = "<%= bacula_director_secret %>" Messages = Daemon DirAddresses = { # Always have localhost in, then the configured IP ip = { addr = 127.0.0.1; port = 9101 } ip = { addr = <%=bacula_director_address%>; port = <%=bacula_director_port%> } } TLS Enable = yes TLS Require = yes TLS Verify Peer = yes TLS Allowed CN = "clientcerts/<%= bacula_director_address %>" TLS CA Certificate File = "<%= bacula_ca_path %>" # This is a server certificate, used for incoming console connections. TLS Certificate = "<%= bacula_ssl_server_cert %>" TLS Key = "<%= bacula_ssl_server_key %>" } ######################################################################## # Standard Fileset # ######################################################################## FileSet { Name = "Standard Set" Include { Options { signature = SHA1 compression = GZIP9 } File = "\\|bash -c \"df -Pkl -x tmpfs -x iso9660 | tail -n +2 | awk '{print \$NF}' \"" # Dont backup directories that contain .nobackup files Exclude Dir Containing = .nobackup } Exclude { File = /var/lib/bacula File = /var/cache/apt/ File = /nonexistant File = /proc File = /tmp File = /.journal File = /.fsck File = /sys File = /lib/init/rw File = /var/run File = /var/lock File = /dev File = /srv/chroot File = /home/buildd/build-trees } } ######################################################################## # A fileset for the catalog, one sql dump of the db # ######################################################################## FileSet { Name = "Catalog" Include { Options { signature = SHA1 compression = GZIP9 } File = "/var/lib/bacula/bacula.sql" } } ######################################################################## # The job schedules # ######################################################################## # When to do the backups, full backup on first sunday of the month, # differential (i.e. incremental since full) every other sunday, # and incremental backups other days Schedule { Name = "WeeklyCycle" Run = Full 1st sat at 00:35 Run = Differential 2nd-5th sat at 00:35 Run = Incremental sun-fri at 00:35 } # This schedule does the catalog. It starts after the WeeklyCycle Schedule { Name = "WeeklyCycleAfterBackup" Run = Full sun-sat at 02:10 } ######################################################################## # Generic catalog service # ######################################################################## Catalog { Name = MyCatalog dbname = "service = bacula"; #DB Address = "<%= bacula_db_address %>"; #DB Port = <%= bacula_db_port %>; dbuser = "bacula"; dbpassword = "<%= bacula_db_secret %>" } ######################################################################## # Message delivery # ######################################################################## Messages { Name = Standard mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r" operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed for %j\" %r" #mail on error = <%= bacula_operator_email %> = all, !skipped mail = <%= bacula_operator_email %> = all, !skipped operator = <%= bacula_operator_email %> = mount console = all, !skipped, !saved append = "/var/lib/bacula/log" = all, !skipped catalog = all } # Message delivery for daemon messages (no job). Messages { Name = Daemon mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula daemon message\" %r" mail = <%= bacula_operator_email %> = all, !skipped console = all, !skipped, !saved append = "/var/lib/bacula/log" = all, !skipped } ######################################################################## # Console, limited # ######################################################################## Console { Name = <%= bacula_monitor_name %> Password = "<%= bacula_monitor_secret %>" CommandACL = status, .status } ######################################################################## # Jobdefinitions with defaults and stuff # ######################################################################## JobDefs { Name = "Standardbackup" Type = Backup Level = Incremental FileSet = "Standard Set" Schedule = "WeeklyCycle" Messages = Standard Max Full Interval = 1 month Priority = 10 Write Bootstrap = "/var/lib/bacula/%c.bsr" Maximum Concurrent Jobs = 20 Client Run After Job = "/usr/local/sbin/postbaculajob -c \"%c\" -d \"%d\" -i \"%i\" -l \"%l\" -n \"%n\" -o /var/log/bacula-main.log" } ######################################################################## # Standard Restore template, to be changed by Console program # # Only one such job is needed for all Jobs/Clients/Storage ... # ######################################################################## Job { Name = "RestoreFiles" Type = Restore Client = <%=bacula_director_address%>-fd FileSet = "Standard Set" Pool = poolfull-<%=bacula_pool_name%>-<%=bacula_director_address%> Messages = Standard Where = /var/tmp/bacula-restores } # Scratch pool definition Pool { Name = Scratch Pool Type = Backup } ######################################################################## # Generic jobs # ######################################################################## # Backup the catalog database (after the nightly save) #Job { # Name = "BackupCatalog" # JobDefs = "Standardbackup" # Level = Full # FileSet="Catalog" # Schedule = "WeeklyCycleAfterBackup" # # This creates an ASCII copy of the catalog # # Arguments to make_catalog_backup.pl are: # # make_catalog_backup.pl # RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog" # # This deletes the copy of the catalog # RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup" # Write Bootstrap = "/var/lib/bacula/%n.bsr" # Priority = 15 # run after main backup # RunScript { # RunsWhen=After # RunsOnClient=No # Console = "purge volume action=all allpools storage=File" # } #} ######################################################################## # And now include all the generated configs # ######################################################################## @|"sh -c 'for f in /etc/bacula/conf.d/*.conf ; do echo @${f} ; done'"