From 24edbd680a3dbf24e085a1f86d8bd5ce2683b495 Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Mon, 21 Oct 2019 15:25:00 +0200 Subject: [PATCH] Add crontabs only when cron package is installed (many roles) --- elasticsearch/tasks/logs.yml | 7 +++++++ etc-git/tasks/main.yml | 12 ++++++++++-- evocheck/tasks/cron.yml | 8 ++++++++ evolinux-base/tasks/system.yml | 13 ++++++++++--- logstash/tasks/logs.yml | 8 +++++++- postfix/tasks/packmail.yml | 7 +++++++ spamassasin/tasks/main.yml | 7 +++++++ 7 files changed, 56 insertions(+), 6 deletions(-) diff --git a/elasticsearch/tasks/logs.yml b/elasticsearch/tasks/logs.yml index ee3d7680..16bbe5d6 100644 --- a/elasticsearch/tasks/logs.yml +++ b/elasticsearch/tasks/logs.yml @@ -1,5 +1,11 @@ --- +- name: Check if cron is installed + shell: "dpkg -l cron 2> /dev/null | grep -q -E '^(i|h)i'" + failed_when: False + changed_when: False + register: is_cron_installed + - name: "log rotation script" template: src: rotate_elasticsearch_logs.j2 @@ -7,3 +13,4 @@ owner: root group: root mode: "0750" + when: is_cron_installed.rc == 0 diff --git a/etc-git/tasks/main.yml b/etc-git/tasks/main.yml index 4156d3fa..b0071e72 100644 --- a/etc-git/tasks/main.yml +++ b/etc-git/tasks/main.yml @@ -82,12 +82,20 @@ tags: - etc-git +- name: Check if cron is installed + shell: "dpkg -l cron 2> /dev/null | grep -q -E '^(i|h)i'" + failed_when: False + changed_when: False + check_mode: no + register: is_cron_installed + - name: Optimize script is installed in monthly crontab copy: src: optimize-etc-git dest: /etc/cron.monthly/optimize-etc-git mode: "0750" force: no + when: is_cron_installed.rc == 0 tags: - etc-git @@ -96,7 +104,7 @@ src: etc-git-status.j2 dest: /etc/cron.d/etc-git-status mode: "0644" - when: etc_git_monitor_status + when: is_cron_installed.rc == 0 and etc_git_monitor_status tags: - etc-git @@ -104,6 +112,6 @@ file: dest: /etc/cron.d/etc-git-status state: absent - when: not etc_git_monitor_status + when: is_cron_installed.rc == 0 and not etc_git_monitor_status tags: - etc-git diff --git a/evocheck/tasks/cron.yml b/evocheck/tasks/cron.yml index 82f56130..4ef10b05 100644 --- a/evocheck/tasks/cron.yml +++ b/evocheck/tasks/cron.yml @@ -1,5 +1,12 @@ --- +- name: Check if cron is installed + shell: "dpkg -l cron 2> /dev/null | grep -q -E '^(i|h)i'" + failed_when: False + changed_when: False + check_mode: no + register: is_cron_installed + - name: evocheck crontab is updated template: src: crontab.j2 @@ -8,3 +15,4 @@ owner: root group: root force: yes + when: is_cron_installed.rc == 0 diff --git a/evolinux-base/tasks/system.yml b/evolinux-base/tasks/system.yml index 4ef08fa3..55749e21 100644 --- a/evolinux-base/tasks/system.yml +++ b/evolinux-base/tasks/system.yml @@ -84,13 +84,20 @@ #- name: Customizing /etc/fstab +- name: Check if cron is installed + shell: "dpkg -l cron 2> /dev/null | grep -q -E '^(i|h)i'" + failed_when: False + changed_when: False + check_mode: no + register: is_cron_installed + - name: Set verbose logging for cron deamon lineinfile: dest: /etc/default/cron line: "EXTRA_OPTS='-L 15'" create: yes state: present - when: evolinux_system_cron_verboselog + when: is_cron_installed.rc == 0 and evolinux_system_cron_verboselog - name: Modify default umask for cron deamon lineinfile: @@ -98,7 +105,7 @@ line: "umask 022" create: yes state: present - when: evolinux_system_cron_umask + when: is_cron_installed.rc == 0 and evolinux_system_cron_umask - name: Randomize periodic crontabs replace: @@ -110,7 +117,7 @@ - { regexp: '^25\s*6((\s*\*){3})', replace: '{{ 59|random(start=1) }} {{ [0,1,3,4,5,6,7]|random }}\1' } - { regexp: '^47\s*6((\s*\*){2}\s*7)', replace: '{{ 59|random(start=1) }} {{ [0,1,3,4,5,6,7]|random }}\1' } - { regexp: '^52\s*6(\s*1(\s*\*){2})', replace: '{{ 59|random(start=1) }} {{ [0,1,3,4,5,6,7]|random }}\1' } - when: evolinux_system_cron_random + when: is_cron_installed.rc == 0 and evolinux_system_cron_random - include_role: name: ntpd diff --git a/logstash/tasks/logs.yml b/logstash/tasks/logs.yml index 9d5b5023..4417bd89 100644 --- a/logstash/tasks/logs.yml +++ b/logstash/tasks/logs.yml @@ -1,5 +1,10 @@ --- - +- name: Check if cron is installed + shell: "dpkg -l cron 2> /dev/null | grep -q -E '^(i|h)i'" + failed_when: False + changed_when: False + register: is_cron_installed + - name: "log rotation script" template: src: rotate_logstash_logs.j2 @@ -7,3 +12,4 @@ owner: root group: root mode: "0750" + when: is_cron_installed.rc == 0 diff --git a/postfix/tasks/packmail.yml b/postfix/tasks/packmail.yml index 67853643..9f00fa28 100644 --- a/postfix/tasks/packmail.yml +++ b/postfix/tasks/packmail.yml @@ -100,6 +100,12 @@ tags: - postfix +- name: Check if cron is installed + shell: "dpkg -l cron 2> /dev/null | grep -q -E '^(i|h)i'" + failed_when: False + changed_when: False + register: is_cron_installed + - name: enable spam.sh cron lineinfile: dest: /etc/cron.d/spam @@ -107,6 +113,7 @@ create: yes state: present mode: "0640" + when: is_cron_installed.rc == 0 tags: - postfix diff --git a/spamassasin/tasks/main.yml b/spamassasin/tasks/main.yml index 3353e882..078e684d 100644 --- a/spamassasin/tasks/main.yml +++ b/spamassasin/tasks/main.yml @@ -56,6 +56,12 @@ tags: - spamassassin +- name: Check if cron is installed + shell: "dpkg -l cron 2> /dev/null | grep -q -E '^(i|h)i'" + failed_when: False + changed_when: False + register: is_cron_installed + - name: enable sa-update.sh cron lineinfile: dest: /etc/cron.d/sa-update @@ -63,6 +69,7 @@ create: yes state: present mode: "0640" + when: is_cron_installed.rc == 0 tags: - spamassassin