]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/bacula/templates/bacula-dir.conf.erb
cd8826c3444daecc9710f4f0173c96998dc522b5
[dsa-puppet.git] / modules / bacula / templates / bacula-dir.conf.erb
1 ##
2 ## THIS FILE IS UNDER PUPPET CONTROL. DON'T EDIT IT HERE.
3 ## USE: git clone git+ssh://$USER@puppet.debian.org/srv/puppet.debian.org/git/dsa-puppet.git
4 ##
5 ##
6 #  For Bacula release 5.0.1 (24 February 2010) -- debian 5.0.4
7
8 ########################################################################
9 # Bacula Director itself                                               #
10 ########################################################################
11
12 Director {
13   Name = <%= bacula_director_name %>
14   Description = <%= hostname %> - <%= domain %> Bacula Director
15   QueryFile = "/etc/bacula/scripts/query.sql"
16   WorkingDirectory = "/var/lib/bacula"
17   PidDirectory = "/var/run/bacula"
18   Maximum Concurrent Jobs = 20
19   Password = "<%= bacula_director_secret %>"
20   Messages = Daemon
21   DirAddresses = {
22      # Always have localhost in, then the configured IP
23      ip = { addr = 127.0.0.1; port = 9101 }
24          ip = { addr = <%=bacula_director_address%>; port = <%=bacula_director_port%> }
25   }
26
27   TLS Enable = yes
28   TLS Require = yes
29   TLS Verify Peer = yes
30   TLS Allowed CN = "clientcerts/<%= bacula_director_address %>"
31   TLS CA Certificate File = "<%= bacula_ca_path %>"
32   # This is a server certificate, used for incoming console connections.
33   TLS Certificate = "<%= bacula_ssl_server_cert %>"
34   TLS Key = "<%= bacula_ssl_server_key %>"
35 }
36
37 ########################################################################
38 # Standard Fileset                                                     #
39 ########################################################################
40 FileSet {
41   Name = "Standard Set"
42   Include {
43     Options {
44       signature = SHA1
45       compression = GZIP9
46     }
47     File = "\\|/usr/local/sbin/bacula-backup-dirs"
48     # Dont backup directories that contain .nobackup files
49     Exclude Dir Containing = .nobackup
50   }
51
52   Exclude {
53     File = /var/lib/bacula
54     File = /var/cache/apt/
55     File = /nonexistant
56     File = /swapfile
57     File = /proc
58     File = /tmp
59     File = /.journal
60     File = /.fsck
61     File = /sys
62     File = /lib/init/rw
63     File = /var/run
64     File = /var/lock
65     File = /dev
66     File = /srv/chroot
67     File = /home/buildd/build-trees
68     File = "\\|grep -s -v ^# /etc/bacula/local-exclude || true"
69   }
70 }
71
72 ########################################################################
73 # A fileset for the catalog, one sql dump of the db                    #
74 ########################################################################
75 FileSet {
76   Name = "Catalog"
77   Include {
78     Options {
79       signature = SHA1
80       #compression = GZIP9
81     }
82     File = "/var/lib/bacula/bacula.sql.gz"
83   }
84 }
85
86 ########################################################################
87 # The job schedules                                                    #
88 ########################################################################
89
90 # When to do the backups, full backup on first sunday of the month,
91 #  differential (i.e. incremental since full) every other sunday,
92 #  and incremental backups other days
93 Schedule {
94   Name = "WeeklyCycle"
95   Run = Full 1st sat at 00:35
96   Run = Differential 2nd-5th sat at 00:35
97   Run = Incremental sun-fri at 00:35
98 }
99
100 # This schedule does the catalog. It starts after the WeeklyCycle
101 Schedule {
102   Name = "WeeklyCycleAfterBackup"
103   Run = Full sun-sat at 02:10
104 }
105
106 ########################################################################
107 # Generic catalog service                                              #
108 ########################################################################
109 Catalog {
110   Name = MyCatalog
111   dbname = "service = bacula";
112   #DB Address = "<%= bacula_db_address %>";
113   #DB Port = <%= bacula_db_port %>;
114   dbuser = "bacula";
115   dbpassword = "<%= bacula_db_secret %>"
116 }
117
118 ########################################################################
119 # Message delivery                                                     #
120 ########################################################################
121 Messages {
122   Name = Standard
123   mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r"
124   operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed for %j\" %r"
125   #mail on error = <%= bacula_operator_email %> = all, !skipped
126   mail = <%= bacula_operator_email %> = all
127   operator = <%= bacula_operator_email %> = mount
128   console = all, !skipped, !saved
129   append = "/var/lib/bacula/log" = all
130   catalog = all
131 }
132
133 # Message delivery for daemon messages (no job).
134 Messages {
135   Name = Daemon
136   mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula daemon message\" %r"
137   mail = <%= bacula_operator_email %> = all
138   console = all, !skipped, !saved
139   append = "/var/lib/bacula/log" = all
140 }
141
142 ########################################################################
143 # Console, limited                                                     #
144 ########################################################################
145 Console {
146   Name = <%= bacula_monitor_name %>
147   Password = "<%= bacula_monitor_secret %>"
148   CommandACL = status, .status
149 }
150
151 ########################################################################
152 # Jobdefinitions with defaults and stuff                               #
153 ########################################################################
154 JobDefs {
155   Name = "Standardbackup"
156   Type = Backup
157   Level = Incremental
158   FileSet = "Standard Set"
159   Schedule = "WeeklyCycle"
160   Messages = Standard
161   Max Full Interval = 1 month
162   Priority = 10
163   Write Bootstrap = "/var/lib/bacula/%c.bsr"
164   Maximum Concurrent Jobs = 20
165   Client Run After Job = "/usr/local/sbin/postbaculajob -c \"%c\" -d \"%d\" -i \"%i\" -l \"%l\" -n \"%n\" -o /var/log/bacula/client-after.state"
166 }
167
168 ########################################################################
169 # Standard Restore template, to be changed by Console program          #
170 #  Only one such job is needed for all Jobs/Clients/Storage ...        #
171 ########################################################################
172 Job {
173   Name = "RestoreFiles"
174   Type = Restore
175   Client = <%=bacula_director_address%>-fd
176   FileSet = "Standard Set"
177   Pool = poolfull-<%=bacula_pool_name%>-<%=bacula_director_address%>
178   Messages = Standard
179   Where = /var/tmp/bacula-restores
180 }
181
182
183 # Scratch pool definition
184 Pool {
185   Name = Scratch
186   Pool Type = Backup
187 }
188
189 ########################################################################
190 # Generic jobs                                                         #
191 ########################################################################
192 # Backup the catalog database (after the nightly save)
193 Storage {
194   Name = "<%= bacula_filestor_name %>-catalog"
195   Address = <%= bacula_storage_address %>
196   SDPort = <%= bacula_storage_port %>
197   Password = "<%= bacula_storage_secret %>"
198   Device = "<%= bacula_filestor_device %>-catalog"
199   Media Type = "<%= bacula_filestor_name %>-catalog"
200   Maximum Concurrent Jobs = 10
201
202   TLS Enable = yes
203   TLS Require = yes
204   TLS CA Certificate File = "<%= bacula_ca_path %>"
205   # This is a client certificate, used by the director to connect to the storage daemon
206   TLS Certificate = "<%= bacula_ssl_client_cert %>"
207   TLS Key = "<%= bacula_ssl_client_key %>"
208 }
209 Pool {
210   Name = "poolcatalog-<%=bacula_pool_name%>"
211   Pool Type = Backup
212   Storage = "<%=bacula_filestor_name%>-catalog"
213   AutoPrune = yes
214   Volume Retention = 2 months
215   Label Format = "<%= bacula_pool_name %>-catalog.${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}_${Hour:p/2/0/r}:${Minute:p/2/0/r}"
216   Volume Use Duration = 23h
217   Maximum Volume Jobs = 1
218   Maximum Volume Bytes = 50G
219   Action On Purge = Truncate
220   Recycle = yes
221   RecyclePool = "poolcataloggraveyard-<%=bacula_pool_name%>"
222 }
223 Pool {
224   Name = "poolcataloggraveyard-<%=bacula_pool_name%>"
225   Pool Type = Backup
226   Storage = "<%=bacula_filestor_name%>-catalog"
227   Recycle = yes
228   RecyclePool = "poolcataloggraveyard-<%=bacula_pool_name%>"
229 }
230
231 Job {
232   Name = "BackupCatalog"
233   JobDefs = "Standardbackup"
234   Client = <%=bacula_director_address%>-fd
235   Level = Full
236   FileSet = "Catalog"
237   Schedule = "WeeklyCycleAfterBackup"
238 #  # This creates an ASCII copy of the catalog
239 #  # Arguments to make_catalog_backup.pl are:
240 #  #  make_catalog_backup.pl <catalog-name>
241   RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog"
242 #  # This deletes the copy of the catalog
243   RunAfterJob  = "/etc/bacula/scripts/delete_catalog_backup"
244   Write Bootstrap = "/var/lib/bacula/%n.bsr"
245   Priority = 15    # run after main backup
246   Pool = "poolcatalog-<%=bacula_pool_name%>"
247 }
248
249 ########################################################################
250 # And now include all the generated configs                            #
251 ########################################################################
252 @|"sh -c 'for f in /etc/bacula/conf.d/*.conf ; do echo @${f} ; done'"