ライン

ポイント:*

ライン

 はじめに

CentOS 5.11と6.6

 OpenLDAPの導入は個人的にはなかなか実施できていませんが、メモだけは増やしておこうと思います。
今回はCentOS 5.11とCentOS 6.6で実施している例です。
2.3系のLDAPにデータを保有していますが、2.4系のサーバにレプリケーションをしたいケースを試します。そんなメモです。

 インストールなど

 FreeBSDじゃないと、なんかいちいちページにメモが残らないと不安になります。CentOSですけど。
まずは、2.3系のLDAPサーバを準備したかったので、CentOS 5.11をインストールし、アカウントを準備して、OpenLDAPをyumで入れました。

# useradd -u 1001 -d /home/foo -m -s /bin/tcsh foo -g foo  -G wheel
# yum install openldap-servers openldap-clients
# chkconfig ldap on
# service ldap status
slapd は停止しています
# rpm -ql openldap-servers | grep slurpd
/usr/sbin/slurpd
/usr/share/man/man8/slurpd.8.gz
# cd /etc/openldap
# cp -p  slapd.conf  slapd.conf_orig
# mkdir /var/log/ldap
# chown ldap:ldap /var/log/ldap
# touch /var/log/ldap/replog 
# chmod 600 /var/log/ldap/replog 
# chown ldap:ldap /var/log/ldap/replog 
# slappasswd
New password:********
Re-enter new password:********

 外枠の準備は終わり。データベースは準備するのは面倒だったので、郵便番号のCSVをUTF8に変換して取り込むことにしました。
1st.ldifと名前をつけて以下を /rootに保存。

dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
dc: example
o: Example co.,Ltd

dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group

 以下のように初期を準備しました。/etc/openldap/slapd.confは以下のようにしてあります。
要するに、パスワードぐらいしか入れていません。

# grep -v ^#  slapd.conf|grep -v ^$
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
allow bind_v2
pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args
database        bdb
suffix          "dc=example,dc=com"
rootdn          "cn=Manager,dc=example,dc=com"
rootpw          {SSHA}~
directory       /var/lib/ldap
index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

郵便番号のDBは、SJISになっていたり、半角カナが入っていたりしてなかなか残念な状態です。
Yet Another Diary OpenLDAP 2.4 ダミーデータの作成のページを参考に、ldifファイルを準備することにしましたが、
入手したら、iconvで変換して保管しました。

# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f /root/1st.ldif
# iconv -f sjis -t utf8  ken_all.csv  > ken_all_uft8.csv
# ./postal2ldif.rb ken_all_utf8.csv > ken_all_utf8.ldif
# ldapadd -x -W -D cn=Manager,dc=example,dc=com -f ken_all_utf8.ldif

のようにして更新しました。結構取り込み完了までには時間を要しました。

メモ

 ミスしてやり直しするときには以下。

# service ldap stop
# rm -f /var/lib/ldap/*

 導入後に確認するときには以下。

# ldapsearch -h localhost -W "postalCode=1610031" -p 389 -x -D "cn=Manager,dc=example,dc=com"

ここでは、動作していることを確認できれば良しとしました。

 2.4系のLDAPサーバを準備

レプリケーションを行う

 今回は、yumで追加せずに、ソースからコンパイルすることにしました。理由は、これまでと同じslapd.confの書き方で実装したかったからです。
…とはいっても前提のパッケージが入っていないのは困るので、事前準備しました。

# yum install libtool-ltdl libtool-ltdl-devel gcc

 ソースを入手してきます。

# wget http://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.40.tgz
# tar pzxvf openldap-2.4.40.tgz

configure 投入します。

# ./configure --prefix=/usr/local/ldap --enable-crypt=yes  --enable-overlays=yes --enable-modules=yes \
 --enable-ppolicy=mod --enable-debug --enable-syslog
# make depend && make && make install

導入後は、サービスを起動し、データを持ってきて投入。そして検索してみることにします。

これまで準備している2.3系マシンで実施して持ってきます。すぐに完了すると思います。

# slapcat > /tmp/ldapmst0.ldif

のようにしてデータを取り出します。これを今準備したマシンにコピーします。
サービスはあげていない状態で、

# slapadd -l ldapmst0.ldif
# slapindex
# /usr/local/ldap/libexec/slapd -h ldap:/// -f /usr/local/ldap/etc/openldap/slapd.conf
# ldapsearch -h localhost -W "postalCode=1610031" -p 389 -x -D "cn=Manager,dc=example,dc=com"

のような操作を行いました。
slapaddが1分程度。CSVから追加するのには結構かかりましたが、こっちは素早く実施することができました。
また、ldapsearchでは、問題なく引けることを確認できました。※ldapd.confが正しく設定されていることが前提です

後は同期をとってちゃんと更新できてくることを確認することになります。
最初は設定を加えるところからですが、時間切れなので後日実施することにします。


【改訂履歴】作成:2015/10/13


【参照ページ】

 
Copyright © 1996,1997-2006,2007- by F.Kimura,