Rhel
同步
我有一堆 rhel 伺服器,我必須確保所有這些都及時同步。他們都在執行chronyd服務。
我的問題是,是否有任何實用程序可以通過命令進行檢查?有誰知道一個ansible模組來做到這一點?我沒有找到。
我想要的只是檢查所有伺服器是否以嚴格有效的方式同時執行。可能類似於 ntpdate 的東西適合我。
提前致謝!
檢查chrony是否與命令同步
您可以使用特定於 chrony 的命令來檢查 ntp 狀態。如果您想查看目前 ntp 伺服器使用的資訊
chronyc tracking
顯示所有 ntp 伺服器
chronyc sources
有關更多資訊,請參閱: fedora - 檢查 chrony 是否同步
與ansible結合
沒有ansible模組,但有另一種方式。
您應該仍然擁有也適用於 chrony 的 ntpstat 實用程序。返回程式碼提供有關 ntp 狀態的資訊。0 表示時鐘同步,1 表示不同步,2 表示時鐘狀態不確定。參見手冊頁
您可以驗證
ntpstat echo $?
如果您使用 ansible 命令模組執行 ntpstat,如果命令的返回碼不為 0,則預設情況下它會失敗。所以在這種情況下,我們可以利用它來發揮我們的優勢。製作一個執行命令 ntpstat 的簡單劇本。
- name: Check if chrony is synchronized command: ntpstat
為所需的主機組執行 playbook。所有失敗的主機都沒有同步的 ntp。
如果返回碼不為 0,您可以將全域 chrony 配置 (chrony.conf) 複製到所有主機並使用 ansible 重新啟動 chronyd 服務。
- 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
我希望這有幫助。
乾杯