role(timesync): add role for timesync setup via systemd-timesyncd
This commit is contained in:
7
roles/timesync_setup/defaults/main.yml
Normal file
7
roles/timesync_setup/defaults/main.yml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
timesyncd_setup_timezone: Europe/Berlin
|
||||||
|
timesyncd_setup_ntp_servers:
|
||||||
|
- rustime02.rus.uni-stuttgart.de
|
||||||
|
- ntp2.fau.de
|
||||||
|
- rustime01.rus.uni-stuttgart.de
|
||||||
|
- ntp1.fau.de
|
||||||
35
roles/timesync_setup/handlers/main.yml
Normal file
35
roles/timesync_setup/handlers/main.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
# handlers file for systemd-timesyncd
|
||||||
|
- name: reload ntp
|
||||||
|
become: true
|
||||||
|
listen: reload_ntp
|
||||||
|
ansible.builtin.shell:
|
||||||
|
timedatectl set-ntp false || true;
|
||||||
|
timedatectl set-ntp true || true;
|
||||||
|
|
||||||
|
- name: reload timesyncd
|
||||||
|
become: true
|
||||||
|
listen: reload_timesyncd
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: systemd-timesyncd
|
||||||
|
state: reloaded
|
||||||
|
|
||||||
|
- name: restart timesyncd
|
||||||
|
become: true
|
||||||
|
listen: restart_timesyncd
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: systemd-timesyncd
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: reconfigure timezone
|
||||||
|
become: true
|
||||||
|
listen: reconfigure_timezone
|
||||||
|
ansible.builtin.shell:
|
||||||
|
DEBIAN_FRONTEND=noninteractive \
|
||||||
|
dpkg-reconfigure --frontend noninteractive tzdata
|
||||||
|
|
||||||
|
- name: sync rtc
|
||||||
|
become: true
|
||||||
|
listen: sync_rtc
|
||||||
|
ansible.builtin.command:
|
||||||
|
timedatectl set-local-rtc 0
|
||||||
65
roles/timesync_setup/tasks/main.yml
Normal file
65
roles/timesync_setup/tasks/main.yml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
---
|
||||||
|
- name: set timezone in /etc/localtime
|
||||||
|
become: true
|
||||||
|
ansible.builtin.file:
|
||||||
|
src: /usr/share/zoneinfo/{{ timesyncd_setup_timezone }}
|
||||||
|
dest: /etc/localtime
|
||||||
|
state: link
|
||||||
|
force: true
|
||||||
|
notify:
|
||||||
|
- reconfigure_timezone
|
||||||
|
- reload_ntp
|
||||||
|
|
||||||
|
- name: set timezone in /etc/timezone
|
||||||
|
become: true
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
state: present
|
||||||
|
dest: /etc/timezone
|
||||||
|
regexp: '.*'
|
||||||
|
line: '{{ timesyncd_setup_timezone }}'
|
||||||
|
insertbefore: EOF
|
||||||
|
create: true
|
||||||
|
mode: '0644'
|
||||||
|
notify:
|
||||||
|
- reconfigure_timezone
|
||||||
|
- reload_ntp
|
||||||
|
|
||||||
|
- name: set timezone via systemd
|
||||||
|
become: true
|
||||||
|
ansible.builtin.command:
|
||||||
|
timedatectl set-timezone {{ timesyncd_setup_timezone }}
|
||||||
|
|
||||||
|
- name: set ntp config in /etc/systemd/timesyncd.conf
|
||||||
|
become: true
|
||||||
|
community.general.ini_file:
|
||||||
|
path: /etc/systemd/timesyncd.conf
|
||||||
|
section: Time
|
||||||
|
option: NTP
|
||||||
|
value: '{{ timesyncd_setup_ntp_servers | join(" ") }}'
|
||||||
|
backup: true
|
||||||
|
notify:
|
||||||
|
- reload_ntp
|
||||||
|
- restart_timesyncd
|
||||||
|
- sync_rtc
|
||||||
|
|
||||||
|
- name: enable systemd-timesyncd unit
|
||||||
|
become: true
|
||||||
|
service:
|
||||||
|
name: systemd-timesyncd
|
||||||
|
enabled: true
|
||||||
|
notify:
|
||||||
|
- reload_ntp
|
||||||
|
- restart_timesyncd
|
||||||
|
- sync_rtc
|
||||||
|
|
||||||
|
- name: flush handlers
|
||||||
|
ansible.builtin.meta: flush_handlers
|
||||||
|
|
||||||
|
# - name: wait for timesyncd to synchronize
|
||||||
|
# ansible.builtin.command: systemctl status systemd-timesyncd
|
||||||
|
# retries: 60
|
||||||
|
# delay: 3
|
||||||
|
# register: task_result
|
||||||
|
# until:
|
||||||
|
# - task_result.rc == 0
|
||||||
|
# - task_result.stdout is search('[Ss]ynchroniz.* to time server')
|
||||||
Reference in New Issue
Block a user