我在通过 OLC 配置 OpenLDAP 元后端时遇到了麻烦。遗憾的是,openldap.org/docs 还没有后端元配置
11.5.2. back-meta Configuration
LATER
和
man slapd-meta
提供 slapd.conf 配置样式的信息。此外,在 meta 上有许多使用 slapd.conf 的指南,但我没有找到使用 OLC 的指南。
- 我希望有一个用于元后端配置的 .ldif 示例
- 是否可以使用 slapd.conf 到 OLC 的转换来部分配置 OpenLDAP?例如,仅使用 slapd.conf 配置元数据,其余配置则使用 OLC?
答案1
以下是元后端配置的示例 .ldif 文件:
dn: olcDatabase={3}meta,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMetaConfig
olcDatabase: {3}meta
olcSuffix: dc=example,dc=com
olcDbOnErr: continue
olcDbCancel: abandon
olcDbTFSupport: no
structuralObjectClass: olcMetaConfig
dn: olcMetaSub={0}uri,olcDatabase={3}meta,cn=config
objectClass: olcMetaTargetConfig
olcMetaSub: {0}uri
olcDbURI: "ldap://localhost/ou=backend1,dc=example,dc=com"
olcDbRewrite: {0}suffixmassage "ou=backend1,dc=example,dc=com" "ou=backend1"
olcDbKeepalive: 0:0:0
olcDbBindTimeout: 100000
olcDbCancel: abandon
structuralObjectClass: olcMetaTargetConfig
为了回答你的第二个问题,下面是我上面的创建方法。我遵循了这篇出色的博客文章:https://blog.oddbit.com/post/2010-02-16-merging-directories-with-openldap-meta/
以下是我的步骤:
- 编译安装openldap下
/u01/app/openldap
- 创建了 slapd-be1.conf、slapd-be2.conf 和 slapd-fe.conf
- 包括上面三个文件
/u01/app/openldap/etc/openldap/slapd.conf
(我还注释掉了“MDB 数据库定义”下面的默认数据库创建指令) - 使用此配置文件创建 openldap 数据库:
$ u01/app/openldap/libexec/slapd -f /u01/app/openldap/etc/openldap/slapd.conf -h ldap:/// -F /u01/app/openldap/etc/slapd.d/
以上使用 slapd.conf 并创建数据库,它还在下创建结构/u01/app/openldap/etc/slapd.d
,可用于 OLC 的后续工作。5
. 停止 slapd
6. 启动 slapd,这次不要使用 slapd.conf
$ u01/app/openldap/libexec/slapd -h ldap:/// -F /u01/app/openldap/etc/slapd.d/
- 根据博客文章添加数据
$ ldapadd -x -D cn=ldif-admin,ou=backend1 -W -f backend1.ldif
$ ldapadd -x -D cn=ldif-admin,ou=backend2 -W -f backend2.ldif
- 使用后端端点搜索此添加的数据
$ dapsearch -x -b ou=backend1
- 使用元端点搜索此数据
$ ldapsearch -x -b dc=example,dc=com
- 转储 LDAP 配置
$ slapcat -n 0 -l config.ldif -F /u01/app/openldap/etc/slapd.d
上述命令将生成包含整个 LDAP 配置的 config.ldif。您将在文件末尾看到元配置。接下来,您可以使用此语法创建元 LDIF 并使用 OLC 导入。
希望以上内容能有所帮助。