まず、私は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
私の設定ファイルにあるものと一致することを確認するために起動スクリプトを編集した後、すべてが再び機能し始めました。