我按照以下步骤在 N 路多主复制中设置了两台带有 OpenLDAP 的主机这网站。其中一个安装的是 Debian 9.2,另一个是 Ubuntu 16.04。这台有问题的 Ubuntu 主机运行 OpenLDAP 服务器已经好几个星期了,没有任何问题。然而,在我添加复制之后,它拒绝再次启动。
常规启动失败
在新的 Debian 主机上,服务器启动正常 - 仅设置了复制。在 Ubuntu 主机上,OpenLDAP 拒绝启动。尝试启动时
$ service slapd start
系统日志显示
read_config: no serverID / URL match found. Check slapd -h arguments.
前台启动失败
在前台模式下运行时也一样,
$ slapd -d -1
前台以 -h 启动
-h
令人惊讶的是,它在附加选项时有效
$ slapd -d -1 -h ldap2.myhost.loc
配置被忽略?
配置中的设置似乎被完全忽略了:
$ grep -v '^$' /etc/ldap/ldap.conf | grep -v '^#'
BASE dc=myldapdomain,dc=loc
URI ldap://ldap2.myhost.loc
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
尽管它已加载:
$ slapd -d -1
ldap_url_parse_ext(ldap://localhost/)
ldap_init: trying /etc/ldap/ldap.conf
ldap_init: using /etc/ldap/ldap.conf
为了成功启动服务器,我在 Ubuntu 主机上的 OpenLDAP 安装中缺少什么?
答案1
您的-h
参数slapd
应包含与属性列出的值之一匹配的 LDAP URI olcServerID
。因此,按照您链接到的文档,您将使用-h "ldapi:// ldap://ldap1.gremaud.local"
(请注意,-h
应将值括起来以将多个空格分隔的 URI 列为一个值)。如果没有它,我的理解是服务器无法从属性的值中确定哪个服务器 ID 是它自己olcServerID
,因此会出现错误。
我认为/etc/ldap/ldap.conf
这与此无关,这是一个客户端配置文件。