OpenLDAPのレプリケーション機能(ミラーモード)¶
前提条件¶
- slapd.confに書く形式
vi /etc/sysconfig/ldap -------------------- # Options of slapd (see man slapd) #SLAPD_OPTIONS= SLAPD_OPTIONS="-f /etc/openldap/slapd.conf"
- slapdが単体で機能すること
- 1号機と2号機での同期とすること
- 1号機を基準に2号機を作成する
設定手順¶
同期設定¶
- それぞれのslapd.confに次の編集を行う
vi /etc/openldap/slapd.conf -------------------- # コメントアウトを外す moduleload syncprov.la overlay syncprov # 1号機の場合 serverID 1 # 2号機の場合 serverID 2 syncrepl rid=1 provider=ldap://自分のIPアドレス:389 bindmethod=simple binddn="cn=Manager,dc=example,dc=com" credentials="平文のパスワード" searchbase="dc=example,dc=com" schemachecking=on type=refreshAndPersist retry="60 +" syncrepl rid=2 provider=ldap://相手のIPアドレス:389 bindmethod=simple binddn="cn=Manager,dc=example,dc=com" credentials="平文のパスワード" searchbase="dc=example,dc=com" schemachecking=on type=refreshAndPersist retry="60 +" mirrormode on
- 1号機2号機両方のサービスを再起動する
systemctl restart slapd
初回同期¶
1号機から2号機へ初回同期を行う。
- 両系のslapdを停止する
systemctl stop slapd
- 1号機で処理
- 1号機のslapcatを取得する
slapcat -n 2 -l slapd.ldif (slapcatの権限設定やバージョンによっては slapcat -n 2 -l slapd.ldif としないと通らないこともある)
- 取得したslapcatを2号機に転送する
scp slapd.ldif 2号機のIP:/root
- 1号機のslapcatを取得する
- 2号機で処理
- データベースをクリアする
rm -rf /var/lib/ldap/*
- データベース設定をコピーする
cp -p /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG chown ldap.ldap /var/lib/ldap/DB_CONFIG
- slapcatしたファイルをslapaddする
slapadd -l slapd.ldif
- 作成されたDBファイルの権限を変更する
chown ldap.ldap /var/lib/ldap/*
- データベースをクリアする
- 両系のslapdを開始する
systemctl start slapd