Я запускаю сервер openLDAP версии 2.4.40 на CentOS 7. LDAP будет настроен с помощью опции online conf (olc). Благодаря этому вопросу я знаю, что файлы базы данных slapd находятся в /var/lib/ldap
.
Я пытаюсь запустить openLDAP сервер на linux box как раздел ОС только для чтения и другой раздел для постоянных данных. Я смогу установить и настроить openLDAP на разделе OS, но потеряю доступ к нему после настройки.
Вопрос: Возможно ли изменить место чтения/записи данных LDAP с /var/lib/ldap на место в разделе постоянных данных?
Я использовал для перемещения базы данных openldap по умолчанию после каждой новой настройки.
Действия, которые я выполняю, когда Я хочу переместить базу данных:
slapcat
содержимое ветки cn = config
в файле LDIF / var / lib / ldap
в любом месте openldap
принадлежит новый каталог и все файлы внутри olcDbDirectory
в новое место slapadd -F /etc/ldap/slapd.d -b cn = config -l /path/to/file/file.ldif
(Перед тем как сделать это, убедитесь, что /etc/ldap/slapd.d
пуст.) Убедитесь, что /etc/ldap/slapd.d
и все его содержимое принадлежат автор openldap
Отредактируйте необходимую конфигурацию, чтобы позволить Slapd использовать этот новый каталог базы данных
. Например, с помощью apparmor
отредактируйте файл /etc/apparmor.d/usr. sbin.slapd
и добавьте следующие строки
/path/to/new/db/ r,
/path/to/new/db/** rwk,
Обычно это помогает. Это также способ резервного копирования конфигурации моих экземпляров openldap.
Openldap, похоже, не поддерживает перемещение базы данных, файла базы данных после его создания. Openldap в настоящее время также не поддерживает удаление файлов БД.
Можно создать новый файл БД и определить его атрибут olcDbDirectory для пути в другом разделе.
dn: olcDatabase=bdb,cn=config
objectClass: olcBdbConfig
olcDatabase: bdb
olcDbDirectory: /partition/db/new-db-file
olcSuffix: dc=example,dc=net
Информация, найденная в главе 6.1.1.4.5 Добавление / удаление баз данных с использованием OLC
Я прочитал ваш вопрос в двух частях:
/var/lib/ldap
Хотя я подозреваю, что #2 возможно, у меня нет достаточного непосредственного опыта работы с OpenLDAP, чтобы обратиться к этому напрямую. Что я могу сделать, так это предложить альтернативное решение для #1. Тривиально смонтировать разностную часть диска в /var/lib/ldap
, как с помощью команды mount
, так и с помощью fstab
. Это должно эффективно достичь вашей цели, независимо от того, работает ли OpenLDAP с этим нативно или нет. Вы также можете заменить папку /var/lib/ldap
сим-ссылкой на желаемое место. Опять же, это обходит OpenLDAP и любую поддержку, которая встроена или не встроена в этот проект.
Наконец, вы также должны подумать о сохранении доступа на запись для определённых областей журнала. Методы, описанные в параграфе выше, могут работать и для перемещения мест расположения лог-файлов.
.Я сделал это успешно и использовал его в AWS, чтобы сохранить свои данные, когда мне нужно обновить образ машины. Если вы пересобирали OpenLDAP с помощью команды
slaptest -f slapd.conf -F slapd.d
(да, мы все еще используем старый способ конфигурации, но запускаем его с помощью slapd.d
— я работаю над этим)
тогда все, что вам нужно сделать, это изменить расположение каталога в разделе конфигурации базы данных slapd.conf
directory /data/ldap
Создайте файл DB_CONFIG
(от chown
до ldap:ldap
) в /data/ldap
, потому что LDAP будет кричать, если он не там.
Как только вы запустите команду slaptest
(slaptest -f slapd.conf -F slapd.d
), ваша БД будет создана там.
Вам, вероятно, потребуется chown -R ldap:ldap /data
и /etc/openldap
после выполнения команды slaptest
.
В случае успеха ваша БД или БД будут расположены в /data/ldap
Сохраните файл slapd.conf
на внешнем разделе, чтобы вы могли импортировать его обратно, поднять другой сервер.
Если вам нужно запустить другой сервер, импортируйте файл slapd.conf
и запустите команду slaptest. Вам нужно chown -R ldap:ldap
в /data
и /etc/openldap
снова, но когда вы запускаете openldap, он должен выбрать БД на внешнем разделе.
В настоящее время это решение находится в стадии разработки, но оно хорошо помогает нам поддерживать OpenLDAP в облаке. Мы, очевидно, упростим этот неудобный процесс. Мы напишем все сценарии, возможно, переместим /etc/openldap
на внешний диск с символической ссылкой и изменим slapd.d
только с помощью ldifs
вместо того, чтобы полагаться на на устаревшем slapd.conf
, но пока он работает нормально.