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