Initial commit
Signed-off-by: Julien Riou <julien@riou.xyz>
This commit is contained in:
parent
d547c7f607
commit
096a3e0540
69 changed files with 1650 additions and 0 deletions
26
templates/bacula/bacula-dir.conf.j2
Normal file
26
templates/bacula/bacula-dir.conf.j2
Normal file
|
@ -0,0 +1,26 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
Director {
|
||||
Name = {{ bacula_director_name }}
|
||||
DIRport = 9101
|
||||
QueryFile = "/etc/bacula/scripts/query.sql"
|
||||
WorkingDirectory = "/var/lib/bacula"
|
||||
PidDirectory = "/run/bacula"
|
||||
Maximum Concurrent Jobs = 20
|
||||
Password = "{{ bacula_director_password }}"
|
||||
Messages = Daemon
|
||||
DirAddress = {{ bacula_director_address | default('127.0.0.1') }}
|
||||
}
|
||||
|
||||
Catalog {
|
||||
Name = {{ bacula_catalog_name }}
|
||||
dbname = "bacula"; dbuser = ""; dbpassword = ""
|
||||
}
|
||||
|
||||
@/etc/bacula/conf.d/jobs.conf
|
||||
@/etc/bacula/conf.d/filesets.conf
|
||||
@/etc/bacula/conf.d/schedules.conf
|
||||
@/etc/bacula/conf.d/clients.conf
|
||||
@/etc/bacula/conf.d/messages.conf
|
||||
@/etc/bacula/conf.d/pools.conf
|
||||
@/etc/bacula/conf.d/storages.conf
|
21
templates/bacula/bacula-fd.conf.j2
Normal file
21
templates/bacula/bacula-fd.conf.j2
Normal file
|
@ -0,0 +1,21 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
Director {
|
||||
Name = {{ bacula_director_name }}
|
||||
Password = "{{ bacula_filedaemon_password }}"
|
||||
}
|
||||
|
||||
FileDaemon {
|
||||
Name = {{ bacula_filedaemon_name }}
|
||||
FDport = 9102
|
||||
WorkingDirectory = /var/lib/bacula
|
||||
Pid Directory = /run/bacula
|
||||
Maximum Concurrent Jobs = 20
|
||||
Plugin Directory = /usr/lib/bacula
|
||||
FDAddress = {{ bacula_filedaemon_address | default('127.0.0.1') }}
|
||||
}
|
||||
|
||||
Messages {
|
||||
Name = Standard
|
||||
director = {{ bacula_director_name }} = all, !skipped, !restored
|
||||
}
|
31
templates/bacula/bacula-sd.conf.j2
Normal file
31
templates/bacula/bacula-sd.conf.j2
Normal file
|
@ -0,0 +1,31 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
Director {
|
||||
Name = {{ bacula_director_name }}
|
||||
Password = "{{ bacula_storage_password }}"
|
||||
}
|
||||
|
||||
Storage {
|
||||
Name = {{ bacula_storage_name }}
|
||||
SDPort = 9103
|
||||
WorkingDirectory = "/var/lib/bacula"
|
||||
Pid Directory = "/var/run/bacula"
|
||||
Maximum Concurrent Jobs = 20
|
||||
SDAddress = {{ bacula_storage_address | default('127.0.0.1') }}
|
||||
}
|
||||
|
||||
Device {
|
||||
Name = {{ bacula_device_name }}
|
||||
Media Type = File
|
||||
Archive Device = {{ bacula_device_archive_device }}
|
||||
LabelMedia = yes
|
||||
Random Access = yes
|
||||
AutomaticMount = yes
|
||||
RemovableMedia = no
|
||||
AlwaysOpen = no
|
||||
}
|
||||
|
||||
Messages {
|
||||
Name = Standard
|
||||
director = {{ bacula_director_name }} = all
|
||||
}
|
8
templates/bacula/bconsole.conf.j2
Normal file
8
templates/bacula/bconsole.conf.j2
Normal file
|
@ -0,0 +1,8 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
Director {
|
||||
Name = {{ bacula_director_name }}
|
||||
DIRport = 9101
|
||||
address = 127.0.0.1
|
||||
Password = "{{ bacula_director_password }}"
|
||||
}
|
15
templates/bacula/conf.d/clients.conf.j2
Normal file
15
templates/bacula/conf.d/clients.conf.j2
Normal file
|
@ -0,0 +1,15 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
{% for client in bacula_clients %}
|
||||
Client {
|
||||
Name = {{ client['name'] }}
|
||||
Address = {{ client['address'] }}
|
||||
FDPort = 9102
|
||||
Catalog = {{ client['catalog'] }}
|
||||
Password = "{{ client['password'] }}"
|
||||
File Retention = {{ client['file_retention'] }}
|
||||
Job Retention = {{ client['job_retention'] }}
|
||||
AutoPrune = {{ client['autoprune'] }}
|
||||
}
|
||||
|
||||
{% endfor %}
|
32
templates/bacula/conf.d/filesets.conf.j2
Normal file
32
templates/bacula/conf.d/filesets.conf.j2
Normal file
|
@ -0,0 +1,32 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
{% for fileset in bacula_filesets %}
|
||||
FileSet {
|
||||
Name = {{ fileset['name'] }}
|
||||
{% if 'include' in fileset %}
|
||||
Include {
|
||||
{% if 'options' in fileset['include'] %}
|
||||
Options {
|
||||
{% if 'signature' in fileset['include']['options'] %}
|
||||
signature = {{ fileset['include']['options']['signature'] }}
|
||||
{% endif %}
|
||||
{% if 'compression' in fileset['include']['options'] %}
|
||||
compression = {{ fileset['include']['options']['compression'] }}
|
||||
{% endif %}
|
||||
}
|
||||
{% endif %}
|
||||
{% for file in fileset['include']['files'] | default([]) | sort %}
|
||||
File = "{{ file }}"
|
||||
{% endfor %}
|
||||
}
|
||||
{% endif %}
|
||||
{% if 'exclude' in fileset %}
|
||||
Exclude {
|
||||
{% for file in fileset['exclude']['files'] | default([]) | sort %}
|
||||
File = "{{ file }}"
|
||||
{% endfor %}
|
||||
}
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
{% endfor %}
|
60
templates/bacula/conf.d/jobs.conf.j2
Normal file
60
templates/bacula/conf.d/jobs.conf.j2
Normal file
|
@ -0,0 +1,60 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
JobDefs {
|
||||
Name = BackupDefaults
|
||||
Type = Backup
|
||||
Storage = {{ bacula_storage_name }}
|
||||
Schedule = DefaultSchedule
|
||||
Priority = 10
|
||||
Messages = Standard
|
||||
Pool = FullFile
|
||||
Full Backup Pool = FullFile
|
||||
Differential Backup Pool = DiffFile
|
||||
Incremental Backup Pool = IncrFile
|
||||
}
|
||||
|
||||
{% for job in bacula_jobs %}
|
||||
Job {
|
||||
Name = {{ job['name'] }}
|
||||
JobDefs = BackupDefaults
|
||||
Client = {{ job['client'] }}
|
||||
FileSet = {{ job['fileset'] }}
|
||||
{% if 'priority' in job %}
|
||||
Priority = {{ job['priority'] }}
|
||||
{% endif %}
|
||||
{% if 'level' in job %}
|
||||
Level = {{ job['level'] }}
|
||||
{% endif %}
|
||||
{% if 'schedule' in job %}
|
||||
Schedule = {{ job['schedule'] }}
|
||||
{% endif %}
|
||||
{% if 'run_before_job' in job %}
|
||||
RunBeforeJob = "{{ job['run_before_job'] }}"
|
||||
{% endif %}
|
||||
{% if 'run_after_job' in job %}
|
||||
RunAfterJob = "{{ job['run_after_job'] }}"
|
||||
{% endif %}
|
||||
{% if 'client_run_before_job' in job %}
|
||||
ClientRunBeforeJob = "{{ job['client_run_before_job'] }}"
|
||||
{% endif %}
|
||||
{% if 'client_run_after_job' in job %}
|
||||
ClientRunAfterJob = "{{ job['client_run_after_job'] }}"
|
||||
{% endif %}
|
||||
{% if 'pool' in job %}
|
||||
Pool = {{ job['pool'] }}
|
||||
{% endif %}
|
||||
{% if 'storage' in job %}
|
||||
Storage = {{ job['storage'] }}
|
||||
{% endif %}
|
||||
{% if 'messages' in job %}
|
||||
Messages = {{ job['messages'] }}
|
||||
{% endif %}
|
||||
{% if 'where' in job %}
|
||||
Where = {{ job['where'] }}
|
||||
{% endif %}
|
||||
{% if 'type' in job %}
|
||||
Type = {{ job['type'] }}
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
{% endfor %}
|
22
templates/bacula/conf.d/messages.conf.j2
Normal file
22
templates/bacula/conf.d/messages.conf.j2
Normal file
|
@ -0,0 +1,22 @@
|
|||
Messages {
|
||||
Name = Standard
|
||||
{% if bacula_email_address is defined %}
|
||||
mailcommand = "/usr/bin/mail -r \"Bacula \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
|
||||
operatorcommand = "/usr/bin/mail -r \"Bacula \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
|
||||
mail on error = {{ bacula_email_address }} = all, !skipped, !terminate
|
||||
{% endif %}
|
||||
operator = root = mount
|
||||
console = all, !skipped, !saved
|
||||
append = "/var/log/bacula/bacula.log" = all, !skipped
|
||||
catalog = all
|
||||
}
|
||||
|
||||
Messages {
|
||||
Name = Daemon
|
||||
{% if bacula_email_address is defined %}
|
||||
mailcommand = "/usr/bin/mail -r \"Bacula \<%r\>\" -s \"Bacula daemon message\" %r"
|
||||
mail on error = {{ bacula_email_address }} = all, !skipped, !terminate
|
||||
{% endif %}
|
||||
console = all, !skipped, !saved
|
||||
append = "/var/log/bacula/bacula.log" = all, !skipped
|
||||
}
|
16
templates/bacula/conf.d/pools.conf.j2
Normal file
16
templates/bacula/conf.d/pools.conf.j2
Normal file
|
@ -0,0 +1,16 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
{% for pool in bacula_pools | default([]) %}
|
||||
Pool {
|
||||
Name = {{ pool['name'] }}
|
||||
Pool Type = {{ pool['pool_type'] }}
|
||||
Recycle = {{ pool['recycle'] }}
|
||||
AutoPrune = {{ pool['auto_prune'] }}
|
||||
Volume Retention = {{ pool['volume_retention'] }}
|
||||
Storage = {{ pool['storage'] }}
|
||||
Maximum Volume Bytes = {{ pool['maximum_volume_bytes'] }}
|
||||
Maximum Volumes = {{ pool['maximum_volumes'] }}
|
||||
LabelFormat = "{{ pool['labelformat'] }}"
|
||||
}
|
||||
|
||||
{% endfor %}
|
11
templates/bacula/conf.d/schedules.conf.j2
Normal file
11
templates/bacula/conf.d/schedules.conf.j2
Normal file
|
@ -0,0 +1,11 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
{% for schedule in bacula_schedules | default([]) %}
|
||||
Schedule {
|
||||
Name = {{ schedule['name'] }}
|
||||
{% for run in schedule['runs'] %}
|
||||
Run = {% for k, v in run.get('job_overrides', {}).items() %}{{ k }}={{ v }} {% endfor %} {{ run['datetime'] }}
|
||||
{% endfor %}
|
||||
}
|
||||
|
||||
{% endfor %}
|
12
templates/bacula/conf.d/storages.conf.j2
Normal file
12
templates/bacula/conf.d/storages.conf.j2
Normal file
|
@ -0,0 +1,12 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
{% for storage in bacula_storages | default([]) %}
|
||||
Storage {
|
||||
Name = {{ storage['name'] }}
|
||||
Address = {{ storage['address'] }}
|
||||
Password = "{{ storage['password'] }}"
|
||||
Device = {{ storage['device'] }}
|
||||
Media Type = {{ storage['media_type'] }}
|
||||
}
|
||||
|
||||
{% endfor %}
|
Loading…
Add table
Add a link
Reference in a new issue