39.2. 使用 ipa migrate-ds的示例
数据迁移是使用 ipa migrate-ds 命令执行的。最简单的方式是利用 目录的 LDAP URL 来根据常见的默认设置迁移和导出数据。
ipa migrate-ds ldap://ldap.example.com:389
- 迁移的条目
- migrate-ds 命令只迁移包含
gidNumber
属性的帐户,这是posixAccount
对象类和sn
属性所需的帐户,这是person
对象类所需的。 - 自定义流程
- ipa migrate-ds 命令允许您自定义如何识别和导出数据。如果原始目录树具有唯一的结构,或者应排除条目中的某些条目或属性,则这很有用。如需了解更多详细信息,请将
--help
传递给 命令。 - bind DN
- 默认情况下,DN "
cn=Directory Manager
" 用于绑定到远程 LDAP 目录。将--bind-dn
选项传递给 命令,以指定自定义绑定 DN。有关详情请参考 第 39.1.3.5 节 “迁移工具”。 - 命名上下文更改
- 如果目录服务器命名上下文与身份管理中使用的 Directory 服务器命名上下文不同,则对象的基本 DN 会被转换。例如:
uid=user,ou=Person,dc=ldap,dc=example,dc=com
被迁移到uid=user,ou=Person,dc=idm,dc=example,dc=com
。将--base-dn
传递给 ipa migrate-ds 命令,来设置远程 LDAP 服务器上用于迁移的基本 DN。
39.2.1. 迁移特定子树
默认目录结构将人员条目置于 ou=People 子树中,并将组条目置于 ou=Groups 子树中。这些子树是这些不同类型的目录数据的容器条目。如果没有通过 migrate-ds 命令传递选项,则实用程序假定给定的 LDAP 目录使用 ou=People 和 ou=Groups 结构。
许多部署可能具有完全不同的目录结构(或者可能只想导出目录树的某些部分)。管理员可以使用两个选项来指定源 LDAP 服务器上的不同用户或组子树的 RDN:
--user-container
--group-container
注意
在这两种情况下,子树都必须是 RDN,且必须相对于基本 DN。例如,可以使用
--user-container =ou=Employees
进行迁移 >ou=Employees,dc=example,dc=com
目录树。
例如:
[root@ipaserver ~]# ipa migrate-ds --user-container=ou=employees \ --group-container="ou=employee groups" \ ldap://ldap.example.com:389
将
--scope
选项传递给 ipa migrate-ds 命令,以设置范围:
onelevel
:默认.仅迁移指定容器中的条目。子树
:指定容器和所有子容器中的条目都已迁移。基本
:只有指定的对象本身会被迁移。
39.2.2. 具体包括或排除实体
默认情况下,ipa migrate-ds 脚本会导入具有
person
对象类的每个用户条目,以及带有 groupOfUniqueNames
或 groupOfNames 对象类的每个组条目。
在某些迁移路径中,可能需要导出特定类型的用户和组,或者需要取消特定用户和组。
种选择是积极设置要包含 哪些类型的 用户和组。这是通过设置在查找用户或组条目时要搜索的对象类来完成的。
当环境中存在用于不同用户类型的自定义对象类时,这是一个非常有用的选项。例如,这只迁移具有自定义 fullTimeEmployee 对象类的用户:
[root@ipaserver ~]# ipa migrate-ds --user-objectclass=fullTimeEmployee ldap://ldap.example.com:389
由于不同类型的组,这对于仅迁移某些类型组(如用户组)来说也非常有用,同时排除其他类型的组,如证书组。例如:
[root@ipaserver ~]# ipa migrate-ds --group-objectclass=groupOfNames --group-objectclass=groupOfUniqueNames ldap://ldap.example.com:389
积极指定要基于对象类进行迁移的用户和组隐式地排除所有其他用户和组迁移。
或者,迁移所有用户和组条目也很有用,但只有少量条目除外。可以排除特定用户或组群帐户,而该类型的所有其他帐户都将被迁移。例如,这不包括 hobbies 组和两个用户:
[root@ipaserver ~]# ipa migrate-ds --exclude-groups="Golfers Group" --exclude-users=jsmith --exclude-users=bjensen ldap://ldap.example.com:389
exclude 语句应用到与
uid
中模式匹配的用户,以及在 cn
属性中与其匹配的组。
指定要迁移的对象类可以和排除特定条目一起使用。例如,这特别包括具有 fullTimeEmployee 对象类的用户,但排除了三个管理者:
[root@ipaserver ~]# ipa migrate-ds --user-objectclass=fullTimeEmployee --exclude-users=jsmith --exclude-users=bjensen --exclude-users=mreynolds ldap://ldap.example.com:389
39.2.3. 排除条目属性
默认情况下,用户或组条目的每个属性和对象类将被迁移。在有些情况下,由于带宽和网络约束,可能不太现实,或者由于属性数据不再相关。例如,如果在用户加入 IdM 域时为其分配新的用户证书,则不需要迁移
userCertificate
属性。
migrate-ds 可以使用以下几个不同的选项忽略特定的对象类和属性:
--user-ignore-objectclass
--user-ignore-attribute
--group-ignore-objectclass
--group-ignore-attribute
例如,要为用户排除
userCertificate
属性和 strongAuthenticationUse 对象类,为组排除 groupOfCertificate 对象类:
[root@ipaserver ~]# ipa migrate-ds --user-ignore-attribute=userCertificate --user-ignore-objectclass=strongAuthenticationUser --group-ignore-objectclass=groupOfCertificates ldap://ldap.example.com:389
注意
确保不要忽略任何必需的属性。另外,在排除对象类时,请确保排除该对象类仅支持的任何属性。
39.2.4. 将架构设置为使用
身份管理使用 RFC2307bis 模式来定义用户、主机、主机组和其他网络身份。但是,如果用作迁移源的 LDAP 服务器改为使用 RFC2307 模式,请将
--schema
选项传给 ipa migrate-ds 命令:
[root@ipaserver ~]# ipa migrate-ds --schema=RFC2307 ldap://ldap.example.com:389