29.2. 使用 timesync RHEL 系统角色配置与 NTP 与 NTS 的时间同步
网络时间协议(NTP)通过网络将主机的时间与 NTP 服务器同步。通过使用 Network Time Security (NTS)机制,客户端建立到服务器的 TLS 加密连接,并验证 NTP 数据包。在 IT 网络中,服务需要正确的系统时间,例如出于安全性和日志记录目的。通过使用 timesync
RHEL 系统角色,您可以在网络中自动配置 Red Hat Enterprise Linux NTP 客户端,并保持时间通过 NTS 同步。
请注意,您不能将 NTS 服务器与非NTS 服务器混合使用。在混合配置中,NTS 服务器是可信的,客户端不会回退到未经身份验证的 NTP 源,因为它们可以在中间人(MITM)攻击中利用。详情请查看您系统的 chrony.conf (5)
手册页中的 authselectmode
参数描述。
timesync
RHEL 系统角色替换了受管主机上指定或检测到的供应商服务的配置。因此,如果所有设置没有在 playbook 中指定,则它们都会丢失。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
步骤
创建包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Managing time synchronization hosts: managed-node-01.example.com tasks: - name: Configuring NTP with NTS-enabled servers ansible.builtin.include_role: name: rhel-system-roles.timesync vars: timesync_ntp_servers: - hostname: ptbtime1.ptb.de trusted: yes nts: yes prefer: yes iburst: yes - hostname: ptbtime2.ptb.de trusted: yes nts: yes iburst: yes
示例 playbook 中指定的设置包括:
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 =============================================================================== ^* ptbtime1.ptb.de 1 6 17 55 -13us[ -54us] +/- 12ms ^- ptbtime2.ptb.de 1 6 17 56 -257us[ -297us] +/- 12ms
对于启用了 NTS 的源,显示特定于 NTP 源身份验证的信息:
# ansible managed-node-01.example.com -m command -a 'chronyc -N authdata' Name/IP address Mode KeyID Type KLen Last Atmp NAK Cook CLen ========================================================================= ptbtime1.ptb.de NTS 1 15 256 229 0 0 8 100 ptbtime2.ptb.de NTS 1 15 256 230 0 0 8 100
验证在precach 列中报告的 cookies 是否大于 0。
如果受管节点运行
ntpd
服务,请输入:# ansible managed-node-01.example.com -m command -a 'ntpq -p' remote refid st t when poll reach delay offset jitter ============================================================================== *ptbtime1.ptb.de .PTB. 1 8 2 64 77 23.585 967.902 0.684 -ptbtime2.ptb.de .PTB. 1 8 30 64 78 24.653 993.937 0.765
其他资源
-
/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 服务器?