我对 ldap (这里指 openldap) 完全陌生。老板给我布置了创建第二个 ldap 服务器的任务,并将现有 ldap 服务器上的数据复制到我创建的新服务器中。
我通过阅读文档和大量使用 Google 完成了此操作。无论如何,对于新的 ldap 服务器,我从现有 ldap 服务器复制了 slapd.conf 文件,然后运行“slaptest -f slapd.conf -F slapd.d”,这样就创建了 cn=config。
我的老板测试了环境。它运行良好,但现在他要求我从现有的 ldap 服务器到刚刚创建的新服务器进行单向同步。
再次阅读文档并进行大量谷歌搜索后,我想我终于知道需要做什么了。
这个新的 ldap 服务器未被使用,而且我真的不知道如何使用 ldapmodify 或任何 ldap 客户端工具来添加以下参数。我实际上打算删除 slapd.d 目录中的内容,使用新参数更新 slapd.conf 文件,然后重新运行“slaptest -f slapd.conf -F slapd.d”以使用新参数重新创建 cn=config。我知道这不是最好的方法,但它应该有效。
--同步消费者
同步
摆脱=123
类型=RefreshandPersist
提供者=ldaps://ldap-master.example.com:389
绑定方法=简单
searchbase="dc=example,dc=com"
重试=“10 6 60 +”
attrs="cn,sn,displayName,givenName,mail,uid"
binddn="cn=Manager,dc=test,dc=example,dc=com"
凭证={SSHA}密码
现在,这种更新 cn=config 的方法不适用于需要在副本提供程序上进行的更改以启用同步。
据我所知,我只需要添加一行:
覆盖同步
我的问题是如何将此行添加到现有且正常运行的 ldap 服务器上的 cn=config?我显然无法使用 slaptest 重新创建配置。
非常感谢您的帮助和建议
-V
答案1
简短的回答是您需要熟悉使用ldapmodify
,它的手册页中有示例可以展示如何进行更改。
如果不知道您的 LDAP 服务器是如何配置的,我无法给您一个简单的“这样做”的答案。但是,您需要执行类似于以下的操作:
# ldapmodify -Y EXTERNAL -H ldapi:///
dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
^D
这相当于在文件中cn=config
有。但我假设您 a) 只配置了一个 LDAP 数据库后端,b) 您使用的是 HDB 后端,c) 允许 LDAPI 连接。这也不会配置用于从新 LDAP 服务器连接的用户,也不会设置任何 ACL 以允许其读取所有内容等。overlay syncprov
slapd.conf
我鼓励你阅读 OpenLDAP 文档,特别是http://www.openldap.org/doc/admin24/replication.html其中包括设置复制。