39 lines
1.5 KiB
YAML
39 lines
1.5 KiB
YAML
- name: store job data
|
|
set_fact:
|
|
job: '{{ {}|combine(cron.defaults, item.value, {"name": item.key}, recursive=True) }}'
|
|
randomseed: "{{ inventory_hostname + item.key }}"
|
|
|
|
- name: expand special random keywords to real values
|
|
when: job.special_time in ["random_daily", "random_weekly"]
|
|
set_fact:
|
|
job_random_values:
|
|
weekday: "{% if job.special_time == 'random_weekly' %}{{ job.random_options.weekday | random(seed=(randomseed + 'weekday')) }}{% else %}*{% endif %}"
|
|
hour: "{{ job.random_options.hour | random(seed=(randomseed + 'hour')) }}"
|
|
minute: "{{ job.random_options.minute | random(seed=(randomseed + 'minute')) }}"
|
|
|
|
- name: merge random values back into job
|
|
when: job.special_time in ["random_daily", "random_weekly"]
|
|
set_fact:
|
|
job: '{{ {}|combine(job, job_random_values, recursive=True) }}'
|
|
|
|
- name: add cron job users to node-exporter-textfile group
|
|
when: cron.enable_monitoring
|
|
ansible.builtin.user:
|
|
name: '{{ job.user }}'
|
|
groups: node-exporter-textfile
|
|
append: yes
|
|
|
|
- name: prepend cronjob monitoring command
|
|
when: cron.enable_monitoring
|
|
set_fact:
|
|
job: '{{ job|combine({"job": "/usr/local/bin/monitor-cronjob.py %s %s %s"%(job.name|quote, ("%s %s * * %s"%(job.minute, job.hour, job.weekday))|quote, job.job|quote)}) }}'
|
|
|
|
- name: add cron jobs
|
|
cron:
|
|
name: '{{ job.name }}'
|
|
job: '{{ job.job }}'
|
|
user: '{{ job.user }}'
|
|
weekday: '{{ job.weekday }}'
|
|
hour: '{{ job.hour }}'
|
|
minute: '{{ job.minute }}'
|
|
disabled: '{{ job.disabled }}'
|