Chrony-Synchronisierung

Chrony-Synchronisierung

Ich habe eine Reihe von Rhel-Servern und muss sicherstellen, dass sie alle rechtzeitig synchronisiert sind. Auf allen läuft der Chronyd-Dienst.

Meine Frage ist, ob es ein Dienstprogramm gibt, um dies über einen Befehl zu überprüfen. Kennt jemand ein Ansible-Modul, mit dem man dies tun kann? Ich habe keines gefunden.

Ich möchte lediglich prüfen, ob alle Server streng und effizient zur gleichen Zeit laufen. Wahrscheinlich würde mir etwas Ähnliches wie ntpdate passen.

Dank im Voraus!

Antwort1

Überprüfen Sie, ob Chrony mit Befehlen synchronisiert ist

Sie können chrony-spezifische Befehle verwenden, um den NTP-Status zu überprüfen. Wenn Sie die Informationen für den aktuellen NTP-Server anzeigen möchten, verwenden Sie

chronyc tracking

So zeigen Sie alle NTP-Server an

chronyc sources

Weitere Informationen finden Sie unter: Fedora - prüfen, ob Chrony synchronisiert ist

Kombination mit Ansible

Es gibt kein Ansible-Modul, aber es gibt einen anderen Weg.

Sie sollten noch das Dienstprogramm ntpstat haben, das auch für chrony funktioniert. Die Rückgabecodes geben Auskunft über den NTP-Status. 0 für Uhr synchronisiert, 1 für nicht synchronisiert und 2, wenn der Uhrstatus unbestimmt ist. Siehemanpage

Sie können dies überprüfen

ntpstat
echo $?

Wenn Sie das Ansible-Befehlsmodul verwenden, um ntpstat auszuführen, schlägt es standardmäßig fehl, wenn der Rückgabecode des Befehls nicht 0 ist. In diesem Fall können wir dies zu unserem Vorteil nutzen. Erstellen Sie ein einfaches Playbook, das den Befehl ntpstat ausführt.

- name: Check if chrony is synchronized
  command: ntpstat

Führen Sie das Playbook für die gewünschte Hostgruppe aus. Alle Hosts, die ausfallen, haben kein synchronisiertes NTP.

Um noch weiter zu gehen, können Sie die globale Chrony-Konfiguration (chrony.conf) auf alle Hosts kopieren und den Chronyd-Dienst mit Ansible neu starten, wenn der Rückgabecode ungleich 0 ist.

- name: Check if chrony is synchronized
  command: ntpstat
  register: ntpstat_rc
  ignore_errors: true

- name: Copy chrony configuration
  copy:
   src: <global chrony.conf on your ansible server>
   dest: /etc/chrony.conf
   backup: yes
  when: ntpstat_rc.rc != 0

- name: Restart chrony service
  systemd:
   name: chronyd
   state: restarted
  when: ntpstat_rc.rc != 0

Ich hoffe das hilft.

Prost

verwandte Informationen