Skip to content

Commit

Permalink
Issue #3600 - RFE - openldap migration tooling (#4318)
Browse files Browse the repository at this point in the history
Bug Description: A large number of enterprise customers are interested
to move from OpenLDAP to 389 Directory Server. As this can be a
difficult process, there are many parts that we can automate to make
the process smoother, and to provide other information to assist
admins in a successful migration.

Fix Description: This adds the openldap_to_ds command, which given
a backup of an OpenLDAP and it's configuration, is able to partially
migrate the content and plugins to a running instance. Additionally
this is able to provide a checklist of other migration tasks that
may require administrator action and management.

fixes: #3600

Author: William Brown <william@blackhats.net.au>

Review by: @droideck @mreynolds389 (Thanks!)
  • Loading branch information
Firstyear committed Oct 20, 2020
1 parent 9cfb575 commit 0a902cc
Show file tree
Hide file tree
Showing 35 changed files with 3,225 additions and 1 deletion.
241 changes: 241 additions & 0 deletions dirsrvtests/tests/data/openldap_2_389/1/example_com.slapcat.ldif
@@ -0,0 +1,241 @@
dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
o: Example Company
dc: example
structuralObjectClass: organization
entryUUID: 67c6a9b8-eafa-1039-882d-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.130368Z#000000#000#000000
modifiersName: cn=Manager,dc=example,dc=com
modifyTimestamp: 20200224023755Z

dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
structuralObjectClass: organizationalRole
entryUUID: 67c8c932-eafa-1039-882e-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.144283Z#000000#000#000000
modifiersName: cn=Manager,dc=example,dc=com
modifyTimestamp: 20200224023755Z

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
structuralObjectClass: organizationalUnit
entryUUID: 67ca92a8-eafa-1039-882f-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.155994Z#000000#000#000000
modifiersName: cn=Manager,dc=example,dc=com
modifyTimestamp: 20200224023755Z

dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups
structuralObjectClass: organizationalUnit
entryUUID: 67cc2212-eafa-1039-8830-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.166219Z#000000#000#000000
modifiersName: cn=Manager,dc=example,dc=com
modifyTimestamp: 20200224023755Z

dn: cn=user0,ou=People,dc=example,dc=com
objectClass: account
objectClass: posixAccount
cn: user0
uid: user0
uidNumber: 80000
gidNumber: 80000
homeDirectory: /home/user0
structuralObjectClass: account
entryUUID: 67cdfcea-eafa-1039-8831-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.178373Z#000000#000#000000
modifyTimestamp: 20200224023755Z
memberOf: cn=group0,ou=groups,dc=example,dc=com
memberOf: cn=group1,ou=groups,dc=example,dc=com
memberOf: cn=group2,ou=groups,dc=example,dc=com
memberOf: cn=group3,ou=groups,dc=example,dc=com
memberOf: cn=group4,ou=groups,dc=example,dc=com
modifiersName: cn=Manager,dc=example,dc=com

dn: cn=user1,ou=People,dc=example,dc=com
objectClass: account
objectClass: posixAccount
cn: user1
uid: user1
uidNumber: 80001
gidNumber: 80001
homeDirectory: /home/user1
structuralObjectClass: account
entryUUID: 67d05080-eafa-1039-8832-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.193620Z#000000#000#000000
modifyTimestamp: 20200224023755Z
memberOf: cn=group0,ou=groups,dc=example,dc=com
memberOf: cn=group1,ou=groups,dc=example,dc=com
memberOf: cn=group2,ou=groups,dc=example,dc=com
memberOf: cn=group3,ou=groups,dc=example,dc=com
memberOf: cn=group4,ou=groups,dc=example,dc=com
modifiersName: cn=Manager,dc=example,dc=com

dn: cn=user2,ou=People,dc=example,dc=com
objectClass: account
objectClass: posixAccount
cn: user2
uid: user2
uidNumber: 80002
gidNumber: 80002
homeDirectory: /home/user2
structuralObjectClass: account
entryUUID: 67d26172-eafa-1039-8833-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.207161Z#000000#000#000000
modifyTimestamp: 20200224023755Z
memberOf: cn=group0,ou=groups,dc=example,dc=com
memberOf: cn=group1,ou=groups,dc=example,dc=com
memberOf: cn=group2,ou=groups,dc=example,dc=com
memberOf: cn=group3,ou=groups,dc=example,dc=com
memberOf: cn=group4,ou=groups,dc=example,dc=com
modifiersName: cn=Manager,dc=example,dc=com

