29.3. 使用 ad_integration 系统角色将 RHEL 系统直接连接到 AD

您可以使用 ad_integration 系统角色,通过运行 Ansible playbook 配置 RHEL 系统和 AD 域之间的直接集成。

注意

从 RHEL8 开始,RHEL 默认不再支持 RC4 加密。如果无法在 AD 域中启用 AES,您必须启用 AD-SUPPORT 加密策略,并在 playbook 中允许 RC4 加密。

重要

RHEL 服务器和 AD 之间的时间必须同步。您可以通过在 playbook 中使用 timesync 系统角色来确保这一点。

在本例中,RHEL 系统使用 AD Administrator 用户和存储在 Ansible vault 中的此用户的密码加入 domain.example.com AD 域。playbook 还设置 AD-SUPPORT 加密策略,并允许 RC4 加密。为确保 RHEL 系统和 AD 之间的时间同步,playbook 会将 adserver.domain.example.com 服务器设置为 timesync 源。

先决条件

  • 访问一个或多个 受管节点
  • 控制节点 的访问和权限。

    在控制节点上:

    • Red Hat Ansible Engine 已安装。
    • rhel-system-roles 软件包已安装。
    • 列出受管节点的清单文件。
  • AD 域控制器上的以下端口已开放,并可从 RHEL 服务器访问:

    表 29.1. 使用 ad_integration 系统角色将 Linux 系统直接集成到 AD 所需的端口

    源端口目的地端口协议Service

    1024:65535

    53

    UDP 和 TCP

    DNS

    1024:65535

    389

    UDP 和 TCP

    LDAP

    1024:65535

    636

    TCP

    LDAPS

    1024:65535

    88

    UDP 和 TCP

    Kerberos

    1024:65535

    464

    UDP 和 TCP

    Kerberos 更改/设置密码(kadmin)

    1024:65535

    3268

    TCP

    LDAP 全局目录

    1024:65535

    3269

    TCP

    LDAP 全局目录 SSL/TLS

    1024:65535

    123

    UDP

    NTP/Chrony (可选)

    1024:65535

    323

    UDP

    NTP/Chrony (可选)

流程

  1. 使用以下内容创建一个新的 ad_integration.yml 文件:

    ---
    - hosts: all
      vars:
        ad_integration_realm: "domain.example.com"
        ad_integration_password: !vault | vault encrypted password
        ad_integration_manage_crypto_policies: true
        ad_integration_allow_rc4_crypto: true
        ad_integration_timesync_source: "adserver.domain.example.com"
      roles:
        - linux-system-roles.ad_integration
    ---
  2. 可选:验证 playbook 语法。

    # ansible-playbook --syntax-check ad_integration.yml -i inventory_file
  3. 在清单文件上运行 playbook:

    # ansible-playbook -i inventory_file /path/to/file/ad_integration.yml

验证

  • 显示 AD 用户详情,如 administrator 用户:

    getent passwd administrator@ad.example.com
    administrator@ad.example.com:*:1450400500:1450400513:Administrator:/home/administrator@ad.example.com:/bin/bash