28.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 权限。
  • 受管节点使用 chronyd

流程

  1. 创建一个包含以下内容的 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: redhat.rhel_system_roles.timesync
          vars:
            timesync_ntp_servers:
            - hostname: ptbtime1.ptb.de
              nts: yes
              iburst: yes
    Copy to Clipboard Toggle word wrap

    示例 playbook 中指定的设置包括如下:

    iburst: yes
    启用快速初始同步。

    有关 playbook 中使用的所有变量的详情,请查看控制节点上的 /usr/share/ansible/roles/rhel-system-roles.timesync/README.md 文件。

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    请注意,这个命令只验证语法,不能防止错误的、但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml
    Copy to Clipboard Toggle word wrap

验证

  • 如果受管节点运行 chronyd 服务:

    1. 显示时间源的详情:

      # 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
      Copy to Clipboard Toggle word wrap
    2. 对于启用了 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
      Copy to Clipboard Toggle word wrap

      验证 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
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat