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