ansible-role-cron/tasks/job.yml
2021-06-12 16:04:27 +02:00

40 lines
1.4 KiB
YAML

- set_fact:
job: '{{ {}|combine(cron.defaults, item.value, {"name": item.key}, recursive=True) }}'
randomseed: "{{ inventory_hostname + item.key }}"
- when: job.special_time == "random_daily"
set_fact:
job: '{{ job|combine({"weekday": "*"}) }}'
- when: job.special_time == "random_weekly"
set_fact:
job: '{{ job|combine({"weekday": job.random_options.weekday | random(seed=(randomseed + "weekday"))}) }}'
- when: job.special_time == "random_daily" or job.special_time == "random_weekly"
set_fact:
job: '{{ job|combine({"hour": job.random_options.hour | random(seed=(randomseed + "hour"))}) }}'
- when: job.special_time == "random_daily" or job.special_time == "random_weekly"
set_fact:
job: '{{ job|combine({"minute": job.random_options.minute | random(seed=(randomseed + "minute"))}) }}'
- 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
- 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 }}'