我使用(主要)用作用户身份验证(pam,samba,web,...)的后端的 LDAP。
现在我正在尝试将 LDAP 数据库迁移到新的 root-dn。
旧根 dn:
dc=local
新的根 dn:
dc=example,dc=com
这个过程很简单,例如
转储到 ldif
更改 ldif 文件中的 root-dn(例如使用 sed)
删除旧数据库
导入 ldif
现在,我想确保众多客户端不会经历过多的停机时间(由于更改了 root-dn),因为(afaict)所有客户端都在配置中硬编码了 root-DN。
我很担心,因为当我切换 root-dn 时,我必须手动更新每个客户端,所以最后更新的客户端将有较长的停机时间(嗯,不是停机时间,但用户将无法进行身份验证......)
所以我正在考虑在新旧 root-dn 下暴露我的树,直到所有客户端上的配置都被迁移,最终使用proxy
.
我的方法是否正确(例如最佳实践)?有(更好的)替代品吗?
在 Univention 的专业服务期间,我从事过多个类似的项目,但问题描述中缺少的一件事是 LDAP 的实际用途。
您需要检查的第一个问题是
确定连接到 LDAP 服务器的内容后,您可以计划每个服务的停机时间。
对于实际的停机时间,我发现休息通常比并行运行两个系统要好。并行运行两个 LDAP 服务器,或者在一个系统上运行两个 LDAP,通常需要您在两个系统中进行更改并保持它们同步并最终导致更多的工作和问题,然后突然转变。
如果您想最大限度地减少停机时间,虚拟化或第二台物理服务器将是您的选择。使用 LDAP 克隆系统,然后将其从网络中删除。按照您自己的描述对克隆进行更改。更改新服务器的 IP 和主机名以匹配生产 ldap 服务器。最好测试您的大多数应用程序是否有任何影响。关闭旧服务器并将网络连接到新服务器。更改不会自动失败转移的应用程序。
在整个过程中,旧服务器的 LDAP 中的任何更改也需要复制到新服务器。请注意,某些服务、计算机(尤其是连接到 Samba 的 Windows)或用户可能会在不告知管理员的情况下更改其密码。
如果您使用脚本切换虚拟网络接口,则 LDAP 的停机时间可以缩短到几秒钟。
你的方法是完全合理的。
您可能会失去迁移旧客户端的影响力,并且以我有限的经验 (Oracle DS) 代理 LDAP 带来了新的挑战,但这是处理此类转换的已知方法。