An Ansible role that configures systemd-timesyncd.
- Ansible 2.9
Set the system time zone. There is no default. The prefix is system_
on
purpose, so this variable can be used across different roles that also set the
time zone.
system_timezone: Europe/Berlin
NTP servers are the preferred servers. They should be set to your networks internal NTP servers.
ntp_servers:
- ntp1.domain.org
- ntp2.domain.org
- ntp3.domain.org
Use regional pools for fallback servers:
ntp_fallback_servers:
- 0.europe.pool.ntp.org
- 1.europe.pool.ntp.org
- 2.europe.pool.ntp.org
- 3.europe.pool.ntp.org
Remove legacy timesync packages (ntp, chrony):
systemd_timesyncd_purge_legacy_packages: yes
---
# requirements.yml
collections:
- name: community.general
version: X.Y.Z
roles:
- name: idiv_biodiversity.systemd_timesyncd
src: https://github.com/idiv-biodiversity/ansible-role-systemd-timesyncd
version: vX.Y.Z
...
Write a top-level playbook:
---
- name: head server
hosts: head
roles:
- role: idiv_biodiversity.systemd_timesyncd
tags:
- systemd
- systemd-timesyncd
- timesync
...
Define the role dependency in meta/main.yml
:
---
dependencies:
- role: idiv_biodiversity.systemd_timesyncd
tags:
- systemd
- systemd-timesyncd
- timesync
...
With these tags, only specific parts of the role can be triggered:
timezone
: just set the time zonesystemd-timesyncd
: configure/etc/systemd/timesyncd.conf.d/ansible.conf
and restart the service if changedservice
,service-timesyncd
andtimesyncd-service
: enable and start the service; the purpose of the plainservice
tag is that you can enable and start all services across roles by using this tag, e.g.ansible-playbook site.yml -t service
The tags from the Example Playbook are timesyncd
and
timesync
. In case you switch from different time synchronization roles, the
timesync
tag should come in handy, in case these roles also use this tag.
MIT
This role was created in 2017 by Christian Krause aka wookietreiber at GitHub, HPC cluster systems administrator at the German Centre for Integrative Biodiversity Research (iDiv).