40.6. 使用 Ansible 添加新的本地 IdM ID 范围
在某些情况下,您可能需要创建新的 Identity Management (IdM) ID 范围以及原始的 ID 范围;例如,当副本退出 ID 且原始 IdM ID 范围相同时,原始 IdM ID 范围会被处理。以下示例演示了如何使用 Ansible playbook 创建新 IdM ID 范围。
添加新 IdM ID 范围不会自动创建新的 DNA ID 范围。您需要根据需要手动分配新的 DNA ID 范围。有关如何进行此操作的更多信息,请参阅 手动分配 DNA ID 范围。
先决条件
在控制节点上:
- 您使用 Ansible 版本 2.15 或更高版本。
-
您已安装
ansible-freeipa
软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password
。
-
目标节点,也就是在其上执行
ansible-freeipa
模块的节点,是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。
流程
进入您的 ~/MyPlaybooks/ 目录:
$ cd ~/MyPlaybooks/
使用以下内容创建
idrange-present.yml
playbook:--- - name: Playbook to manage idrange hosts: ipaserver become: no vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure local idrange is present ipaidrange: ipaadmin_password: "{{ ipaadmin_password }}" name: new_id_range base_id: 12000000 range_size: 200000 rid_base: 1000000 secondary_rid_base: 200000000
- 保存该文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
$ ansible-playbook --vault-password-file=password_file -v -i inventory idrange-present.yml
SSH
到ipaserver
,并重启 Directory 服务器:# systemctl restart dirsrv@IDM.EXAMPLE.COM.service
这确保当您使用新范围中的 UID 创建用户时,它们分配了安全标识符(SID)。
可选:立即更新 ID 范围:
在
ipaserver
上,清除系统安全服务守护进程(SSSD)缓存:# sss_cache -E
在
ipaserver
上,重启 SSSD 守护进程:# systemctl restart sssd
注意如果您没有清除 SSSD 缓存并重新启动服务,SSSD 仅在更新域列表和其他存储在 IdM 服务器上的其他配置数据时检测到新的 ID 范围。
验证
-
您可以使用
ipa idrange-find
命令检查新范围是否设置正确:
# ipa idrange-find ---------------- 2 ranges matched ---------------- Range name: IDM.EXAMPLE.COM_id_range First Posix ID of the range: 882200000 Number of IDs in the range: 200000 Range type: local domain range Range name: IDM.EXAMPLE.COM_new_id_range First Posix ID of the range: 12000000 Number of IDs in the range: 200000 Range type: local domain range ---------------------------- Number of entries returned 2 ----------------------------