При обновлении дистрибутива, отвалился OpenLDAP:Вложение:
IMG_20230831_131330.jpg [ 677.13 KiB | Просмотров: 78809 ]
Код:
Backing up /etc/ldap/slapd.d in /var/backups/slapd-2.4.57+dfsg-2ubuntu1... done.
Moving old database directories to /var/backups:
- directory dc=padonak,dc=su... done.
Loading from /var/backups/slapd-2.4.57+dfsg-2ubuntu1:
- directory dc=padonak,dc=su... failed.
Loading the database from the LDIF dump failed with the following
error while running slapadd:
lt_dlopenext failed: (back_bdb) file not found
config error processing cn=module{0},cn=config: <olcModuleLoad> handler exited with 1
slapadd: bad configuration directory!
Removing obsolete conffile /etc/ldap/schema/ppolicy.schema ...
Removing obsolete conffile /etc/ldap/schema/ppolicy.ldif ...
Job for slapd.service failed because the control process exited with error code.
See "systemctl status slapd.service" and "journalctl -xeu slapd.service" for details.
invoke-rc.d: initscript slapd, action "start" failed.
× slapd.service - LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol)
Loaded: loaded (/etc/init.d/slapd; generated)
Drop-In: /usr/lib/systemd/system/slapd.service.d
└─slapd-remain-after-exit.conf
/run/systemd/system/service.d
└─zzz-lxc-service.conf
Active: failed (Result: exit-code) since Wed 2023-08-31 10:25:13 UTC; 2ms ago
Docs: man:systemd-sysv-generator(8)
Process: 1713 ExecStart=/etc/init.d/slapd start (code=exited, status=1/FAILURE)
Aug 31 11:22:56 padonak slapd[1718]: lt_dlopenext failed: (back_bdb) file not found
Aug 31 11:22:56 padonak slapd[1718]: config error processing cn=module{0},cn=config: <olcModuleLoad> handler exited with 1
Aug 31 11:22:56 padonak slapd[1718]: DIGEST-MD5 common mech free
Aug 31 11:22:56 padonak slapd[1718]: DIGEST-MD5 common mech free
Aug 31 11:22:56 padonak slapd[1718]: slapd stopped.
Aug 31 11:22:56 padonak slapd[1718]: connections_destroy: nothing to destroy.
Aug 31 11:22:56 padonak slapd[1713]: ...fail!
Aug 31 11:22:56 padonak systemd[1]: slapd.service: Control process exited, code=exited, status=1/FAILURE
Aug 31 11:22:56 padonak systemd[1]: slapd.service: Failed with result 'exit-code'.
Aug 31 11:22:56 padonak systemd[1]: Failed to start LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol).
Как оказалось:
Changes to OpenLDAP 2.5.x
It took more than 10 years for OpenLDAP 2.5.x to be released, and as
such it is important to understand the changes that can impact
production environments and how to deal with them.
The most important change in this release is the removal of the
following backends:
BDB
HDB
Shell
Installations using these backends will need to migrate to a supported
backend instead, like LMDB (preferred).
The nssov overlay has also been dropped from the package.После этого пришлось долго искать решение. Да и повазиться по полной. Но..... результат положительный!
Что нада делать: 1. необходимо найти резервный файл LDIF, экспортированный во время обновления.процесс. Это файл конфигурации,он должен находиться по адресу:
Код:
/var/backups/slapd-<ПРЕДЫДУЩАЯ ВЕРСИЯ>/cn=config.ldif
<ПРЕДЫДУЩАЯ ВЕРСИЯ> , скорее всего, должна быть последней версией 2.4.x, которую использовали перед попыткой обновления до 2.5.x.
Код:
/var/backups/slapd-2.4.49+dfsg-2ubuntu1/cn=config.ldif.
сделаем копию файла для работы
Код:
mkdir /tmp/padonak
Код:
cp /var/backups/slapd-2.4.49+dfsg-2ubuntu1/cn=config.ldif /tmp/padonak
Отредактировать копию файла
cn=config.ldif, чтобы устранить отмеченные проблемы, например, удаленные или переименованные модули или серверные части. В нашем случае нам следует сделать следующее:
Изменить
olcModuleLoad:
back_bdb или
back_hdb на
back_mdb.
Если есть запись
olcBackend:
bdb или
hdb, изменить ее на
mdb или удалить, если не нужно переопределять какие-либо глобальные настройки LMDB.
Для каждой настроенной базы данных BDB или HDB: Изменить объектный класс:
olcBdbConfig или
olcHdbConfig на
olcMdbConfig.
Также обновить
structuralObjectClass.
Изменить
olcDatabase:
bdb или
hdb на
mdb.
Также обновить атрибут в DN, например:
olcDatabase={1}mdb,cn=config. Удалить все атрибуты
olcDbConfig.
Добавить атрибут
olcDbMaxSize, чтобы установить максимальный размер базы данных в байтах. Если не настроено, значение по умолчанию — 10 МБ.
вот разница из исходных и измененных файлов в примере сценария: - удалить строку
+ добавить строку
Код:
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
-olcModuleLoad: {0}back_bdb
+olcModuleLoad: {0}back_mdb
structuralObjectClass: olcModuleList
entryUUID: 216f3358-632c-103b-8f5c-159102fdad19
creatorsName: cn=config
@@ -617,9 +617,9 @@
modifiersName: cn=config
modifyTimestamp: 20210616202109Z
-dn: olcBackend={0}bdb,cn=config
+dn: olcBackend={0}mdb,cn=config
objectClass: olcBackendConfig
-olcBackend: {0}bdb
+olcBackend: {0}mdb
structuralObjectClass: olcBackendConfig
entryUUID: 216fb710-632c-103b-8f5d-159102fdad19
creatorsName: cn=config
@@ -658,10 +658,10 @@
modifiersName: cn=config
modifyTimestamp: 20210616202109Z
-dn: olcDatabase={1}bdb,cn=config
+dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
-objectClass: olcBdbConfig
-olcDatabase: {1}bdb
+objectClass: olcMdbConfig
+olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=padonak,dc=su
olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * non
@@ -672,15 +672,11 @@
olcRootDN: cn=admin,dc=padonak,dc=su
olcRootPW:: 53d7b336598cff021687d249d5236b5716d64dd3
olcDbCheckpoint: 512 30
-olcDbConfig: {0}set_cachesize 0 2097152 0
-olcDbConfig: {1}set_lk_max_objects 1500
-olcDbConfig: {2}set_lk_max_locks 1500
-olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcDbIndex: cn,uid eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq
-structuralObjectClass: olcBdbConfig
+structuralObjectClass: olcMdbConfig
entryUUID: 216fc25a-632c-103b-8f5e-159102fdad19
creatorsName: cn=config
createTimestamp: 20210616202109Z
3. удалить содержимое /etc/ldap/slapd.d/, чтобы оно это пустой каталог
Код:
rm /etc/ldap/slapd.d/*
4. Загрузить отредактированный файл cn=config.ldif в файл cn=config:
Код:
slapadd -F /etc/ldap/slapd.d -n0 -l /tmp/padonak/cn=config.ldif
Если команда выше не удалась, назад к шагу 2.5. После успешного выполнения команды slapadd изменить разрешения на Каталог /etc/ldap/slapd.d
Код:
chown -R openldap:openldap /etc/ldap/slapd.d/
Права доступа к файлам должны быть правильными, но проверить, что обычные файлы имеют разрешения 0600 (-rw-------), и каталоги имеют разрешения 0750 (drwxr-x---).
Ну и...... полетели :
Код:
service slapd restart
Код:
service slapd status
_________________
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
![Изображение](http://hlstats.drivesource.ru/sig-113-random.png)