--- #################################################################### # WARNING: These are designed specifically for Ansible tests # # and should not be used as examples of how to write Ansible roles # #################################################################### # Copyright (c) Ansible Project # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) # SPDX-License-Identifier: GPL-3.0-or-later - name: Ensure /etc/cron.d directory exists file: path: /etc/cron.d state: directory - name: Create EMAIL cron var cronvar: name: EMAIL value: doug@ansibmod.con.com register: create_cronvar1 - name: Create EMAIL cron var again cronvar: name: EMAIL value: doug@ansibmod.con.com register: create_cronvar2 - name: Check cron var value shell: crontab -l -u root | grep -c EMAIL=doug@ansibmod.con.com register: varcheck1 - name: Modify EMAIL cron var cronvar: name: EMAIL value: jane@ansibmod.con.com register: create_cronvar3 - name: Check cron var value again shell: crontab -l -u root | grep -c EMAIL=jane@ansibmod.con.com register: varcheck2 - name: Remove EMAIL cron var cronvar: name: EMAIL state: absent register: remove_cronvar1 - name: Remove EMAIL cron var again cronvar: name: EMAIL state: absent register: remove_cronvar2 - name: Check cron var value again shell: crontab -l -u root | grep -c EMAIL register: varcheck3 failed_when: varcheck3.rc == 0 - name: Add cron var to custom file cronvar: name: TESTVAR value: somevalue cron_file: cronvar_test register: custom_cronfile1 - name: Add cron var to custom file again cronvar: name: TESTVAR value: somevalue cron_file: cronvar_test register: custom_cronfile2 - name: Check cron var value in custom file command: grep -c TESTVAR=somevalue {{ cron_config_path }}/cronvar_test register: custom_varcheck1 - name: Change cron var in custom file cronvar: name: TESTVAR value: newvalue cron_file: cronvar_test register: custom_cronfile3 - name: Check cron var value in custom file command: grep -c TESTVAR=newvalue {{ cron_config_path }}/cronvar_test register: custom_varcheck2 - name: Remove cron var from custom file cronvar: name: TESTVAR value: newvalue cron_file: cronvar_test state: absent register: custom_remove_cronvar1 - name: Remove cron var from custom file again cronvar: name: TESTVAR value: newvalue cron_file: cronvar_test state: absent register: custom_remove_cronvar2 - name: Check cron var value command: grep -c TESTVAR=newvalue {{ cron_config_path }}/cronvar_test register: custom_varcheck3 failed_when: custom_varcheck3.rc == 0 - name: Ensure cronvar tasks did the right thing assert: that: - create_cronvar1 is changed - create_cronvar2 is not changed - create_cronvar3 is changed - remove_cronvar1 is changed - remove_cronvar2 is not changed - varcheck1.stdout == '1' - varcheck2.stdout == '1' - varcheck3.stdout == '0' - custom_remove_cronvar1 is changed - custom_remove_cronvar2 is not changed - custom_varcheck1.stdout == '1' - custom_varcheck2.stdout == '1' - custom_varcheck3.stdout == '0' - name: Add variable with empty string community.general.cronvar: name: EMPTY_VAR value: "" state: present - name: Assert empty var present ansible.builtin.shell: crontab -l register: result changed_when: false - name: Assert line is quoted ansible.builtin.assert: that: >- 'EMPTY_VAR=""' in result.stdout - name: Attempt to add cron variable to non-existent parent directory cronvar: name: NOPARENT_VAR value: noparentval cron_file: /nonexistent/foo user: root register: invalid_directory_cronvar_result ignore_errors: true - name: Assert that the cronvar task failed due to invalid directory ansible.builtin.assert: that: - invalid_directory_cronvar_result is failed - >- "Parent directory '/nonexistent' does not exist for cron_file: '/nonexistent/foo'" == invalid_directory_cronvar_result.msg