第29章 RHEL システムロールを使用した時刻同期の設定
Network Time Protocol (NTP) と Precision Time Protocol (PTP) は、ネットワーク経由でコンピューターのクロックを同期するための規格です。一部のサービスは時刻同期に依存しているため、ネットワークで正確に時刻を同期することが重要です。たとえば、Kerberos では、リプレイ攻撃を防ぐため、サーバーとクライアント間のごくわずかな時間のずれしか許容されません。
Playbook の timesync_ntp_provider
変数で時刻サービスを設定できます。この変数を設定しなかった場合、ロールによって次の要素に基づいて時刻サービスが決定されます。
-
RHEL 8 以降の場合:
chronyd
-
RHEL 6 および 7 の場合:
chronyd
(デフォルト)、またはすでにインストールされている場合はntpd
29.1. timesync RHEL システムロールを使用した NTP による時刻同期の設定
Network Time Protocol (NTP) は、ネットワーク経由でホストの時刻を NTP サーバーと同期します。IT ネットワーク内では、複数のサービスが、セキュリティーやロギングなどのために、正確なシステム時刻に依存しています。timesync
RHEL システムロールを使用すると、ネットワーク内の Red Hat Enterprise Linux NTP クライアントの設定を自動化し、時刻を同期させることができます。
timesync
RHEL システムロールは、管理対象ホスト上の指定または検出されたプロバイダーサービスの設定を置き換えます。したがって、設定が Playbook で指定されていない場合、すべての設定が失われます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Managing time synchronization hosts: managed-node-01.example.com tasks: - name: Configuring NTP with an internal server (preferred) and a public server pool as fallback ansible.builtin.include_role: name: rhel-system-roles.timesync vars: timesync_ntp_servers: - hostname: time.example.com trusted: yes prefer: yes iburst: yes - hostname: 0.rhel.pool.ntp.org pool: yes iburst: yes
サンプル Playbook で指定されている設定は次のとおりです。
pool: <yes|no>
- ソースを個々のホストではなく NTP プールとしてフラグ付けします。この場合、時間経過で変わる可能性のある複数の IP アドレスに名前が解決されることがサービスで想定されています。
iburst: yes
- 高速な初期同期を可能にします。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.timesync/README.md
ファイルを参照してください。Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
時刻ソースの詳細を表示します。
管理対象ノードが
chronyd
サービスを実行している場合は、次のように入力します。# ansible managed-node-01.example.com -m command -a 'chronyc sources' MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* time.example.com 1 10 377 210 +159us[ +55us] +/- 12ms ^? ntp.example.org 2 9 377 409 +1120us[+1021us] +/- 42ms ^? time.us.example.net 2 9 377 992 -329us[ -386us] +/- 15ms ...
管理対象ノードが
ntpd
サービスを実行している場合は、次のように入力します。# ansible managed-node-01.example.com -m command -a 'ntpq -p' remote refid st t when poll reach delay offset jitter ============================================================================== *time.example.com .PTB. 1 u 2 64 77 23.585 967.902 0.684 - ntp.example.or 192.0.2.17 2 u - 64 77 27.090 966.755 0.468 +time.us.example 198.51.100.19 2 u 65 64 37 18.497 968.463 1.588 ...
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.time_sync/README.md
ファイル -
/usr/share/doc/rhel-system-roles/time_sync/
ディレクトリー - ソリューション記事 Are the rhel.pool.ntp.org NTP servers supported by Red Hat?