好的,我自己解决了。以下是我将当前 LDAP 数据库迁移到新域的方法:
- 将旧的 LDAP 数据库导出到 ldif 文件。
- 删除旧数据库
- 使用新域名创建新的 LDAP 数据库
- 修改上面导出的 ldif 文件以适应新域(根 dn)
- 将修改后的ldif文件导入新数据库
假设我有一个新域名dc=my,dc=new,dc=ldap,dc=domain,并且我想将所有现有 LDAP 数据移动到新域名。
我做了以下步骤
备份旧的 LDAP 数据库
# slapcat -v -l old_ldap.ldif
停止 OpenLDAP 服务器
# service slapd stop
删除旧的 LDAP 数据库
# cd /var/lib/ldap
# rm -rf *
确保 LDAP 未运行
# nano /var/lib/ldap/DB_CONFIG
注意:添加以下几行并保存
#DB_CONFIG
set_cachesize 0 150000000 1
set_lg_regionmax 262144
set_lg_bsize 2097152
set_flags DB_LOG_AUTOREMOVE
更改以下文件中的当前 LDAP 设置
/etc/ldapscripts/ldapscripts.conf
...
SERVER="ldap://localhost"
BINDDN="cn=admin,dc=my,dc=new,dc=ldap,dc=domain"
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
...
/etc/ldap/slapd.d/cn=config/olcDatabase\={1}hdb.ldif
...
olcSuffix: dc=my,dc=new,dc=ldap,dc=domain
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=my,dc=new,dc=ldap,dc=domain" write by * none
olcAccess: {2}to * by self write by dn="cn=admin,dc=my,dc=new,dc=ldap,dc=domain" write by * read
olcRootDN: cn=admin,dc=my,dc=new,dc=ldap,dc=domain
olcRootPW: <new administrator password>
...
准备新的 LDAP 目录结构,数据,,new_ldap.ldif
(或old_ldap.ldif
用新的 dn 修改)
# Root
dn: dc=my,dc=new,dc=ldap,dc=domain
description: New LDAP BaseDN
dc: parent
o: parent.my.new.ldap.domain
objectClass: top
objectClass: dcObject
objectClass: organization
structuralObjectClass: organization
# administrator
dn: cn=admin,dc=my,dc=new,dc=ldap,dc=domain
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: <new administrator password>
structuralObjectClass: organizationalRole
# Subtree for Users
dn: ou=Users,dc=my,dc=new,dc=ldap,dc=domain
ou: Users
description: Parent Ldap Users
objectClass: organizationalUnit
objectClass: top
structuralObjectClass: organizationalUnit
# Subtree for Groups
dn: ou=Groups,dc=my,dc=new,dc=ldap,dc=domain
ou: Groups
description: Parent LDAP Groups
objectClass: organizationalUnit
objectClass: top
structuralObjectClass: organizationalUnit
...
测试新的 ldif
# slapadd -b "dc=my,dc=new,dc=ldap,dc=domain" -v -u -l new_ldap.ldif
注意:意味着在测试模式下运行命令-u
如果一切正常,输出将类似于:
added: "dc=my,dc=new,dc=ldap,dc=domain"
added: "cn=admin,dc=my,dc=new,dc=ldap,dc=domain"
added: "ou=Users,dc=my,dc=new,dc=ldap,dc=domain"
added: "ou=Groups,dc=my,dc=new,dc=ldap,dc=domain"
_#################### 100.00% eta none elapsed none fast!
将新的 LDAP 数据添加到服务器
# slapadd -b "dc=my,dc=new,dc=ldap,dc=domain" -v -l new_ldap.ldif
您可以在我的博客文章中查看有关此问题的更新:http: //iambusychangingtheworld.blogspot.com/2013/10/ldap-create-new-ldap-directory.html