linux-system-roles.timesync

Zeitsynchronisation

ansible-lint.yml ansible-test.yml markdownlint.yml shellcheck.yml tft.yml tft_citest_bad.yml woke.yml

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

Installieren
ansible-galaxy install linux-system-roles.timesync
Lizenz
mit
Downloads
741.9k