kolla-ansible/ansible/roles/prechecks/tasks/timesync_checks.yml
Mark Goddard 46aeb9843f Fix prechecks in check mode
When running in check mode, some prechecks previously failed because
they use the command module which is silently not run in check mode.
Other prechecks were not running correctly in check mode due to e.g.
looking for a string in empty command output or not querying which
containers are running.

This change fixes these issues.

Closes-Bug: #2002657
Change-Id: I5219cb42c48d5444943a2d48106dc338aa08fa7c
2023-01-12 14:27:36 +00:00

48 lines
1.5 KiB
YAML

---
- block:
- name: Check for a running host NTP daemon # noqa command-instead-of-module
vars:
prechecks_host_ntp_daemons:
- chrony
- chronyd
- ntp
- ntpd
- systemd-timesyncd
become: true
command:
cmd: "systemctl is-active {{ prechecks_host_ntp_daemons | join(' ') }}"
register: systemctl_is_active
changed_when: false
failed_when: false
check_mode: false
- name: Fail if a host NTP daemon is not running
fail:
msg: >-
No host NTP daemon is running.
Please install and configure a host NTP daemon.
Alternatively, set 'prechecks_enable_host_ntp_checks' to 'false' to
disable this check if not using one of the following NTP daemons:
chrony, ntpd, systemd-timesyncd.
when:
- systemctl_is_active.rc != 0
- name: Checking timedatectl status
become: true
command: timedatectl status
register: timedatectl_status
changed_when: false
check_mode: false
- name: Fail if the clock is not synchronized
fail:
msg: >-
timedatectl sees the system clock as unsynchronized.
Please wait for synchronization.
Alternatively, set 'prechecks_enable_host_ntp_checks' to 'false' to
disable this check if your NTP daemon is not recognised by
'timedatectl status'.
when:
- "'synchronized: yes' not in timedatectl_status.stdout"
when: prechecks_enable_host_ntp_checks | bool