如何将 LDAP(数据库、架构、配置)迁移到其他机器

J_L*_*DAP 19 openldap configuration ldap migration schema

我使用的是 openldap 2.4.40,我需要将我现有的 ldap 数据库、配置和架构(基本上与 ldap 服务器相关的所有内容)迁移到新机器上。

问题是,我使用 cn=config 配置而不是旧的 slapd.conf 文件了。

openldap 和其他 3rd 方网站提供的文档仅有助于迁移 slapd.conf LDAP 服务器,而不是具有较新 cn=config 配置文件的 LDAP 服务器。

而且我有新的模式(属性类型和对象类),有没有办法尽可能轻松地将它们迁移到新机器上?

除了重新配置并将我的模式一个接一个地手动添加到新机器之外,我需要其他方法。

这样做的目的是最有可能关闭旧机器。

TL;DR有什么方法可以方便地将 LDAP 数据库、模式、配置从 1 个 LDAP 服务器迁移到新的 LDAP 服务器,目的是关闭旧机器

谢谢你。

*在下面发布了答案

- 胡里奥

J_L*_*DAP 21

解决方案 :

所以这就是我所做的工作。

  1. 在主服务器上停止 Slapd
  2. 来自主服务器的 Slapcat 数据库(有 2 个数据库需要导出。我使用“-n”标签

    slapcat -n 0 -l (config file location)
    
    Run Code Online (Sandbox Code Playgroud)

这将导出所有架构和 cn=config 和

    slapcat -n 1 -l <database backup ldif path>
Run Code Online (Sandbox Code Playgroud)

这将导出您保存在 LDAP 中的所有用户数据。

  1. 将 2 ldif 文件 SCP 到新服务器(确保您在服务器上安装了 LDAP 并确保配置几乎相同以使其更容易)
  2. 在新服务器上停止 slapd。
  3. 删除文件夹的内容

    /etc/ldap/slapd.d
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使用 slapadd 将配置导入到新服务器

    slapadd -n 0 -l (config ldif location)
    
    Run Code Online (Sandbox Code Playgroud)

    -n 0 用于将配置添加回 LDAP

    slapadd -n 1 -l (database ldif location)
    
    Run Code Online (Sandbox Code Playgroud)

    -n 1 用于将数据库添加回 LDAP

*编辑:不知何故,这些命令在我的第二个第三个......上不起作用......等等。所以我已经证实它有效的正确命令是

  slapadd -n 0 -F /etc/ldap/slapd.d -l <config backup ldif path>
Run Code Online (Sandbox Code Playgroud)

  slapadd -n 1 -l <data backup ldif path>
Run Code Online (Sandbox Code Playgroud)
  1. 更改 /etc/ldap/slapd.d 文件夹(chown 和 chmod)中的权限。我把它 chown 到 openldap 并将它 chmod 到 755

还将 /var/lib/ldap 文件夹(chown 和 chmod)中的权限更改为 openldap

如果您有 TLS 连接的证书。将证书和密钥从旧服务器复制到新服务器到相同的确切位置。更改地点的权限。

  1. 开始拍打。

去应该很好。

希望这可以帮助其他人


Sve*_*ven 6

将两个树(cn=config和您的常规数据)导出到 LDIF,然后将它们导入新服务器(cn=config首先)。完毕。

此外,cn=config本质上只是一个 LDIF 文件的集合,可能只是将此集合复制到新服务器上的相同相对位置(slapd未运行时)。