conf 和脚本中的主机 ID 必须匹配

conf 和脚本中的主机 ID 必须匹配

首先,我不是 OpenLDAP 专家。

slapd在一台已经运行多年的服务器上运行了 openldap ( )。今天,我运行了它yum update,它更新了很多软件包,包括 openldap 软件包。一旦完成(没有错误),我们的 LDAP 服务器就不再运行。我尝试了一个简单的service slapd start(和/etc/init.d/slapd start),但两者都突然失败了。

如果我查看该/var/log/ldap.log文件,我会看到以下条目:

@(#) $OpenLDAP: slapd 2.4.40 (May 10 2016 23:30:49) $#012#[email protected]:/builddir/build/BUILD/openldap-2.4.40/openldap-2.4.40/build-servers/servers/slapd
read_config: no serverID / URL match found. Check slapd -h arguments.
slapd stopped.
connections_destroy: nothing to destroy.

slaptest和都slaptest -u成功了:

# slaptest
config file testing succeeded
# slaptest -u
config file testing succeeded

以下是 openldap 版本:

openldap-clients-2.4.40-12.el6.x86_64
openldap-servers-2.4.40-12.el6.x86_64
openldap-devel-2.4.40-12.el6.x86_64
compat-openldap-2.3.43-2.el6.x86_64
openldap-2.4.40-12.el6.x86_64

这也是我slapd.conf在 yum 更新之前工作的文件:

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/misc.schema
include         /etc/openldap/schema/passwordSelfReset.schema

allow bind_v2

pidfile     /var/run/openldap/slapd.pid
argsfile    /var/run/openldap/slapd.args

modulepath /usr/lib64/openldap

moduleload syncprov.la
moduleload unique.la

database monitor
access to *
        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
        by dn.exact="cn=admin,dc=am5up,dc=com" read
        by * none

database    bdb
suffix      "dc=am5up,dc=com"
rootdn      "cn=admin,dc=am5up,dc=com"
rootpw {SSHA}0yFFC0BTYdZLDRNtSHVz1I6YC4zJ3Z0AZ09123
directory   /var/lib/ldap

index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber               eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

overlay unique
unique_attributes mail

ServerID        1 "ldap://ldap.am5up.com"

overlay         syncprov
syncprov-checkpoint     10 1
syncprov-sessionlog     100

有人可以提供任何建议吗?

非常感激!

答案1

conf 和脚本中的主机 ID 必须匹配

对于遇到此问题的其他人:我已经解决了问题。在升级过程中,稍新的版本要求主机匹配配置文件中的服务器定义。

例如,在您的slapd.conf文件中有这样一行:

ServerID 1 "ldap://myldapserver"

然后你的启动脚本(或者当你启动 slapd 时)你必须将主机定义为“ldap://myldapserver”。

这似乎是有道理的;然而,通过今天的麻烦,我了解到/etc/init.d/slapd在初始安装期间添加的默认文件将主机列为空白。因此,默认启动脚本基本上执行:

slapd -h "" -u <user> -g <group>

一旦我编辑了启动脚本以确保-h开关slapd与我的配置文件中的内容匹配,一切就重新开始工作。

相关内容