Red Hat Training

A Red Hat training course is available for RHEL 8

10.5. 使用 Ansible 确保 IdM 用户和组有 SID

身份管理(IdM)服务器可以根据本地域的 ID 范围中的数据,在内部将唯一安全标识符(SID)分配给 IdM 用户和组。SID 存储在用户和组对象中。

确保 IdM 用户和组有 SID 的目标是允许生成特权属性证书(PAC),这是 IdM-IdM 信任的第一步。如果 IdM 用户和组有 SID,IdM 能够使用 PAC 数据发布 Kerberos 票据。

按照以下流程实现以下目标:

  • 为已存在的 IdM 用户和用户组生成 SID。
  • 为 IdM 新用户和组启用 SID 生成。

先决条件

  • 您已配置了 Ansible 控制节点以满足以下要求:

    • 您使用 Ansible 版本 2.14 或更高版本。
    • ansible-freeipa 软件包已安装。

假设

  • 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件
  • 示例假定 secret.yml Ansible vault 存储了您的 ipaadmin_password,并且您知道 vault 文件密码。

流程

  1. 进入您的 ~/MyPlaybooks/ 目录:

    $ cd ~/MyPlaybooks/
  2. 创建一个 sids-for-users-and-groups-present.yml Ansible playbook 文件。
  3. 在文件中添加以下内容:

    ---
    - name: Playbook to ensure SIDs are enabled and users and groups have SIDs
      hosts: ipaserver
      become: no
      gather_facts: no
    
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
    
      tasks:
        - name: Enable SID and generate users and groups SIDS
          ipaconfig:
            ipaadmin_password: "{{ ipaadmin_password }}"
            enable_sid: true
            add_sids: true

    enable_sid 变量为将来的 IdM 用户和组启用 SID 生成。add_sids 变量为现有的 IdM 用户和组生成 SID。

    注意

    使用 add_sids: true 时,您还必须将 enable_sid 变量设置为 true

  4. 保存该文件。
  5. 运行 Ansible playbook。指定 playbook 文件、存储密码的文件保护 secret.yml 文件以及清单文件:

    $ ansible-playbook --vault-password-file=password_file -v -i inventory sids-for-users-and-groups-present.yml

    出现提示时,提供 vault 文件密码。