時刻同期

時刻同期

私は複数のRhelサーバーを持っており、すべてのサーバーがタイムリーに同期されるようにする必要があります。彼らはすべてchronydサービスを実行しています。

私の質問には、コマンドでこれを確認するユーティリティがありますか?これを行うことができるansibleモジュールを知っている人はいますか?私はそれを見つけることができませんでした。

私が望むのは、すべてのサーバーが厳密に効率的な方法で同時に実行されていることを確認することです。おそらくntpdateに似たものが私に役立ちます。

よろしくお願いします!

答え1

chronyがコマンドと同期していることを確認してください。

chrony 特定のコマンドを使用して ntp ステータスを確認できます。現在NTPサーバーが使用している情報を見たい場合

chronyc tracking

すべてのNTPサーバーを表示

chronyc sources

詳細については、次を参照してください。 fedora - chronyが同期されていることを確認する

アンサーブルと組み合わせる

Ansibleモジュールはありませんが、他の方法があります。

chronyでも機能するntpstatユーティリティが続く必要があります。戻りコードは ntp 状態に関する情報を提供します。 0 はクロックが同期されたことを意味し、1 は同期されていないことを意味し、2 はクロック状態が不確実であることを意味します。バラよりマンページ

確認できます

ntpstat
echo $?

ansible コマンドモジュールを使用して ntpstat を実行する場合、戻りコードが 0 でない場合、デフォルトではコマンドは失敗します。したがって、この場合にはこれを有利に活用することができる。 ntpstat コマンドを実行する簡単なスクリプトを作成します。

- name: Check if chrony is synchronized
  command: ntpstat

必要なホストグループに対してプレイブックを実行します。失敗したすべてのホストはntpを同期しませんでした。

さらにステップが戻り、コードがゼロでない場合は、グローバル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

これが役に立つことを願っています。

乾杯

関連情報