Назад | Перейти на главную страницу

Yum Update Now SLAPD не запускается

Вначале я скажу, что использую * nix регулярно более 20 лет; однако у меня минимальный опыт работы с openldap. У меня был openldap (slapd), работавший на сервере, который работал годами. Сегодня я запустил yum update, и он обновил довольно много пакетов, включая openLDAP, и теперь мой сервер ldap не запускается.

Вот версия (и) openldap из rpm -qa:

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

После завершения обновления yum (без ошибок) наш сервер LDAP не работал. Я попытался запустить простой сервис slapd, но не смог. slaptest -u теперь возвращает:

# slaptest -u
581260f7 config error processing cn={5}passwordSelfReset,cn=schema,cn=config: 
slaptest: bad configuration file!

Вот также мой файл 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

Обновление: я удалил все в /etc/openldap/slapd.d, а затем запустил:

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

Теперь slaptest -u успешно возвращается, но запуск службы slapd по-прежнему не выполняется. Единственная запись журнала, которую я могу найти после сбоя, находится в /var/log/ldap.log:

@(#) $OpenLDAP: slapd 2.4.40 (May 10 2016 23:30:49) $#012#011mockbuild@worker1.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.40/openldap-2.4.40/build-servers/servers/slapd

Для всех, у кого есть эта проблема - я понял проблему. Во время обновления для более новой версии требуется, чтобы хост соответствовал определению сервера в файле конфигурации.

Например, в вашем файле slapd.conf есть такая строка:

ServerID 1 "ldap://myldapserver"

Затем ваш сценарий запуска (или при запуске slapd) вы должны определить хост как «ldap: // myldapserver».

Казалось бы, это имеет смысл; однако, из-за моих сегодняшних проблем я узнал, что в файле /etc/init.d/slapd по умолчанию, который был добавлен во время моей первоначальной установки, хост указан как пустой. Таким образом, сценарий запуска по умолчанию, в основном, выполняет:

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

После того как я отредактировал сценарий запуска, чтобы убедиться, что параметр -h на slapd соответствует тому, что находится в моем файле конфигурации, все снова начало работать.