Wednesday, January 14, 2009

LDAP kayıtlarını başka bir sunucuya aktarma

LDAP sunucunuzu farklı dağıtım bir Linux'a aktarmak isterseniz aşağıdaki işlemler işinize yarabilir.

LDAP sunucunuzun çalışmakta olduğu makinada aşağıdaki komut ile kayıtları bir dosyaya aktarın. Servisi durdurmanıza gerek yok.
slapcat -l dosyaadi.ldif
Kullanmakta olduğunuz "schema" dosyalarını diğer makinaya aktarın. Fedora/RedHat/CentOS da "/etc/openldap/schema" dizini altında bulunmakta.

Diğer makinada LDAP servisini durdurun.
service ldap stop
komutunu kullanabilirsiniz. Daha sonra "/var/lib/ldap" dizini altındaki dosyaları silin.

Önceki makinadan slapd.conf dosyasını "/etc/openldap/" dizinine kopyalayarak, dosya içinde gerekli dizin adı değişikliklerini yapınız. Kayıtları şu komutla aktarınız:
slapadd -v -f /etc/openldap/slapd.conf -l dosyaadi.ldif
işlem sırasında (slapcat: could not parse entry) şeklinde hata alırsanız, hatanın ait olduğu satırdaki kaydı kontrol edin, boş olan, fakat zorunlu kayıt olması gereken alanları doldurun ya da yukarıdaki komutu hatalarda devam et seçeneği ile kullanın. "-c". Tekrar etmeden önce dosyaları tekrar silmeyi unutmayın.

Bittikten sonra, "/var/lib/ldap" dizini altındaki dosyalarının sahibini "ldap" olarak değiştirin.
chown ldap:ldap * -R
LDAP servisini
başlatın, (DB_CONFIG bulunamadığı yönünde hata alırsanız, "/etc/openldap/" dizinindeki örnek dosyayı "/var/lib/ldap/DB_CONFIG" adıyla kopyalayınız.
service ldap start
Test için şu komutu kullanabilirsiniz: ("organizasyon.adı.tr" sizde farklı olacaktır)
ldapsearch -x -b 'dc=organizasyon,dc=adı,dc=tr' '(objectclass=*)'
Web üzerinden yönetim için, "phpldapadmin" e göz atın, yum ile kurabilirsiniz.

Ek olarak ileride
dosyadan kayıt eklemek için:
ldapadd -x -D "cn=ldap_yönetici_kullanıcısı,dc=organizasyon,dc=adı,dc=tr" -W -f dosya_adı.ldif
komutunu kullanabilirsiniz.