From ec25c39d9881ceabc4c48cce0e4134aa0702be92 Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Mon, 14 Dec 2015 21:45:08 +0200
Subject: [PATCH] Better ntp sync handling.

---
 handlers/main.yml      |  3 +--
 tasks/ntpd.yml         | 16 +++++-----------
 templates/ntpd.conf.j2 |  3 +++
 vars/main.yml          |  9 +++++++++
 4 files changed, 18 insertions(+), 13 deletions(-)
 create mode 100644 templates/ntpd.conf.j2

diff --git a/handlers/main.yml b/handlers/main.yml
index ea0a78b..53894b2 100644
--- a/handlers/main.yml
+++ b/handlers/main.yml
@@ -26,8 +26,7 @@
 
 - name: Restart ntpd
   service:
-    name: '{{ "ntpd" if ansible_os_family == "OpenBSD" else omit }}'
-    name: '{{ "ntp" if ansible_os_family == "Debian" else omit }}'
+    name: '{{ ntpd_service[ansible_os_family] }}'
     state: restarted
 
 - name: Restart systemd-timesyncd
diff --git a/tasks/ntpd.yml b/tasks/ntpd.yml
index 302b11b..511575d 100644
--- a/tasks/ntpd.yml
+++ b/tasks/ntpd.yml
@@ -12,23 +12,17 @@
     cache_valid_time: 3600
 
 - name: Configure ntpd
-  lineinfile:
-    line: '{{ "servers pool.ntp.org" if ansible_os_family == "OpenBSD" else omit }}'
-    line: '{{ "server debian.pool.ntp.org" if ansible_os_family == "OpenBSD" else omit }}'
-    regexp: '{{ "^servers " if ansible_os_family == "OpenBSD" else omit }}'
-    regexp: '{{ "^server " if ansible_os_family == "Debian" else omit }}'
-    dest: '{{ "/etc/ntpd.conf" if ansible_os_family == "OpenBSD" else omit }}'
-    dest: '{{ "/etc/ntp.conf" if ansible_os_family == "Debian" else omit }}'
-    create: yes
+  template:
+    src: ntpd.conf.j2
+    dest: '{{ ntpd_conf[ansible_os_family] }}'
     owner: root
-    group: wheel
+    group: '{{ root_group[ansible_os_family] }}'
     mode: '0644'
   notify:
   - Restart ntpd
 
 - name: Enable ntpd
   service:
-    name: '{{ "ntpd" if ansible_os_family == "OpenBSD" else omit }}'
-    name: '{{ "ntp" if ansible_os_family == "Debian" else omit }}'
+    name: '{{ ntpd_service[ansible_os_family] }}'
     enabled: yes
     state: started
diff --git a/templates/ntpd.conf.j2 b/templates/ntpd.conf.j2
new file mode 100644
index 0000000..a52094b
--- /dev/null
+++ b/templates/ntpd.conf.j2
@@ -0,0 +1,3 @@
+{% for i in range(4) %}
+server {{ i }}.{{ ntp_pool[ansible_os_family] }}
+{% endfor %}
diff --git a/vars/main.yml b/vars/main.yml
index 853fa99..6750390 100644
--- a/vars/main.yml
+++ b/vars/main.yml
@@ -47,3 +47,12 @@ root_group:
 cert_dir:
     OpenBSD: /etc/ssl/certs
     Debian: /usr/local/share/ca-certificates
+ntpd_conf:
+    OpenBSD: /etc/ntpd.conf
+    Debian: /etc/ntp.conf
+ntp_pool:
+    OpenBSD: pool.ntp.org
+    Debian: debian.pool.ntp.org
+ntpd_service:
+    OpenBSD: ntpd
+    Debian: ntp
-- 
GitLab