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:
|
||||
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)
|
||||
when: job.special_time == "random_daily"
|
||||
cron:
|
||||
name: "{{ job.name }}"
|
||||
job: "{{ job.job }}"
|
||||
user: "{{ job.user|d('root') }}"
|
||||
hour: "{{ 22 | random(start=1, seed=inventory_hostname + job.name) }}"
|
||||
minute: "{{ 50 | random(start=5, seed=inventory_hostname + job.name) }}"
|
||||
user: "{{ job.user }}"
|
||||
hour: "{{ job.random_options.hour | random(seed=(randomseed + 'hour')) }}"
|
||||
minute: "{{ job.random_options.minute | random(seed=(randomseed + 'minute')) }}"
|
||||
|
||||
- name: add cron jobs (random_weekly)
|
||||
when: job.special_time == "random_weekly"
|
||||
cron:
|
||||
name: "{{ job.name }}"
|
||||
job: "{{ job.job }}"
|
||||
user: "{{ job.user|d('root') }}"
|
||||
weekday: "{{ ( 6 | random(seed=inventory_hostname + job.name) ) }}"
|
||||
hour: "{{ 22 | random(start=1, seed=inventory_hostname + job.name) }}"
|
||||
minute: "{{ 50 | random(start=5, seed=inventory_hostname + job.name) }}"
|
||||
user: "{{ job.user }}"
|
||||
weekday: "{{ job.random_options.weekday | random(seed=(randomseed + 'weekday')) }}"
|
||||
hour: "{{ job.random_options.hour | random(seed=(randomseed + 'hour')) }}"
|
||||
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:
|
||||
file: job.yml
|
||||
with_dict: "{{ cron }}"
|
||||
with_dict: "{{ cron.jobs }}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue