第 29 章 使用 RHEL 系统角色配置时间同步
网络时间协议(NTP)和 Precision Time Protocol (PTP)是通过网络同步计算机时钟的标准。网络中的准确的时间同步非常重要,因为某些服务依赖于它。例如,Kerberos 容许服务器和客户端之间只有少量的时间差异,以防止重播攻击。
您可以将时间服务设置为在 playbook 的 timesync_ntp_provider
变量中配置。如果没有设置此变量,该角色会根据以下因素决定时间服务:
-
在 RHEL 8 及更新的版本中:
chronyd
-
在 RHEL 6 和 7 上:
chronyd
(默认)或者已安装ntpd
。
29.1. 使用 timesync RHEL 系统角色配置与 NTP 进行时间同步
网络时间协议(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 中指定的设置包括:
池:& lt;yes|no>
- 将源标记为 NTP 池,而不是单个主机。在这种情况下,服务预期名称解析为多个 IP 地址,这些 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
file -
/usr/share/doc/rhel-system-roles/time_sync/
directory - 红帽是否支持 rhel.pool.ntp.org NTP 服务器?