Я пытаюсь настроить кластер 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
и запустите сервер. (Хотя у меня еще не работает репликация с несколькими мастерами.)
أعلم أنك حلت مشكلتك بشكل أساسي ، لكنني اعتقدت أنني سأضيف خطواتي الخاصة لعمل تكوينات غير متصلة بالإنترنت إذا واجه أي شخص آخر هذا. هذا من وثائقي الخاصة للأنظمة القائمة على دبيان:
أحيانًا يكون من الضروري تعديل 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
Вы никогда не должны вручную редактировать имеющиеся файлы конфигурации в каталоге /etc/ldap/slap.d/cn=config.
Всегда создавайте файлы ldif с необходимыми изменениями конфигурации и используйте утилиты ldapadd, ldapmodify, ldapdelete для обновления конфигурации OpenLDAP.
Используйте команду ниже для установки ldap утилит, если вы используете машину Debian.
sudo apt install ldap-utils
См .: Как использовать файлы LDIF для внесения изменений в систему OpenLDAP