私は複数の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
これが役に立つことを願っています。
乾杯