30.2. 使用 timesync RHEL 系统角色,通过 NTP 配置与 NTS 的时间同步
Network Time Protocol(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
验证
Cook
列中报告的 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 服务器?(红帽知识库)