From 27ea6bbac85c5888d26173bda15d4ce41935f03c Mon Sep 17 00:00:00 2001
From: Lars Beckers <lars.beckers@rwth-aachen.de>
Date: Mon, 23 Apr 2018 18:19:21 +0200
Subject: [PATCH] localization: timezone management is complicated

---
 localization/defaults/main.yml  |  2 ++
 localization/tasks/main.yml     | 17 ++++---------
 localization/tasks/timezone.yml | 42 +++++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 13 deletions(-)
 create mode 100644 localization/tasks/timezone.yml

diff --git a/localization/defaults/main.yml b/localization/defaults/main.yml
index de8cd0f..128eec5 100644
--- a/localization/defaults/main.yml
+++ b/localization/defaults/main.yml
@@ -8,3 +8,5 @@ localization_locale: locales/en
 localization_vconsole: vconsole.conf
 
 localization_prefer_timesyncd: False
+
+localization_timezone: Europe/Berlin
diff --git a/localization/tasks/main.yml b/localization/tasks/main.yml
index 6d54dbc..41a1cc7 100644
--- a/localization/tasks/main.yml
+++ b/localization/tasks/main.yml
@@ -3,22 +3,13 @@
 - include: locale.yml
 - meta: flush_handlers
 
-- name: ensure correct timezone setting
-  debconf:
-    name: tzdata
-    question: "{{ item.0 }}"
-    value: "{{ item.1 }}"
-    vtype: select
-  with_together:
-    - "{{ ['tzdata/Zones/Europe', 'tzdata/Areas'] }}"
-    - "{{ ['Berlin', 'Europe'] }}"
-  notify:
-    - update timezone
-  tags:
-    - timezone
+- include: timezone.yml
+- meta: flush_handlers
 
 - include: ntpd.yml
   when: not localization_prefer_timesyncd
+
 - include: timesyncd.yml
   when: localization_prefer_timesyncd
+
 - meta: flush_handlers
diff --git a/localization/tasks/timezone.yml b/localization/tasks/timezone.yml
new file mode 100644
index 0000000..08cd455
--- /dev/null
+++ b/localization/tasks/timezone.yml
@@ -0,0 +1,42 @@
+---
+
+- name: ensure correct timezone setting
+  debconf:
+    name: tzdata
+    question: "{{ item.0 }}"
+    value: "{{ item.1 }}"
+    vtype: select
+  with_together:
+    - "{{ ['tzdata/Areas', 'tzdata/Zones/'~localization_timezone.split('/')[0]] }}"
+    - "{{ localization_timezone.split('/') }}"
+  notify:
+    - update timezone
+  tags:
+    - timezone
+
+## see: https://github.com/debops/ansible-ntp/blob/master/tasks/timezone.yml
+# tzdata ignores debconf answers when configured non-interactively
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=704089
+
+- name: ensure correct timezone setting in /etc/timezone
+  copy:
+    content: "{{ localization_timezone }}\n"
+    dest: /etc/timezone
+    owner: root
+    group: root
+    mode: 0644
+  notify:
+    - update timezone
+  tags:
+    - timezone
+
+- name: ensure correct timezone link by /etc/localtime
+  file:
+    path: /etc/localtime
+    src: "/usr/share/zoneinfo/{{ localization_timezone }}"
+    state: link
+  notify:
+    - update timezone
+  tags:
+    - timezone
+
-- 
GitLab