linux-system-roles.timesync
Zeitsynchronisation
Diese Rolle installiert und konfiguriert eine NTP- und/oder PTP-Implementation, um
als NTP-Client und/oder PTP-Slave zu arbeiten, um die Systemuhr mit
NTP-Servern und/oder Grandmastern in PTP-Domänen zu synchronisieren. Unterstützte NTP/PTP Implementierungen sind chrony, ntp (die Referenzimplementation) und linuxptp.
Warnung
Die Rolle ersetzt die Konfiguration des angegebenen oder erkannten Anbieters auf dem verwalteten
Host. Frühere Einstellungen gehen verloren, selbst wenn sie in den Rollenvariablen nicht
angegeben sind (es wird nicht versucht, frühere Einstellungen zu bewahren oder zusammenzuführen,
die Konfigurationsdateien werden vollständig ersetzt). Die einzige bewahrte Einstellung ist die Wahl
des Anbieters, wenn timesync_ntp_provider
nicht definiert ist (siehe die
Beschreibung dieser Variablen unten).
Anforderungen
Siehe unten
Sammlung Anforderungen
Um rpm-ostree
-Systeme zu verwalten, benötigt die Rolle Module aus externen
Sammlungen. Verwenden Sie den folgenden Befehl, um sie zu installieren:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Rollenvariablen
Die Variablen, die an diese Rolle übergeben werden können, sind wie folgt:
# Liste von NTP-Servern
timesync_ntp_servers:
- hostname: foo.example.com # Hostname oder Adresse des Servers
minpoll: 4 # Minimales Abfrageintervall (Standard 6)
maxpoll: 8 # Maximales Abfrageintervall (Standard 10)
iburst: true # Flag, das eine schnelle anfängliche Synchronisation aktiviert
# (Standard false)
pool: false # Flag, das anzeigt, dass jede aufgelöste Adresse
# des Hostnamens ein separater NTP-Server ist
# (Standard false)
nts: false # Flag, das das Network Time Security (NTS)
# Authentifizierungsmechanismus aktiviert (Standard false,
# unterstützt nur mit chrony >= 4.0)
prefer: false # Flag, das die Quelle als bevorzugt markiert für
# Synchronisation über andere Quellen
# (Standard false)
trust: false # Flag, das die Quelle als vertrauenswürdig markiert über
# Quellen, die dieses Flag nicht haben
# (Standard false)
xleave: false # Flag, das den interleaved Modus aktiviert (Standard false)
filter: 1 # Anzahl der NTP-Messungen pro Uhrzeitaktualisierung
# (Standard 1)
# Liste der PTP-Domänen
timesync_ptp_domains:
- number: 0 # PTP-Domainnummer
interfaces: [eth0] # Liste der Schnittstellen in der Domäne
delay: 0.000010 # Angenommene maximale Netzwerklatenz zum
# Grandmaster in Sekunden (Standard 100 Mikrosekunden)
transport: UDPv4 # Netzwerktransport: UDPv4, UDPv6, L2
# (Standard UDPv4)
udp_ttl: 1 # TTL für UDPv4 und UDPv6 Transporte
# (Standard 1)
hybrid_e2e: false # Flag, das unicast End-to-End verzögerte
# Anfragen aktiviert (Standard false)
# Flag, das die Verwendung von NTP-Servern aktiviert, die von DHCP bereitgestellt werden (Standard false)
timesync_dhcp_ntp_servers: false
# Minimale Uhrabweichung, die durch einen Sprung korrigiert werden kann (Standard ist
# spezifisch für die NTP/PTP-Implementierung: chrony 1.0, ntp 0.128, linuxptp 0.00002).
# Ein Schwellenwert von null deaktiviert alle Sprünge.
timesync_step_threshold: 1.0
# Maximale Rootdistanz, um Messungen von NTP-Servern zu akzeptieren
# Setzen Sie es auf 0, um den Standard des Anbieters zu verwenden
timesync_max_distance: 0
# Minimale Anzahl von auswählbaren Zeitquellen, die benötigt werden, um die Synchronisation
# der Uhr zu ermöglichen (Standard 1)
timesync_min_sources: 1
# Liste der Schnittstellen, die für NTP mit Hardware-Zeitstempelung aktiviert werden sollen
# (Standard leere Liste). Als spezieller Wert aktiviert '*' die Zeitstempelung auf allen
# Schnittstellen, die dies unterstützen.
timesync_ntp_hwts_interfaces: ["*"]
# Name des Pakets, das installiert und für NTP konfiguriert werden soll.
# Mögliche Werte sind "chrony" und "ntp". Wenn nicht definiert, wird der aktuell aktive
# oder aktivierte Dienst konfiguriert. Wenn kein Dienst aktiv oder aktiviert ist, wird ein
# paket spezifisch für das System und seine Version ausgewählt.
timesync_ntp_provider: chrony
# Manchmal benötigen Administratoren erweiterte Konfigurationen für chrony, die
# nicht durch die vordefinierten Einstellungen in dieser Rolle abgedeckt sind.
# 'timesync_chrony_custom_settings' ermöglicht es, eine Liste von benutzerdefinierten Einstellungen
# für die chrony.conf-Datei zu definieren, indem eine Liste von Einstellungen bereitgestellt wird.
# Zum Beispiel, um Debugging durchzuführen, könnte man Messungen, Statistiken und Tracking protokollieren.
# Diese Informationen werden normalerweise im Verzeichnis /var/log/chrony gespeichert. Dafür
# müssen zwei verschiedene Einstellungen (logdir und log) definiert werden, wie folgt:
timesync_chrony_custom_settings:
- "logdir /var/log/chrony"
- "log measurements statistics tracking"
# Diese Variable gilt nur für transaktionale Update-Systeme.
# Wenn ein transaktionales Update einen Neustart erfordert, wird die Rolle mit dem
# Neustart fortfahren, wenn `timesync_transactional_update_reboot_ok` auf `true` gesetzt ist.
# Wenn auf `false` gesetzt, informiert die Rolle den Benutzer, dass ein Neustart erforderlich ist,
# was ein benutzerdefiniertes Handling der Neustartanforderung ermöglicht. Wird diese Variable nicht
# gesetzt, wird die Rolle fehlschlagen, um sicherzustellen, dass die Neustartanforderung nicht übersehen wird.
# Für nicht-transaktionale Update-Systeme wird diese Variable ignoriert.
timesync_transactional_update_reboot_ok: true
Beispiel Playbooks
Installieren und konfigurieren Sie ntp, um die Systemuhr mit drei NTP-Servern zu synchronisieren:
- name: Zeitsynchronisation mit 3 Servern verwalten
hosts: targets
vars:
timesync_ntp_servers:
- hostname: foo.example.com
iburst: true
- hostname: bar.example.com
iburst: true
- hostname: baz.example.com
iburst: true
roles:
- linux-system-roles.timesync
Installieren und konfigurieren Sie linuxptp, um die Systemuhr mit einem
Grandmaster in PTP-Domainnummer 0 zu synchronisieren, die auf der Schnittstelle eth0 zugänglich ist:
- name: Zeitsynchronisation in PTP-Domain 0, Schnittstelle eth0 verwalten
hosts: targets
vars:
timesync_ptp_domains:
- number: 0
interfaces: [eth0]
roles:
- linux-system-roles.timesync
Installieren und konfigurieren Sie chrony und linuxptp, um die Systemuhr mit mehreren NTP-Servern und PTP-Domänen für eine sehr genaue und ausfallsichere Synchronisation zu synchronisieren:
- name: Verwaltung mehrerer NTP-Server und PTP-Domänen
hosts: targets
vars:
timesync_ntp_servers:
- hostname: foo.example.com
maxpoll: 6
- hostname: bar.example.com
maxpoll: 6
- hostname: baz.example.com
maxpoll: 6
timesync_ptp_domains:
- number: 0
interfaces: [eth0, eth1]
transport: L2
delay: 0.000010
- number: 1
interfaces: [eth2]
transport: UDPv4
delay: 0.000010
roles:
- linux-system-roles.timesync
Installieren und konfigurieren Sie chrony mit mehreren NTP-Servern und benutzerdefinierten erweiterten
Einstellungen: loggen Sie Messungen
, Statistiken
und Tracking
in /var/log/chrony
:
- name: Verwaltung mit benutzerdefinierten erweiterten Einstellungen
hosts: targets
vars:
timesync_ntp_servers:
- hostname: foo.example.com
- hostname: bar.example.com
- hostname: baz.example.com
timesync_chrony_custom_settings:
- "logdir /var/log/chrony"
- "log measurements statistics tracking"
roles:
- linux-system-roles.timesync
rpm-ostree
Siehe README-ostree.md