Я пытаюсь настроить кластер OpenLDAP (PoC) с несколькими мастерами. Где-то я создал плохую конфигурацию, и теперь slapd не запускается. Поскольку cn=config
/olc
config помечен CRC32, он не принимает ручные изменения.
Итак, как мне внести изменения в конфигурацию без запущенного демона?
Там есть slapadd
, но мне нужно изменить, а не добавить ... не так ли? Я чувствую, что могу упустить что-то очевидное.
Если это имеет значение, я думаю, что один или оба olcModuleLoad
и olcServerID
не правы.
Запуск openldap-2.4.42 в Ubuntu 16.04.
Обновить
Я ошибался, говоря, что правки не принимаются. Конфигурация была отклонена по другой причине (совпадение идентификатора сервера / URL не найдено), ошибка контрольной суммы была зарегистрирована, но не препятствует запуску демона.
Мне удалось вручную отредактировать файлы ldif в /etc/ldap/slap.d/cn=config
и запускаем сервер. (Хотя я еще не получил репликацию с несколькими мастерами.)
Я знаю, что вы в основном решили свою проблему, но я подумал, что добавлю свои собственные шаги для создания автономных конфигураций slapd, если кто-то еще столкнется с этим. Это из моей собственной документации для систем на основе Debian:
Иногда бывает необходимо отредактировать cn=config
стиль базы данных вручную (если вы не можете войти в базу данных, например, с помощью учетной записи root), однако cn=config
базу данных стилей никогда не следует редактировать вручную. Чтобы исправить проблемы непосредственно в самих файлах, вам необходимо преобразовать базу данных в формат ldif, внести изменения, а затем восстановить базу данных. Это достигается с помощью инструментов пощечины.
Начните с остановки службы slapd. Рекомендуется сделать копию каталога slapd и всего его содержимого на случай, если что-то пойдет не так.
$ systemctl stop slapd
$ cp -a /etc/ldap/slapd.d /var/backups/slapd.d-offline-$(date +%s)
Теперь сделайте резервную копию базы данных slapd, которую вы хотите изменить. Инструменты slap следует использовать для резервного копирования и восстановления. Slapcat можно использовать для преобразования базы данных из cn=config
стиль в файл ldif. Чтобы сделать резервную копию базы данных конфигурации, экспортируйте ее в файл ldif с помощью slapcat.
$ slapcat -n0 -F /etc/ldap/slapd.d/ -l /var/backups/slapd.d-config-$(date +%s).ldif
Параметр -n указывает, какую базу данных нужно резервировать. База данных конфигурации всегда равна 0.
Чтобы сделать резервную копию другой базы данных, просто замените параметр dbnum правильным номером базы данных. Если у вас только одна база данных, это, вероятно, будет «1».
$ slapcat -n1 -F /etc/ldap/slapd.d/ -l /var/backups/slapd.d-acme-$(date +%s).ldif
После того, как вы создали резервную копию текущей базы данных, вам необходимо удалить каталог slapd в папке ldap и создать новый.
$ rm -rf /etc/ldap/slapd.d
$ mkdir /etc/ldap/slapd.d
Теперь вы можете внести изменения в файл ldif, созданный с помощью инструмента slapcat с текстовым редактором. Будьте осторожны с любыми изменениями, так как опечатки, недопустимый синтаксис и другие проблемы приведут к сбою повторного импорта файла ldif. После того, как все ваши изменения будут внесены, импортируйте вашу базу данных в новый каталог slapd.
Преобразование резервной копии вашей базы данных в формате ldif в cn=config
выполняется с помощью инструмента slapadd. Инструмент slapadd, как и инструмент slapcat, требует номер базы данных. 0 всегда является базой данных конфигурации.
$ slapadd -n0 -F /etc/ldap/slapd.d -l /var/backups/slapd.d-config-<timestamp>.ldif
Заменить <timestamp>
с базой данных, которую вы действительно хотите восстановить.
Чтобы восстановить базу данных вместо базы данных конфигурации, просто замените параметр dbnum правильным номером базы данных. Если у вас только одна база данных, это, вероятно, будет «1».
Обязательно измените владельца и разрешения для всех новых файлов.
$ chown -R openldap:openldap /etc/ldap/slapd.d
Теперь запустите slapd обратно.
$ systemctl start slapd
Вы никогда не должны вручную редактировать файлы конфигурации, находящиеся в каталоге /etc/ldap/slap.d/cn=config.
Всегда создавайте файлы ldif с необходимыми изменениями конфигурации и используйте утилиты ldapadd, ldapmodify, ldapdelete для обновления конфигурации OpenLDAP.
Используйте команду ниже для установки утилит ldap, если вы используете машину Debian.
sudo apt install ldap-utils
Обратитесь: Как использовать файлы LDIF для внесения изменений в систему OpenLDAP