added documentation and non special options. Breaking change
This commit is contained in:
parent
bade40d4d5
commit
f8c19db61e
4 changed files with 76 additions and 10 deletions
44
README.md
Normal file
44
README.md
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
# Cron
|
||||||
|
|
||||||
|
All configuration is to be placed inside the `cron` dict.
|
||||||
|
|
||||||
|
```
|
||||||
|
# <name>: *jobconfig*
|
||||||
|
jobs: {}
|
||||||
|
|
||||||
|
# defaults for all jobs, see *jobconfig*
|
||||||
|
defaults:
|
||||||
|
user: root
|
||||||
|
weekday: '*'
|
||||||
|
hour: '*'
|
||||||
|
minute: '*'
|
||||||
|
special_time: False
|
||||||
|
random_options:
|
||||||
|
weekday: "{{ range(6)|list }}"
|
||||||
|
hour: "{{ range(1, 22)|list }}"
|
||||||
|
minute: "{{ range(5, 50)|list }}"
|
||||||
|
```
|
||||||
|
|
||||||
|
**jobconfig**
|
||||||
|
```
|
||||||
|
# user to run job as
|
||||||
|
user: root
|
||||||
|
|
||||||
|
# weekday to run job at
|
||||||
|
weekday: '*'
|
||||||
|
|
||||||
|
# hour to run job at
|
||||||
|
hour: '*'
|
||||||
|
|
||||||
|
# minute to run job at
|
||||||
|
minute: '*'
|
||||||
|
|
||||||
|
# can be False or (mutaly exclusive with weekday/hour/minute) one of 'random_daily' or 'random_weekly'
|
||||||
|
special_time: False
|
||||||
|
|
||||||
|
# options if 'special_time' is not False
|
||||||
|
random_options:
|
||||||
|
weekday: "{{ range(6)|list }}"
|
||||||
|
hour: "{{ range(1, 22)|list }}"
|
||||||
|
minute: "{{ range(5, 50)|list }}"
|
||||||
|
```
|
||||||
|
|
@ -1 +1,12 @@
|
||||||
cron: {}
|
cron:
|
||||||
|
jobs: {}
|
||||||
|
defaults:
|
||||||
|
user: root
|
||||||
|
weekday: '*'
|
||||||
|
hour: '*'
|
||||||
|
minute: '*'
|
||||||
|
special_time: False
|
||||||
|
random_options:
|
||||||
|
weekday: "{{ range(6)|list }}"
|
||||||
|
hour: "{{ range(1, 22)|list }}"
|
||||||
|
minute: "{{ range(5, 50)|list }}"
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,32 @@
|
||||||
- set_fact:
|
- set_fact:
|
||||||
job: '{{ (item.value)|combine(item.value, {"name": item.key}) }}'
|
job: '{{ {}|combine(cron.defaults, item.value, {"name": item.key}, recursive=True) }}'
|
||||||
|
randomseed: "{{ inventory_hostname + item.key }}"
|
||||||
|
|
||||||
- name: add cron jobs (random_daily)
|
- name: add cron jobs (random_daily)
|
||||||
when: job.special_time == "random_daily"
|
when: job.special_time == "random_daily"
|
||||||
cron:
|
cron:
|
||||||
name: "{{ job.name }}"
|
name: "{{ job.name }}"
|
||||||
job: "{{ job.job }}"
|
job: "{{ job.job }}"
|
||||||
user: "{{ job.user|d('root') }}"
|
user: "{{ job.user }}"
|
||||||
hour: "{{ 22 | random(start=1, seed=inventory_hostname + job.name) }}"
|
hour: "{{ job.random_options.hour | random(seed=(randomseed + 'hour')) }}"
|
||||||
minute: "{{ 50 | random(start=5, seed=inventory_hostname + job.name) }}"
|
minute: "{{ job.random_options.minute | random(seed=(randomseed + 'minute')) }}"
|
||||||
|
|
||||||
- name: add cron jobs (random_weekly)
|
- name: add cron jobs (random_weekly)
|
||||||
when: job.special_time == "random_weekly"
|
when: job.special_time == "random_weekly"
|
||||||
cron:
|
cron:
|
||||||
name: "{{ job.name }}"
|
name: "{{ job.name }}"
|
||||||
job: "{{ job.job }}"
|
job: "{{ job.job }}"
|
||||||
user: "{{ job.user|d('root') }}"
|
user: "{{ job.user }}"
|
||||||
weekday: "{{ ( 6 | random(seed=inventory_hostname + job.name) ) }}"
|
weekday: "{{ job.random_options.weekday | random(seed=(randomseed + 'weekday')) }}"
|
||||||
hour: "{{ 22 | random(start=1, seed=inventory_hostname + job.name) }}"
|
hour: "{{ job.random_options.hour | random(seed=(randomseed + 'hour')) }}"
|
||||||
minute: "{{ 50 | random(start=5, seed=inventory_hostname + job.name) }}"
|
minute: "{{ job.random_options.minute | random(seed=(randomseed + 'minute')) }}"
|
||||||
|
|
||||||
|
- name: add cron jobs (not special)
|
||||||
|
when: not job.special_time
|
||||||
|
cron:
|
||||||
|
name: "{{ job.name }}"
|
||||||
|
job: "{{ job.job }}"
|
||||||
|
user: "{{ job.user }}"
|
||||||
|
weekday: "{{ job.weekday }}"
|
||||||
|
hour: "{{ job.hour }}"
|
||||||
|
minute: "{{ job.minute }}"
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
- include_tasks:
|
- include_tasks:
|
||||||
file: job.yml
|
file: job.yml
|
||||||
with_dict: "{{ cron }}"
|
with_dict: "{{ cron.jobs }}"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue