@ -1,3 +1,22 @@
- name : Include distribution specific variables
include_vars : "{{ lookup('first_found', search) }}"
vars:
search:
files:
- '{{ ansible_distribution | lower }}.yml'
- '{{ ansible_os_family | lower }}.yml'
- '{{ ansible_system | lower }}.yml'
- default.yml
paths:
- vars
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726661
- name : Work around vixie-cron/PAM issue on old distros
command : sed -i '/pam_loginuid/ s/^/#/' /etc/pam.d/crond
when:
- ansible_distribution in ('RedHat', 'CentOS')
- ansible_distribution_major_version is version('6', '==')
- name : add cron task (check mode enabled, cron task not already created)
cron:
name : test cron task
@ -129,39 +148,114 @@
# BusyBox does not have /etc/cron.d
- name : Removing a cron file when the name is specified is allowed (#57471)
block:
- name : Check file does not exist
stat:
path : /etc/cron.d/cron_remove_name
register : cron_file_stats
- assert:
that : not cron_file_stats.stat.exists
- name : Cron file creation
cron:
cron_file : cron_filename
cron_file : cron_ remove_ name
name : "integration test cron"
job : 'ls'
user : root
- name : Cron file deletion
cron:
cron_file : cron_ file name
cron_file : cron_ remove_ name
name : "integration test cron"
state : absent
- name : Check file succesfull deletion
stat:
path : /etc/cron.d/cron_filename
path : /etc/cron.d/cron_remove_name
register : cron_file_stats
- assert:
that : not cron_file_stats.stat.exists
# BusyBox does not have /etc/cron.d
- name : Removing a cron file, which contains only whitespace
when : ansible_distribution != 'Alpine'
block:
- name : Check file does not exist
stat:
path : /etc/cron.d/cron_remove_whitespace
register : cron_file_stats
- assert:
that : not cron_file_stats.stat.exists
- name : Cron file creation
cron:
cron_file : cron_remove_whitespace
name : "integration test cron"
job : 'ls'
user : root
- name : Add whitespace to cron file
shell : 'printf "\n \n\t\n" >> /etc/cron.d/cron_remove_whitespace'
- name : Cron file deletion
cron:
cron_file : cron_remove_whitespace
name : "integration test cron"
state : absent
- name : Check file succesfull deletion
stat:
path : /etc/cron.d/cron_remove_whitespace
register : cron_file_stats
- assert:
that : not cron_file_stats.stat.exists
- name : System cron tab does not get removed
block:
- name : Add cron job
cron:
cron_file : "{{ system_crontab }}"
user : root
name : "integration test cron"
job : 'ls'
- name : Remove cron job
cron:
cron_file : "{{ system_crontab }}"
name : "integration test cron"
state : absent
- name : Check system crontab still exists
stat:
path : "{{ system_crontab }}"
register : cron_file_stats
- assert:
that : cron_file_stats.stat.exists
- name : Allow non-ascii chars in job (#69492)
block:
- name : Check file does not exist
stat:
path : /etc/cron.d/cron_nonascii
register : cron_file_stats
- assert:
that : not cron_file_stats.stat.exists
- name : Cron file creation
cron:
cron_file : cron_filename
cron_file : cron_ nonascii
name : "cron job that contain non-ascii chars in job (これは日本語です; This is Japanese)"
job : 'echo "うどんは好きだがお化け👻は苦手である。"'
user : root
- name : "Ensure cron_file contains job string"
replace:
path : /etc/cron.d/cron_filename
path : /etc/cron.d/cron_ nonascii
regexp : "うどんは好きだがお化け👻は苦手である。"
replace : "それは機密情報🔓です。"
register : find_chars
@ -169,13 +263,13 @@
- name : Cron file deletion
cron:
cron_file : cron_ filename
cron_file : cron_ nonascii
name : "cron job that contain non-ascii chars in job (これは日本語です; This is Japanese)"
state : absent
- name : Check file succesfull deletion
stat:
path : /etc/cron.d/cron_ filename
path : /etc/cron.d/cron_ nonascii
register : cron_file_stats
- assert: