58 lines
1.7 KiB
YAML
58 lines
1.7 KiB
YAML
---
|
|
- name: create job config directory
|
|
file:
|
|
path: "{{ restic_etc_path }}/jobs/{{ item.name }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
state: directory
|
|
|
|
- name: create job hooks
|
|
copy:
|
|
src: "hooks/{{ hook_item }}"
|
|
dest: "{{ restic_etc_path }}/jobs/{{ item.name }}/hooks.d/{{ hook_item | basename | splitext | first }}"
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
loop: "{{ item.hooks | default([]) }}"
|
|
loop_control:
|
|
loop_var: hook_item
|
|
when: item.hooks is defined
|
|
|
|
- name: create job environment helper
|
|
template:
|
|
src: job-env.sh.j2
|
|
dest: "{{ restic_etc_path }}/jobs/{{ item.name }}/env.sh"
|
|
owner: root
|
|
group: root
|
|
mode: 0400
|
|
|
|
- name: install hooks
|
|
file:
|
|
path: "{{ restic_etc_path }}/jobs/{{ item.name }}/hooks.d"
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
state: directory
|
|
when: item.hooks is defined and item.hooks | length
|
|
|
|
- name: create job exclude file
|
|
template:
|
|
src: exclude.txt.j2
|
|
dest: "{{ restic_etc_path }}/jobs/{{ item.name }}/exclude.txt"
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
|
|
- name: create cron
|
|
cron:
|
|
name: "restic {{ item.name }} job"
|
|
hour: "{{ item.cron.hour | default(omit) }}"
|
|
minute: "{{ item.cron.minute | default(60 | random(seed=inventory_hostname)) }}"
|
|
day: "{{ item.cron.day | default(omit) }}"
|
|
month: "{{ item.cron.month | default(omit) }}"
|
|
weekday: "{{ item.cron.weekday | default(omit) }}"
|
|
user: "{{ item.cron.user | default('root') }}"
|
|
state: "{{ item.cron.state | default('present') }}"
|
|
job: "( {{ restic_bin_path }}/restic-job {{ item.name }} | logger --id=$$ -t restic-job -p user.info ) 2>&1 | logger --id=$$ -t restic-job -p user.err"
|