]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/bacula/templates/bacula-dir.conf.erb
Moar krypto
[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 = "\\|bash -c \"df -Pkl -x tmpfs | tail -n +2 | awk '{print \$NF}' \""
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 = /proc
57     File = /tmp
58     File = /.journal
59     File = /.fsck
60     File = /sys
61     File = /lib/init/rw
62     File = /var/run
63     File = /var/lock
64     File = /dev
65     File = /srv/chroot
66     File = /home/buildd/build-trees
67   }
68 }
69
70 ########################################################################
71 # A fileset for the catalog, one sql dump of the db                    #
72 ########################################################################
73 FileSet {
74   Name = "Catalog"
75   Include {
76     Options {
77       signature = SHA1
78       compression = GZIP9
79     }
80     File = "/var/lib/bacula/bacula.sql"
81   }
82 }
83
84 ########################################################################
85 # The job schedules                                                    #
86 ########################################################################
87
88 # When to do the backups, full backup on first sunday of the month,
89 #  differential (i.e. incremental since full) every other sunday,
90 #  and incremental backups other days
91 Schedule {
92   Name = "WeeklyCycle"
93   Run = Full 1st sat at 00:35
94   Run = Differential 2nd-5th sat at 00:35
95   Run = Incremental sun-fri at 00:35
96 }
97
98 # This schedule does the catalog. It starts after the WeeklyCycle
99 Schedule {
100   Name = "WeeklyCycleAfterBackup"
101   Run = Full sun-sat at 02:10
102 }
103
104 ########################################################################
105 # Generic catalog service                                              #
106 ########################################################################
107 Catalog {
108   Name = MyCatalog
109   dbname = "service = bacula";
110   #DB Address = "<%= bacula_db_address %>";
111   #DB Port = <%= bacula_db_port %>;
112   dbuser = "bacula";
113   dbpassword = "<%= bacula_db_secret %>"
114 }
115
116 ########################################################################
117 # Message delivery                                                     #
118 ########################################################################
119 Messages {
120   Name = Standard
121   mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r"
122   operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed for %j\" %r"
123   mail on error = <%= bacula_operator_email %> = all, !skipped
124   operator = <%= bacula_operator_email %> = mount
125   console = all, !skipped, !saved
126   append = "/var/lib/bacula/log" = all, !skipped
127   catalog = all
128 }
129
130 # Message delivery for daemon messages (no job).
131 Messages {
132   Name = Daemon
133   mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula daemon message\" %r"
134   mail = <%= bacula_operator_email %> = all, !skipped
135   console = all, !skipped, !saved
136   append = "/var/lib/bacula/log" = all, !skipped
137 }
138
139 ########################################################################
140 # Storage config                                                       #
141 ########################################################################
142
143 Storage {
144   Name = <%= bacula_filestor_name %>
145   Address = <%= bacula_storage_address %>
146   SDPort = <%= bacula_storage_port %>
147   Password = "<%= bacula_storage_secret %>"
148   Device = <%= bacula_filestor_device %>
149   Media Type = <%= bacula_filestor_name %>
150   Maximum Concurrent Jobs = 10
151
152   TLS Enable = yes
153   TLS Require = yes
154   TLS CA Certificate File = "<%= bacula_ca_path %>"
155   # This is a client certificate, used by the director to connect to the storage daemon
156   TLS Certificate = "<%= bacula_ssl_client_cert %>"
157   TLS Key = "<%= bacula_ssl_client_key %>"
158 }
159
160 ########################################################################
161 # Console, limited                                                     #
162 ########################################################################
163 Console {
164   Name = <%= bacula_monitor_name %>
165   Password = "<%= bacula_monitor_secret %>"
166   CommandACL = status, .status
167 }
168
169 ########################################################################
170 # Jobdefinitions with defaults and stuff                               #
171 ########################################################################
172 JobDefs {
173   Name = "Standardbackup"
174   Type = Backup
175   Level = Incremental
176   FileSet = "Standard Set"
177   Schedule = "WeeklyCycle"
178   Messages = Standard
179   Pool = <%=bacula_pool_name%>
180   Differential Backup Pool = <%=bacula_pool_name%>diff
181   Incremental Backup Pool = <%=bacula_pool_name%>inc
182   Max Full Interval = 1 month
183   Priority = 10
184   Write Bootstrap = "/var/lib/bacula/%c.bsr"
185   Maximum Concurrent Jobs = 20
186   Client Run After Job = "/usr/local/sbin/postbaculajob -c \"%c\" -d \"%d\" -i \"%i\" -l \"%l\" -n \"%n\" -o /var/log/bacula-main.log"
187 }
188
189 ########################################################################
190 # Standard Restore template, to be changed by Console program          #
191 #  Only one such job is needed for all Jobs/Clients/Storage ...        #
192 ########################################################################
193 Job {
194   Name = "RestoreFiles"
195   Type = Restore
196   Client = draghi.debian.org-fd
197   FileSet = "Standard Set"
198   Pool = <%=bacula_pool_name%>
199   Messages = Standard
200   Where = /var/tmp/bacula-restores
201 }
202
203 ########################################################################
204 # Pool definition                                                      #
205 ########################################################################
206 Pool {
207   Name = <%= bacula_pool_name %>
208   Pool Type = Backup
209   Storage = <%=bacula_filestor_name%>
210   Recycle = no
211   AutoPrune = yes
212   Volume Retention = 1 year
213   Label Format = "<%= bacula_pool_name %>.${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}_${Hour:p/2/0/r}:${Minute:p/2/0/r}"
214   Volume Use Duration = 23h
215   #Maximum Volume Jobs = 1
216   Maximum Volume Bytes = 50G
217   Action On Purge = Truncate
218 }
219
220 Pool {
221   Name = <%= bacula_pool_name %>diff
222   Pool Type = Backup
223   Storage = <%=bacula_filestor_name%>
224   Recycle = no
225   AutoPrune = yes
226   Volume Retention = 1 year
227   Label Format = "<%= bacula_pool_name %>diff.${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}_${Hour:p/2/0/r}:${Minute:p/2/0/r}"
228   Volume Use Duration = 23h
229   #Maximum Volume Jobs = 1
230   Maximum Volume Bytes = 50G
231   Action On Purge = Truncate
232 }
233
234 Pool {
235   Name = <%= bacula_pool_name %>inc
236   Pool Type = Backup
237   Storage = <%=bacula_filestor_name%>
238   Recycle = no
239   AutoPrune = yes
240   Volume Retention = 1 year
241   Label Format = "<%= bacula_pool_name %>inc.${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}_${Hour:p/2/0/r}:${Minute:p/2/0/r}"
242   Volume Use Duration = 23h
243   #Maximum Volume Jobs = 1
244   Maximum Volume Bytes = 50G
245   Action On Purge = Truncate
246 }
247
248 # Scratch pool definition
249 Pool {
250   Name = Scratch
251   Pool Type = Backup
252 }
253
254 ########################################################################
255 # Generic jobs                                                         #
256 ########################################################################
257 # Backup the catalog database (after the nightly save)
258 #Job {
259 #  Name = "BackupCatalog"
260 #  JobDefs = "Standardbackup"
261 #  Level = Full
262 #  FileSet="Catalog"
263 #  Schedule = "WeeklyCycleAfterBackup"
264 #  # This creates an ASCII copy of the catalog
265 #  # Arguments to make_catalog_backup.pl are:
266 #  #  make_catalog_backup.pl <catalog-name>
267 #  RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog"
268 #  # This deletes the copy of the catalog
269 #  RunAfterJob  = "/etc/bacula/scripts/delete_catalog_backup"
270 #  Write Bootstrap = "/var/lib/bacula/%n.bsr"
271 #  Priority = 15    # run after main backup
272 #  RunScript {
273 #        RunsWhen=After
274 #           RunsOnClient=No
275 #           Console = "purge volume action=all allpools storage=File"
276 #  }
277 #}
278
279 ########################################################################
280 # And now include all the generated configs                            #
281 ########################################################################
282 @|"sh -c 'for f in /etc/bacula/conf.d/*.conf ; do echo @${f} ; done'"