55 lines
1.8 KiB
YAML
55 lines
1.8 KiB
YAML
---
|
|
# file: roles/crontab/tasks/main.yml
|
|
|
|
- name: "Install cron package"
|
|
apt:
|
|
name: cron
|
|
tags: crontab
|
|
|
|
- name: "Configuring cron tasks"
|
|
ansible.builtin.cron:
|
|
cron_file: "{{ item.cron_file | default(omit) }}"
|
|
day: "{{ item.day | default(omit) }}"
|
|
env: "{{ item.env | default(omit) }}"
|
|
hour: "{{ item.hour | default(omit) }}"
|
|
job: "{{ item.job | default(omit) }}"
|
|
minute: "{{ item.minute | default(omit) }}"
|
|
month: "{{ item.month | default(omit) }}"
|
|
name: "{{ item.name }}"
|
|
special_time: "{{ item.special_time | default(omit) }}"
|
|
state: "{{ item.state | default(omit) }}"
|
|
user: "{{ item.user | default(omit) }}"
|
|
value: "{{ item.value | default(omit) }}"
|
|
weekday: "{{ item.weekday | default(omit) }}"
|
|
disabled: "{{ item.disabled | default(omit) }}"
|
|
loop: "{{ cron_tasks }}"
|
|
when: cron_tasks is defined
|
|
tags: crontab
|
|
|
|
- name: "Silence selected root cron.d files via MAILTO"
|
|
block:
|
|
- name: "Check if cron files exist"
|
|
ansible.builtin.stat:
|
|
path: "/etc/cron.d/{{ item }}"
|
|
loop: "{{ crontab_silence_files }}"
|
|
register: crontab_file_stats
|
|
- name: "Keep only existing cron files"
|
|
ansible.builtin.set_fact:
|
|
crontab_silence_files_existing: >-
|
|
{{
|
|
crontab_file_stats.results
|
|
| selectattr('stat.exists', 'defined')
|
|
| selectattr('stat.exists')
|
|
| map(attribute='item')
|
|
| list
|
|
}}
|
|
- name: "Silence existing root cron.d files"
|
|
ansible.builtin.cron:
|
|
name: MAILTO
|
|
env: true
|
|
value: ""
|
|
cron_file: "{{ item }}"
|
|
user: root
|
|
loop: "{{ crontab_silence_files_existing }}"
|
|
when: crontab_silence_files is defined and (crontab_silence_files | length) > 0
|
|
tags: crontab
|