Я установил два хоста с OpenLDAP для N-сторонней репликации с несколькими мастерами, следуя этому веб-сайту. Одна из установленных - 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
опция
$ 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
Что мне не хватает при установке OpenLDAP на хосте Ubuntu в чтобы успешно запустить сервер?
Ваш аргумент -h
для slapd
должен содержать URI LDAP, который соответствует одному из значений, перечисленных для olcServerID
атрибут. Итак, следуя документации, на которую вы ссылаетесь, вы должны использовать -h "ldapi: // ldap: //ldap1.gremaud.local"
(обратите внимание, что значение -h
должно быть заключено в кавычки, чтобы перечислить несколько URI, разделенных пробелами, как одно значение). Без этого, насколько я понимаю, сервер не может определить, какой идентификатор сервера сам по себе, исходя из значений атрибута olcServerID
, отсюда и ошибка.
Я не думаю / etc / ldap / ldap.conf
не имеет к этому никакого отношения, это файл конфигурации клиента.