Изменить openLDAP cn = config без запуска slapd

Я пытаюсь настроить кластер OpenLDAP (PoC) с несколькими мастерами. Где-то я создал плохую конфигурацию, и теперь slapd не запускается. Поскольку конфигурация cn = config / olc помечена тегом CRC32, она не принимает изменения вручную.

Итак, как мне внести изменения в конфигурацию без запущенного демона?

Есть slapadd , но мне нужно изменить, а не добавить ... верно? Мне кажется, что я упускаю что-то очевидное.

Если это важно, я думаю, что один или оба olcModuleLoad и olcServerID неверны.

Запуск openldap-2.4.42 на Ubuntu 16.04.

Обновление
Я ошибался, говоря, что правки не принимаются. Конфигурация была отклонена по другой причине (совпадение идентификатора сервера / URL не найдено), ошибка контрольной суммы была зарегистрирована, но не препятствует запуску демона.

Мне удалось вручную отредактировать файлы ldif в / etc / ldap / slap.d / cn = config и запустите сервер. (Хотя у меня еще не работает репликация с несколькими мастерами.)

3
задан 25 July 2017 в 20:54
2 ответа

أعلم أنك حلت مشكلتك بشكل أساسي ، لكنني اعتقدت أنني سأضيف خطواتي الخاصة لعمل تكوينات غير متصلة بالإنترنت إذا واجه أي شخص آخر هذا. هذا من وثائقي الخاصة للأنظمة القائمة على دبيان:

أحيانًا يكون من الضروري تعديل cn = config قاعدة بيانات نمط يدويًا (إذا لم تتمكن من الدخول إلى قاعدة البيانات باستخدام حساب الجذر على سبيل المثال) ، a cn = config يجب ألا يتم تحرير قاعدة بيانات الأنماط يدويًا. لإصلاح المشكلات مباشرةً في الملفات نفسها ، تحتاج إلى تحويل قاعدة البيانات إلى تنسيق ldif ، وإجراء التغييرات ، ثم استعادة قاعدة البيانات. يتم تحقيق ذلك باستخدام أدوات الصفع.

ابدأ بإيقاف خدمة slapd. من المستحسن عمل نسخة من دليل slapd وكافة محتوياته في حالة حدوث خطأ ما.

$ systemctl stop slapd
$ cp -a /etc/ldap/slapd.d /var/backups/slapd.d-offline-$(date +%s)

الآن قم بعمل نسخة احتياطية من قاعدة بيانات slapd التي تريد تغييرها. يجب استخدام أدوات الصفعة للنسخ الاحتياطي والاستعادة. يمكن استخدام 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

استبدل بقاعدة البيانات التي تريد بالفعل استعادتها.

لاستعادة قاعدة البيانات بدلاً من قاعدة بيانات التكوين ، ببساطة استبدل خيار dbnum بقاعدة البيانات الصحيحة رقم. إذا كان لديك قاعدة بيانات واحدة فقط ، فمن المحتمل أن تكون "1".

تأكد من تغيير الملكية والأذونات لجميع الملفات الجديدة.

$ chown -R openldap:openldap /etc/ldap/slapd.d

الآن ابدأ النسخ الاحتياطي slapd.

$ systemctl start slapd
3
ответ дан 3 December 2019 в 06:27

Вы никогда не должны вручную редактировать имеющиеся файлы конфигурации в каталоге /etc/ldap/slap.d/cn=config.

Всегда создавайте файлы ldif с необходимыми изменениями конфигурации и используйте утилиты ldapadd, ldapmodify, ldapdelete для обновления конфигурации OpenLDAP.

Используйте команду ниже для установки ldap утилит, если вы используете машину Debian.

sudo apt install ldap-utils

См .: Как использовать файлы LDIF для внесения изменений в систему OpenLDAP

0
ответ дан 3 December 2019 в 06:27

Теги

Похожие вопросы