Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:ntp [21.02.2024 22:07. ] – [firewalld] djangolinux:ntp [21.03.2024 08:41. ] (aktuell) – [Orchestrierung - Installation und Konfiguration des chronyd mit Hilfe von Ansible] Typofixing django
Zeile 1: Zeile 1:
 +{{htmlmetatags>metatag-robots=() 
 +metatag-keywords=(Ansible,Arch Linux,ntp, chrony, timeserver,stratum,chronyc,chronyd) 
 +metatag-description=(NTP-Zeitserver mit chrony unter Arch Linux einrichten und nutzen)
 +}}
 ====== NTP-Zeitserver mit chrony unter Linux einrichten und nutzen ====== ====== NTP-Zeitserver mit chrony unter Linux einrichten und nutzen ======
 {{:linux:hourglass.png?nolink&100 |Bild: stilisierte Sanduhr}} Basis für eine zuverlässige Kommunikation zwischen netzwerkbasierten Diensten und Servern ist unter anderem eine exakte Zeitmessung. Nur so kann gewährleistet werden das Systemkomponenten wie z.B. systemd-Timer und Cronjobs zur richtigen Zeit gestartet werden und laufen. Einzelne Systeme können mit Hilfe des **N**etwork **T**ime **P**rotocol kurz **NTP** ihre Systemzeiten mit einem zentralen Zeitserver oder einem Pool von Servern zu synchronisieren. NTP wurde 1985 von David L. Mills entwickelt und wurde als [[https://tools.ietf.org/html/rfc958|RFC 958]] definiert um eine zuverlässige Zeitgabe über Netzwerke mit variabler Paketlaufzeit über das verbindungslose Protokolls **UDP** zu ermöglichen und bekam von der Internet Assigned Numbers Authority den UDP-Ports **123** zugewiesen. Das **RFC958** wurde in den letzten Jahren mehrfach überarbeitet und ergänzt und wurde letztmalig mit **[[https://www.rfc-editor.org/rfc/rfc9109|RFC 9109 - Network Time Protocol Version 4: Port Randomization]]** ergänzt. {{:linux:hourglass.png?nolink&100 |Bild: stilisierte Sanduhr}} Basis für eine zuverlässige Kommunikation zwischen netzwerkbasierten Diensten und Servern ist unter anderem eine exakte Zeitmessung. Nur so kann gewährleistet werden das Systemkomponenten wie z.B. systemd-Timer und Cronjobs zur richtigen Zeit gestartet werden und laufen. Einzelne Systeme können mit Hilfe des **N**etwork **T**ime **P**rotocol kurz **NTP** ihre Systemzeiten mit einem zentralen Zeitserver oder einem Pool von Servern zu synchronisieren. NTP wurde 1985 von David L. Mills entwickelt und wurde als [[https://tools.ietf.org/html/rfc958|RFC 958]] definiert um eine zuverlässige Zeitgabe über Netzwerke mit variabler Paketlaufzeit über das verbindungslose Protokolls **UDP** zu ermöglichen und bekam von der Internet Assigned Numbers Authority den UDP-Ports **123** zugewiesen. Das **RFC958** wurde in den letzten Jahren mehrfach überarbeitet und ergänzt und wurde letztmalig mit **[[https://www.rfc-editor.org/rfc/rfc9109|RFC 9109 - Network Time Protocol Version 4: Port Randomization]]** ergänzt.
Zeile 26: Zeile 30:
 ==== Chrony unter Arch Linux installieren ==== ==== Chrony unter Arch Linux installieren ====
 Bei der Installation des chrony-Paketes verwenden wir unter **[[https://archlinux.org/|Arch Linux]]** den Paketmanager **''pacman''**. Bei der Installation des chrony-Paketes verwenden wir unter **[[https://archlinux.org/|Arch Linux]]** den Paketmanager **''pacman''**.
-  - Als User: <code> $ sudo pacman -S chrony -y </code> +  - Als User: <code> $ sudo pacman -S chrony</code> 
-  - Als Nutzer mit Root-Rechten entsprechend: <code> $ sudo pacman -S chrony -y </code>+  - Als Nutzer mit Root-Rechten entsprechend: <code> pacman -S chrony</code>
  
 ===== Paketinhalt ===== ===== Paketinhalt =====
Zeile 1774: Zeile 1778:
 ++++ ++++
 ===== Dokumentation ===== ===== Dokumentation =====
-Eine ausführliche Onlinedokumentation des Chrony Projekts findet sich auf der entsprechnden Projektseite → https://chrony-project.org/documentation.html Bei der Installation des aktuellen chrony-Paketes z.B. unter Arch Linux finden sich im Verzeichnis **''/usr/share/doc/chrony/''** auch entsprechende FAQs, READMEs, NEWS und Beispiele.+Eine ausführliche Onlinedokumentation des Chrony Projekts findet sich auf der entsprechenden Projektseite → https://chrony-project.org/documentation.html Bei der Installation des aktuellen chrony-Paketes z.B. unter Arch Linux finden sich im Verzeichnis **''/usr/share/doc/chrony/''** auch entsprechende FAQs, READMEs, NEWS und Beispiele.
    # tree /usr/share/doc/chrony/    # tree /usr/share/doc/chrony/
 <code>/usr/share/doc/chrony// <code>/usr/share/doc/chrony//
Zeile 4584: Zeile 4588:
  
 # Django : 2024-02-18 # Django : 2024-02-18
-server pool.ntp.org iburst+pool pool.ntp.org iburst
  
 ####################################################################### #######################################################################
Zeile 4907: Zeile 4911:
 Die relevanten KOnfigurationsoptionen können wir mit Hilfe von **''grep''** uns auch gerafft anzeigen lassen. Die relevanten KOnfigurationsoptionen können wir mit Hilfe von **''grep''** uns auch gerafft anzeigen lassen.
    # grep -Ev '(^%|^$|^#|^!|^;)' /etc/chrony.conf    # grep -Ev '(^%|^$|^#|^!|^;)' /etc/chrony.conf
-<code>server pool.ntp.org iburst+<code>pool pool.ntp.org iburst
 driftfile /var/lib/chrony/drift driftfile /var/lib/chrony/drift
 ntsdumpdir /var/lib/chrony ntsdumpdir /var/lib/chrony
Zeile 5184: Zeile 5188:
 MS Name/IP address         Stratum Poll Reach LastRx Last sample                MS Name/IP address         Stratum Poll Reach LastRx Last sample               
 =============================================================================== ===============================================================================
-^* defiant.tlercher.de            10   377    96    +59us[ +988us] +/-   10ms</code>+^+ time.cnetm.de                   6   377       +755us[ +755us] +/-   17ms 
 +^- frank.askja.de                2     377       -166us[ -166us] +/-   59ms 
 +^* ntp1.noris.net                2     377    72   -154us[ -125us] +/-   12ms 
 +^+ sv1.ggsrv.de                  2     377       +284us[ +284us] +/-   15ms 
 +</code>
  
 Dieses Beispiel zeigt die Abfrage auf unserem zentralen NTP-Server, den wir gerade eingerichtet haben. Nachfolgendes Beispiel zeigt einen Host, der wiederum unseren eigenen zentralen NTP-Server als Quelle benutzt. Dieses Beispiel zeigt die Abfrage auf unserem zentralen NTP-Server, den wir gerade eingerichtet haben. Nachfolgendes Beispiel zeigt einen Host, der wiederum unseren eigenen zentralen NTP-Server als Quelle benutzt.
Zeile 5238: Zeile 5246:
  
    chronyc> sources -v    chronyc> sources -v
-<code>  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.+<code> 
 +  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
  / .- Source state '*' = current best, '+' = combined, '-' = not combined,  / .- Source state '*' = current best, '+' = combined, '-' = not combined,
 | /             'x' = may be in error, '~' = too variable, '?' = unusable. | /             'x' = may be in error, '~' = too variable, '?' = unusable.
Zeile 5248: Zeile 5257:
 MS Name/IP address         Stratum Poll Reach LastRx Last sample                MS Name/IP address         Stratum Poll Reach LastRx Last sample               
 =============================================================================== ===============================================================================
-^* defiant.tlercher.de            10   377   246    +59us[ +988us] +/-   10ms+^+ time.cnetm.de                   6   377     7   +755us[ +755us] +/-   17ms 
 +^- frank.askja.de                2     377       -166us[ -166us] +/-   59ms 
 +^* ntp1.noris.net                2     377    72   -154us[ -125us] +/-   12ms 
 +^+ sv1.ggsrv.de                  2     377       +284us[ +284us] +/-   15ms
 </code> </code>
  
Zeile 5257: Zeile 5269:
 <code>Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev <code>Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
 ============================================================================== ==============================================================================
-defiant.tlercher.de         6     86m     +0.279      0.359    +87us   188us</code>+time.cnetm.de              16  11   782     -0.042      1.299    -35us   292us 
 +frank.askja.de             16     783     +0.281      0.379   +169us    99us 
 +ntp1.noris.net              6     452     -0.529      0.977   -304us    43us 
 +sv1.ggsrv.de               14     784     +0.211      0.264   +434us    70us</code>
  
 Mit der Option **''-v''** erhalten wir eine Kurzbeschreibung der angezeigten Werte.  Mit der Option **''-v''** erhalten wir eine Kurzbeschreibung der angezeigten Werte. 
Zeile 5272: Zeile 5287:
 Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
 ============================================================================== ==============================================================================
-defiant.tlercher.de         6     86m     +0.279      0.359    +95us   188us+time.cnetm.de              16  11   782     -0.042      1.299    -37us   292us 
 +frank.askja.de             16     783     +0.281      0.379   +178us    99us 
 +ntp1.noris.net              6     452     -0.529      0.977   -320us    43us 
 +sv1.ggsrv.de               14     784     +0.211      0.264   +440us    70us
 </code> </code>
  
Zeile 5318: Zeile 5336:
    # chronyc tracking    # chronyc tracking
  
-<code>Reference ID    : C3C98961 (defiant.tlercher.de)+<code>Reference ID    : 3E800112 (ntp1.noris.net)
 Stratum         : 3 Stratum         : 3
-Ref time (UTC)  : Wed Feb 21 17:44:33 2024 +Ref time (UTC)  : Thu Feb 22 12:24:14 2024 
-System time     : 0.000000083 seconds slow of NTP time +System time     : 0.000030264 seconds slow of NTP time 
-Last offset     : +0.000929279 seconds +Last offset     : +0.000049906 seconds 
-RMS offset      : 0.000310979 seconds +RMS offset      : 0.000355495 seconds 
-Frequency       : 23.866 ppm fast +Frequency       : 23.667 ppm fast 
-Residual freq   : +0.279 ppm +Residual freq   : +0.017 ppm 
-Skew            : 0.179 ppm +Skew            : 0.322 ppm 
-Root delay      : 0.019519085 seconds +Root delay      : 0.016084936 seconds 
-Root dispersion : 0.001197367 seconds +Root dispersion : 0.002525240 seconds 
-Update interval : 1025.seconds+Update interval : 64.seconds
 Leap status     : Normal</code> Leap status     : Normal</code>
  
Zeile 5388: Zeile 5406:
  
 ===== Orchestrierung - Installation und Konfiguration des chronyd mit Hilfe von Ansible ===== ===== Orchestrierung - Installation und Konfiguration des chronyd mit Hilfe von Ansible =====
-Natürlich wird man im Jahr 2024 nicht mehr ernsthaft, manuell Server aufsetzen und betreiben wollen. Vielmehr wird amn auf ein Orchestrierungswerkzeug wie z.B. **[[linux:ansible:start|Ansible]]** zurückgreifen.+Natürlich wird man im Jahr 2024 nicht mehr ernsthaft, manuell Server aufsetzen und betreiben wollen. Vielmehr wird man auf ein Orchestrierungswerkzeug wie z.B. **[[linux:ansible:start|Ansible]]** zurückgreifen.
  
 Wir werden uns nun nachfolgend sowohl die Client- wie auch die Server-Installation und -konfiguration genauer betrachten.  Wir werden uns nun nachfolgend sowohl die Client- wie auch die Server-Installation und -konfiguration genauer betrachten. 
Zeile 5526: Zeile 5544:
 <font style="color: rgb(0, 0, 0)">[19:32:39]     ↳ chrony: Sofern bereits eine Backupdatei der chrony.conf existiert, diese rücksichern.</font> <font style="color: rgb(0, 0, 0)">[19:32:39]     ↳ chrony: Sofern bereits eine Backupdatei der chrony.conf existiert, diese rücksichern.</font>
 <font style="color: rgb(196, 160, 0)">↳  vml000210 | CHANGED | 661ms</font> <font style="color: rgb(196, 160, 0)">↳  vml000210 | CHANGED | 661ms</font>
 +<font style="color: rgb(0, 0, 0)">[19:32:40]     ↳ chrony: Backupdatei der chrony.conf Konfigurationsdatei erstellen.</font>
 <font style="color: rgb(43, 100, 164)">vml000210 | SKIPPED | 31ms</font> <font style="color: rgb(43, 100, 164)">vml000210 | SKIPPED | 31ms</font>
 <font style="color: rgb(0, 0, 0)">[19:32:40]     ↳ chrony: Änderungen an der chrony.conf mit blockinfile vornehmen.</font> <font style="color: rgb(0, 0, 0)">[19:32:40]     ↳ chrony: Änderungen an der chrony.conf mit blockinfile vornehmen.</font>
Zeile 5861: Zeile 5880:
 ... ...
 </file> </file>
 +
 +=== Playbooklauf ===
 +Die orchestrierte Variante der Installation und Konfiguration unseres **chrony**-Daemon im **Server-Mode** gestaltet sich ab sofort sehr einfach, brauchen wir doch lediglich die Konfigurationswerte im Inventory zu hinterlegen und zu pflegen und letztendlich das Playbook entsprechend aufzurufen:
 +   $ ansible-playbook playbooks/arch_chrony_server.yml
 +
 +<html><pre class="code">
 +<font style="color: rgb(0, 0, 0)">[23:10:06] Gathering Facts</font>
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 1.79s</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:08] chrony_client : include_tasks</font>
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 24ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:08]     ↳ chrony: Installation des chrony-Daemons.</font>
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 1.34s</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:10]     ↳ chrony: Checken ob es bereits eine Backupdatei der chrony.conf gibt.</font>
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 679ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:10]     ↳ chrony: Sofern bereits eine Backupdatei der chrony.conf existiert, diese rücksichern.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 626ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:11]     ↳ chrony: Backupdatei der chrony.conf Konfigurationsdatei erstellen.
 +<font style="color: rgb(43, 100, 164)">vml010110 | SKIPPED | 36ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:11]     ↳ chrony: Änderungen an der chrony.conf mit blockinfile vornehmen.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 607ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:12]     ↳ chrony: Änderungen an der chrony.conf mit lineinfile vornehmen.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 3.97s</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:16]     ↳ chrony: Sicherstellen, dass der chrony Service reboot(-fest) startet.</font>
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 984ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:17] chrony_firewalld : include_tasks</font>
 +<font style="color: rgb(25, 100, 5)">↳  vml010110 | SUCCESS | 36ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:17]     ↳ config: Port 123/UDP für IPv4 in der Zone IDMZ freischalten.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 848ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:17]     ↳ config: Port 123/UDP für IPv6 (ULA) in der Zone IDMZ freischalten.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 7276ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:18]     ↳ config: Port 123/UDP für IPv6 (Global-Scope) in der Zone IDMZ freischalten.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 697ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:19]     ↳ config: Port 123/UDP für IPv4 in der Zone INTRA freischalten.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 798ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:20]     ↳ config: Port 123/UDP für IPv6 (ULA) in der Zone INTRA freischalten.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 774ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:20]     ↳ config: Port 123/UDP für IPv6 (Global-Scope) in der Zone INTRA freischalten.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 804ms</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:21]     ↳ config: Regeländerungen auf vml000110 neu laden.</font>
 +<font style="color: rgb(196, 160, 0)">↳  vml010110 | CHANGED | 1.02s</font>
 +<font style="color: rgb(0, 0, 0)">[23:10:22] system</font>
 +<font style="color: rgb(25, 100, 5)">-- Play recap --</font>
 +<font style="color: rgb(196, 160, 0)">vml010110                  </font><font style="color: rgb(0, 0, 0)">: </font><font style="color: rgb(25, 100, 5)">ok=16   </font><font style="color: rgb(196, 160, 0)">changed=10   </font>unreachable=0    failed=0    <font style="color: rgb(43, 100, 164)">skipped=1</font>    rescued=0    ignored=0</font>
 +</pre>
 +</html>
 +
 +====== Links ======
 +  * Zurück zu **[[wiki:start|Projekte und Themenkapitel]]**
 +  * Zurück zu **[[centos:start|LINUX Installation und Konfiguration]]**
 +  * Zurück zu **[[linux:ansible:start|Zurück zur "Ansible"-Übersicht"]]**
 +  * Zurück zur **[[http://dokuwiki.nausch.org/doku.php/|Startseite]]**
  
  • linux/ntp.1708553237.txt.gz
  • Zuletzt geändert: 21.02.2024 22:07.
  • von django