Debian から Ubuntu への LDAP サーバー移行エラー

Debian から Ubuntu への LDAP サーバー移行エラー

私たちは、古い Debian サーバーから Ubuntu サーバーに LDAP を移行しようとしています。slapcat の使用、構成の手動変更、その他のトリックなど、すべての試みは失敗しました。古いデータベースは bdb 構造を使用していると思いますが、調査したところ、これはもうサポートされていないことがわかりました。

移行中に実行した手順は次のとおりです。

slapcat を使用して古い LDAP データベースをバックアップおよびコピーしました。

sudo slapcat -n 0 -l config.conf
sudo slapcat -n 1 -l database.ldif

次に、古いサーバーのインストール仕様と一致するように、新しいサーバーに slapd をインストールし、dpkg で再構成しました。

これに続いて、slapadd を使用して古いデータベースを回復します。

sudo slapadd -F /etc/ldap/slapd.d -n 0 -l config.conf

次のエラーが発生しました

slapadd: could not add entry dn="cn=config" (line=1):
Closing DB...

次のコマンドでは、データベースの復元を試みます。

sudo slapadd -F /etc/ldap/slapd.d -n 1 -l database.ldif

しかし、再び複数のエラーが発生しました:

mdb_id2entry_put: mdb_put failed: MDB_KEYEXIST: Key/data pair already exists (-30799) "dc=cs"
=> mdb_tool_entry_put: id2entry_add failed: err=-30799
=> mdb_tool_entry_put: txn_aborted! MDB_KEYEXIST: Key/data pair already exists (-30799)
slapadd: could not add entry dn="dc=cs" (line=1): txn_aborted! MDB_KEYEXIST: Key/data pair already exists (-30799)
Closing DB...

この時点で、構成ファイルの読み込み中にエラーが発生しました。bdb から mdb アーキテクチャに変換しようとしましたが、database.ldif ファイルの読み込み中にエラーが発生してしまいました。

LDAP データベースを新しいサーバーに移行するための信頼できる方法を知っている人はいますか? ほとんどのガイドは非常に古くなっています。

答え1

このエラーは、ほとんどの古い slapd システム (<2.4.x) のデータベース バックエンドが古いために発生します。手動で hdb/bdb => mdb に変換すると、新しい slapd バージョンでこれらの問題が修正されます。

sudo slapcat -n 0 -l config.conf
sudo slapcat -n 1 -l database.ldif

必ず slapd サービスをオフにしてください。

service slapd stop

config.conf および database.ldif ファイル内のすべての hdb/bdb 参照を mdb に置き換えます。

slapadd を使用して設定をロードする前に、slapd.d ディレクトリを空にします。

rm -rf /etc/ldap/slapd.d/*

次に、更新された mdb 構成をロードします。

slapadd -F /etc/ldap/slapd.d -n 0 -l config.conf

次に、ldap ディレクトリも必ず空にしてください。

rm -rf /var/lib/ldap/*

次に、変換された mdb データベースをロードします。

slapadd -F /etc/ldap/slapd.d -n 1 -l database.ldif

slapd.d ディレクトリに openldap 権限を与えます。

chown -R openldap:openldap /etc/ldap/slapd.d

slapd サービスを開始すると、移行された LDAP データベースが作成されます。

service slapd start

slapcatで確認

slapcat -n 0
slapcat -n 1

関連情報