From: Benjamin Cherian Date: Wed, 5 Sep 2018 16:59:50 +0000 (-0700) Subject: Add support for different NTP daemons X-Git-Tag: v3.1.13~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bb41a7da209bf3c29e8d23e748178ae4a8b1ad27;p=ceph-ansible.git Add support for different NTP daemons Allow user to choose between timesyncd, chronyd and ntpd Installation will default to timesyncd since it is distributed as part of the systemd installation for most distros. Added note indicating NTP daemon type is not used for containerized deployments. Fixes issue #3086 on Github Signed-off-by: Benjamin Cherian (cherry picked from commit 85071e6e530ddd80df35920d9fbe63047478d66b) --- diff --git a/group_vars/all.yml.sample b/group_vars/all.yml.sample index 8241d995a..a4970b671 100644 --- a/group_vars/all.yml.sample +++ b/group_vars/all.yml.sample @@ -105,10 +105,15 @@ dummy: # Whether or not to install the ceph-test package. #ceph_test: false -# Enable the ntp service by default to avoid clock skew on -# ceph nodes +# Enable the ntp service by default to avoid clock skew on ceph nodes +# Disable if an appropriate NTP client is already installed and configured #ntp_service_enabled: true +# Set type of NTP client daemon to use, valid entries are chronyd, ntpd or timesyncd +# Note that this selection is currently ignored on containerized deployments +#ntp_daemon_type: timesyncd + + # Set uid/gid to default '64045' for bootstrap directories. # '64045' is used for debian based distros. It must be set to 167 in case of rhel based distros. # These values have to be set according to the base OS used by the container image, NOT the host. diff --git a/group_vars/rhcs.yml.sample b/group_vars/rhcs.yml.sample index 551a3419c..1a3113056 100644 --- a/group_vars/rhcs.yml.sample +++ b/group_vars/rhcs.yml.sample @@ -105,10 +105,15 @@ fetch_directory: ~/ceph-ansible-keys # Whether or not to install the ceph-test package. #ceph_test: false -# Enable the ntp service by default to avoid clock skew on -# ceph nodes +# Enable the ntp service by default to avoid clock skew on ceph nodes +# Disable if an appropriate NTP client is already installed and configured #ntp_service_enabled: true +# Set type of NTP client daemon to use, valid entries are chronyd, ntpd or timesyncd +# Note that this selection is currently ignored on containerized deployments +#ntp_daemon_type: timesyncd + + # Set uid/gid to default '64045' for bootstrap directories. # '64045' is used for debian based distros. It must be set to 167 in case of rhel based distros. # These values have to be set according to the base OS used by the container image, NOT the host. diff --git a/roles/ceph-common/tasks/checks/check_mandatory_vars.yml b/roles/ceph-common/tasks/checks/check_mandatory_vars.yml index 497378d98..ee504faf9 100644 --- a/roles/ceph-common/tasks/checks/check_mandatory_vars.yml +++ b/roles/ceph-common/tasks/checks/check_mandatory_vars.yml @@ -88,4 +88,12 @@ msg: "fqdn configuration is not supported anymore. Use 'use_fqdn_yes_i_am_sure: true' if you really want to use it. See release notes for more details" when: - mon_use_fqdn or mds_use_fqdn - - not use_fqdn_yes_i_am_sure \ No newline at end of file + - not use_fqdn_yes_i_am_sure + +- name: validate ntp daemon type + fail: + msg: "ntp_daemon_type must be one of chronyd, ntpd, or timesyncd" + when: + - ntp_service_enabled + - ntp_daemon_type not in ['chronyd', 'ntpd', 'timesyncd'] + diff --git a/roles/ceph-common/tasks/misc/ntp_debian.yml b/roles/ceph-common/tasks/misc/ntp_debian.yml index f94003d7a..f1da045f1 100644 --- a/roles/ceph-common/tasks/misc/ntp_debian.yml +++ b/roles/ceph-common/tasks/misc/ntp_debian.yml @@ -1,11 +1,29 @@ --- -- name: install ntp on debian - package: - name: ntp - state: present +- name: setup ntpd + block: + - command: timedatectl set-ntp no + - package: + name: ntp + state: present + - service: + name: ntp + enabled: yes + state: started + when: ntp_daemon_type == "ntpd" -- name: start the ntp service - service: - name: ntp - enabled: yes - state: started +- name: setup chrony + block: + - command: timedatectl set-ntp no + - package: + name: chrony + state: present + - service: + name: chronyd + enabled: yes + state: started + when: ntp_daemon_type == "chronyd" + +- name: setup timesyncd + block: + - command: timedatectl set-ntp on + when: ntp_daemon_type == "timesyncd" diff --git a/roles/ceph-common/tasks/misc/ntp_rpm.yml b/roles/ceph-common/tasks/misc/ntp_rpm.yml index 91d2d7d8a..866667c2b 100644 --- a/roles/ceph-common/tasks/misc/ntp_rpm.yml +++ b/roles/ceph-common/tasks/misc/ntp_rpm.yml @@ -1,11 +1,29 @@ --- -- name: install ntp - package: - name: ntp - state: present +- name: setup ntpd + block: + - command: timedatectl set-ntp no + - package: + name: ntp + state: present + - service: + name: ntpd + enabled: yes + state: started + when: ntp_daemon_type == "ntpd" -- name: start the ntp service - service: - name: ntpd - enabled: yes - state: started +- name: setup chrony + block: + - command: timedatectl set-ntp no + - package: + name: chrony + state: present + - service: + name: chronyd + enabled: yes + state: started + when: ntp_daemon_type == "chronyd" + +- name: setup timesyncd + block: + - command: timedatectl set-ntp on + when: ntp_daemon_type == "timesyncd" diff --git a/roles/ceph-defaults/defaults/main.yml b/roles/ceph-defaults/defaults/main.yml index 4ae97fea4..b66bfe4fa 100644 --- a/roles/ceph-defaults/defaults/main.yml +++ b/roles/ceph-defaults/defaults/main.yml @@ -97,10 +97,15 @@ suse_package_dependencies: # Whether or not to install the ceph-test package. ceph_test: false -# Enable the ntp service by default to avoid clock skew on -# ceph nodes +# Enable the ntp service by default to avoid clock skew on ceph nodes +# Disable if an appropriate NTP client is already installed and configured ntp_service_enabled: true +# Set type of NTP client daemon to use, valid entries are chronyd, ntpd or timesyncd +# Note that this selection is currently ignored on containerized deployments +ntp_daemon_type: timesyncd + + # Set uid/gid to default '64045' for bootstrap directories. # '64045' is used for debian based distros. It must be set to 167 in case of rhel based distros. # These values have to be set according to the base OS used by the container image, NOT the host.