Rhel

同步

  • December 9, 2019

我有一堆 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

我希望這有幫助。

乾杯

引用自:https://unix.stackexchange.com/questions/554509