chrony 同期

chrony 同期

私は多数の RHEL サーバーを所有しており、それらすべてが時間どおりに同期されていることを確認する必要があります。それらはすべて chronyd サービスを実行しています。

私の質問は、コマンドでこれをチェックするユーティリティがあるかどうかです。これを行うための Ansible モジュールについて知っている人はいますか? 見つかりませんでした。

私が望んでいるのは、すべてのサーバーが同じ時刻に厳密かつ効率的に実行されているかどうかを確認することです。おそらく、ntpdate に似たものが適しているでしょう。

前もって感謝します!

答え1

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

目的のホスト グループのプレイブックを実行します。失敗したすべてのホストには、同期された ntp がありません。

さらに進むには、グローバル chrony 構成 (chrony.conf) をすべてのホストにコピーし、戻りコードが 0 でない場合は、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

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

乾杯

関連情報