--- # tasks file for ensure_timezone - name: 'package discovery' when: - ansible_system == 'Linux' - packages is not defined ansible.builtin.package_facts: - name: 'service discovery' when: - ansible_system == 'Linux' - services is not defined ansible.builtin.package_facts: - name: 'flush handlers' meta: 'flush_handlers' - name: 'Set timezone' community.general.timezone: hwclock: '{{ timezone.hwclock }}' name: '{{ timezone.name }}' register: 'results' - name: 'Restart cron if TZ changed' notify: - 'service_facts' when: - services is defined - services['crond.service'] is defined - results.diff.before != results.diff.after service: name: 'crond.service' state: 'restarted' - name: 'Restart if time zone changed' when: - ansible_system == 'Linux' - services is defined - services[item.name] is defined ansible.builtin.service: enabled: '{{ item.enabled }}' name: '{{ item.name }}' state: '{{ item.state }}' loop: - enabled: 'yes' name: 'crond' state: 'restarted' - enabled: 'yes' name: 'crond.service' state: 'restarted' loop_control: label: '{{ item.name }} will be {{ item.state }}' notify: - 'ensure_timezone.package_facts' - 'ensure_timezone.service_facts' - name: 'ensure services' when: - ansible_system == 'Linux' - services is defined - services[item.name] is defined ansible.builtin.service: enabled: '{{ item.enabled }}' name: '{{ item.name }}' state: '{{ item.state }}' loop: - enabled: 'yes' name: 'crond' state: 'started' - enabled: 'yes' name: 'crond.service' state: 'started' loop_control: label: '{{ item.name }} will be {{ item.state }}' notify: - 'ensure_timezone.package_facts' - 'ensure_timezone.service_facts' - name: 'flush handlers' meta: 'flush_handlers'