From 5f656285c0e53bc6e23acbc5f084169743c71b5e Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Thu, 25 Aug 2016 14:19:51 +0300 Subject: [PATCH] roles/common: Add a dedicated playbook for ntp tasks Hosts with systemd should use its NTP client and explicitly remove the `ntp` packages. Hosts with older init systems should use `ntp`. --- roles/common/tasks/main.yml | 3 +-- roles/common/tasks/ntp.yml | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 roles/common/tasks/ntp.yml diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml index a5ede72..c2f6028 100644 --- a/roles/common/tasks/main.yml +++ b/roles/common/tasks/main.yml @@ -8,8 +8,7 @@ command: /usr/bin/timedatectl set-timezone {{ timezone }} tags: timezone -- name: Enable NTP - service: name=systemd-timesyncd enabled=yes +- include: ntp.yml tags: ntp - include: packages_{{ ansible_distribution }}.yml diff --git a/roles/common/tasks/ntp.yml b/roles/common/tasks/ntp.yml new file mode 100644 index 0000000..fa14dd3 --- /dev/null +++ b/roles/common/tasks/ntp.yml @@ -0,0 +1,25 @@ +--- +# Hosts running Ubuntu 16.04 or Debian 8 use the systemd init system and should +# use timedatectl as a network time client instead of the standalone ntp client. +# Earlier versions of those distros should use the ntp/ntpd package. + +- name: Set timezone + when: timezone is defined and ansible_service_mgr == 'systemd' + command: /usr/bin/timedatectl set-timezone {{ timezone }} + tags: timezone + +- name: Enable systemd's NTP client + when: ansible_service_mgr == 'systemd' + service: name=systemd-timesyncd enabled=yes + +- name: Uninstall ntp on modern Ubuntu/Debian + apt: name=ntp state=absent update_cache=yes + when: ansible_os_family == 'Debian' and ansible_service_mgr == 'systemd' + tags: packages + +- name: Install ntp on old Ubuntu/Debian + apt: name=ntp state=present update_cache=yes + when: ansible_os_family == 'Debian' and ansible_service_mgr != 'systemd' + tags: packages + +# vim: set ts=2 sw=2: