Bezstresowa aktualizacja schematu LDAP, na węźle typu slave serwera OpenLDAP

Definicja problemu.

UWAGA: Nie jestem ekspertem od OpenLDAP. Nie wiem czy wykonana przeze mnie i opisana poniżej procedura jest w 100% bezpieczna dla danych. Zawsze pamiętaj o kopii zapasowej bazy przed wykonaniem tego typu operacji. U mnie się udało.

Jest serwer OpenLDAP pracujący jako tzw. slave, który utrzymuje replikę jednej z gałęzi katalogu z serwera typu master. Replikowana gałąź jest oparta o “autoski” schemat danych. Replikacja odbywa się w oparciu o natywne mechanizmy OpenLDAP.

Pewnego dnia okazuje się, że zmienia się schemat replikowanej gałęzi. Administrator serwera typu master przysyła nowy plik ze schematem, ale nie dostarcza żadnych dodatkowych wskazówek. Administrator serwera typu slave boi się uaktualnić schemat własnego serwera bo tak do końca nie wie jakie zmiany nastąpiły w schemacie i czy np. nie okaże się że po podmianie schematu, dane które są w tej chwili w katalogu, nie staną się automatycznie niezgodne z nowym schematem.

Rozwiązanie

1. Zatrzymujemy serwer OpenLDAP (typu slave, bo właśnie tym administrujemy)

2. W pliku /etc/openldap/slapd.conf szukamy fragmentu z definicją parametrów database i directory:

Wartość parametru directory określa ścieżkę w której OpenLDAP utrzymuje swoją bazę danych. Z powyższego fragmentu konfiguracji widać, że baza z danymi znajduje się w katalogu /var/lib/ldap. Pamiętając, że i tak nasz serwer to jedynie replika serwera typu master usuwamy lub przegrywamy w “bezpieczne miejsce” całą zawartość tego katalogu, z wyjątkiem pliku DB_CONFIG. W systemie produkcyjnym, bezpieczniej będzie zawartość katalogu przegrać, dzięki czemu będziemy mieć kopię zapasową bazy na wypadek jakiegoś “niepowodzenia”.

 

3. Uruchamiamy serwer OpenLDAP.

Serwer jest na tyle sprytnie napisany, że gdy zauważy brak plików w katalogu z bazą danych, to wszystkie wymagane pliki założy od nowa, a następnie zacznie synchronizację z masterem “od zera”.

Dzięki temu nawet wszystkie dane są “zasysane” od nowa i powinny być zgodne z nowym schematem.

Napisano w Administracja