From 0e33c704ede9b9d62797ee2a521d63f74b927f45 Mon Sep 17 00:00:00 2001
From: Adar Nimrod <nimrod@shore.co.il>
Date: Mon, 14 Dec 2015 19:23:46 +0200
Subject: [PATCH] Added ntp sync handling for Debian and OpenBSD.

---
 handlers/main.yml           | 11 +++++++++++
 tasks/ntp.yml               |  6 ++++++
 tasks/ntpd.yml              | 34 ++++++++++++++++++++++++++++++++++
 tasks/systemd-timesyncd.yml | 16 ++++++++++++++++
 4 files changed, 67 insertions(+)
 create mode 100644 tasks/ntpd.yml
 create mode 100644 tasks/systemd-timesyncd.yml

diff --git a/handlers/main.yml b/handlers/main.yml
index b745bf9..ea0a78b 100644
--- a/handlers/main.yml
+++ b/handlers/main.yml
@@ -23,3 +23,14 @@
   service:
     name: collectd
     state: restarted
+
+- name: Restart ntpd
+  service:
+    name: '{{ "ntpd" if ansible_os_family == "OpenBSD" else omit }}'
+    name: '{{ "ntp" if ansible_os_family == "Debian" else omit }}'
+    state: restarted
+
+- name: Restart systemd-timesyncd
+  service:
+    name: systemd-timesyncd
+    state: restarted
diff --git a/tasks/ntp.yml b/tasks/ntp.yml
index e03b087..795141b 100644
--- a/tasks/ntp.yml
+++ b/tasks/ntp.yml
@@ -3,3 +3,9 @@
 - name: Assert
   assert:
     that: ansible_os_family in [ 'Debian', 'OpenBSD' ]
+
+- include: ntp_OpenBSD.yml
+  when: ansible_os_family == 'OpenBSD' or  not ansible_init == 'systemd'
+
+- include: systemd-timesyncd.yml
+  when: ansible_os_family == 'Debian' and ansible_init == 'systemd'
diff --git a/tasks/ntpd.yml b/tasks/ntpd.yml
new file mode 100644
index 0000000..302b11b
--- /dev/null
+++ b/tasks/ntpd.yml
@@ -0,0 +1,34 @@
+---
+
+- assert:
+    that: ansible_os_family in [ 'Debian', 'OpenBSD' ]
+
+- name: apt install ntpd
+  when: ansible_pkg_mgr == 'apt'
+  apt:
+    name: ntp
+    state: present
+    update_cache: yes
+    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
+    owner: root
+    group: wheel
+    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 }}'
+    enabled: yes
+    state: started
diff --git a/tasks/systemd-timesyncd.yml b/tasks/systemd-timesyncd.yml
new file mode 100644
index 0000000..d3e7429
--- /dev/null
+++ b/tasks/systemd-timesyncd.yml
@@ -0,0 +1,16 @@
+---
+
+- name: Configure systemd-timesyncd
+  lineinfile:
+    dest: /etc/systemd/timesyncd.conf
+    line: 'NTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org'
+    regexp: '^NTP='
+    state: present
+  notify:
+  - 'Restart systemd-timesyncd'
+
+- name: Enable systemd-timesyncd
+  service:
+    name: systemd-timesyncd
+    enabled: yes
+    state: started
-- 
GitLab