dn: cn=user3,ou=People,dc=example,dc=com
objectClass: account
objectClass: posixAccount
cn: user3
uid: user3
uidNumber: 80003
gidNumber: 80003
homeDirectory: /home/user3
structuralObjectClass: account
entryUUID: 67d460bc-eafa-1039-8834-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.220249Z#000000#000#000000
modifyTimestamp: 20200224023755Z
memberOf: cn=group0,ou=groups,dc=example,dc=com
memberOf: cn=group1,ou=groups,dc=example,dc=com
memberOf: cn=group2,ou=groups,dc=example,dc=com
memberOf: cn=group3,ou=groups,dc=example,dc=com
memberOf: cn=group4,ou=groups,dc=example,dc=com
modifiersName: cn=Manager,dc=example,dc=com

dn: cn=user4,ou=People,dc=example,dc=com
objectClass: account
objectClass: posixAccount
cn: user4
uid: user4
uidNumber: 80004
gidNumber: 80004
homeDirectory: /home/user4
structuralObjectClass: account
entryUUID: 67d5d2a8-eafa-1039-8835-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.229723Z#000000#000#000000
modifyTimestamp: 20200224023755Z
memberOf: cn=group0,ou=groups,dc=example,dc=com
memberOf: cn=group1,ou=groups,dc=example,dc=com
memberOf: cn=group2,ou=groups,dc=example,dc=com
memberOf: cn=group3,ou=groups,dc=example,dc=com
memberOf: cn=group4,ou=groups,dc=example,dc=com
modifiersName: cn=Manager,dc=example,dc=com

dn: cn=group0,ou=Groups,dc=example,dc=com
objectClass: groupOfNames
objectClass: posixGroup
cn: group0
member: cn=user0,ou=people,dc=example,dc=com
member: cn=user1,ou=people,dc=example,dc=com
member: cn=user2,ou=people,dc=example,dc=com
member: cn=user3,ou=people,dc=example,dc=com
member: cn=user4,ou=people,dc=example,dc=com
gidNumber: 90000
structuralObjectClass: groupOfNames
entryUUID: 67d6f796-eafa-1039-8836-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.237225Z#000000#000#000000
modifiersName: cn=Manager,dc=example,dc=com
modifyTimestamp: 20200224023755Z

dn: cn=group1,ou=Groups,dc=example,dc=com
objectClass: groupOfNames
objectClass: posixGroup
cn: group1
member: cn=user0,ou=people,dc=example,dc=com
member: cn=user1,ou=people,dc=example,dc=com
member: cn=user2,ou=people,dc=example,dc=com
member: cn=user3,ou=people,dc=example,dc=com
member: cn=user4,ou=people,dc=example,dc=com
gidNumber: 90001
structuralObjectClass: groupOfNames
entryUUID: 67da9d2e-eafa-1039-8837-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.261127Z#000000#000#000000
modifiersName: cn=Manager,dc=example,dc=com
modifyTimestamp: 20200224023755Z

dn: cn=group2,ou=Groups,dc=example,dc=com
objectClass: groupOfNames
objectClass: posixGroup
cn: group2
member: cn=user0,ou=people,dc=example,dc=com
member: cn=user1,ou=people,dc=example,dc=com
member: cn=user2,ou=people,dc=example,dc=com
member: cn=user3,ou=people,dc=example,dc=com
member: cn=user4,ou=people,dc=example,dc=com
gidNumber: 90002
structuralObjectClass: groupOfNames
entryUUID: 67de2822-eafa-1039-8838-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.284346Z#000000#000#000000
modifiersName: cn=Manager,dc=example,dc=com
modifyTimestamp: 20200224023755Z

dn: cn=group3,ou=Groups,dc=example,dc=com
objectClass: groupOfNames
objectClass: posixGroup
cn: group3
member: cn=user0,ou=people,dc=example,dc=com
member: cn=user1,ou=people,dc=example,dc=com
member: cn=user2,ou=people,dc=example,dc=com
member: cn=user3,ou=people,dc=example,dc=com
member: cn=user4,ou=people,dc=example,dc=com
gidNumber: 90003
structuralObjectClass: groupOfNames
entryUUID: 67e1a6aa-eafa-1039-8839-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.307244Z#000000#000#000000
modifiersName: cn=Manager,dc=example,dc=com
modifyTimestamp: 20200224023755Z

dn: cn=group4,ou=Groups,dc=example,dc=com
objectClass: groupOfNames
objectClass: posixGroup
cn: group4
member: cn=user0,ou=people,dc=example,dc=com
member: cn=user1,ou=people,dc=example,dc=com
member: cn=user2,ou=people,dc=example,dc=com
member: cn=user3,ou=people,dc=example,dc=com
member: cn=user4,ou=people,dc=example,dc=com
gidNumber: 90004
structuralObjectClass: groupOfNames
entryUUID: 67e5a50c-eafa-1039-883a-152569770969
creatorsName: cn=Manager,dc=example,dc=com
createTimestamp: 20200224023755Z
entryCSN: 20200224023755.333416Z#000000#000#000000
modifiersName: cn=Manager,dc=example,dc=com
modifyTimestamp: 20200224023755Z

0 comments on commit 0a902cc

Please sign in to comment.