LDAP(データベース、スキーマ、構成)を他のマシンに移行する方法


16

私はopenldap 2.4.40を使用していますが、既存のldapデータベース、構成、およびスキーマ(基本的にはldapサーバーに関連するすべてのもの)を新しいマシンに移行する必要があります。

問題は、古いslapd.confファイルではなくcn = config構成を使用することです。

openldapおよび他のサードパーティのWebサイトで提供されるドキュメントは、slapd.conf LDAPサーバーの移行にのみ役立ち、新しいcn = config構成ファイルを使用したLDAPサーバーの移行には役立ちません。

また、新しいスキーマ(属性タイプとオブジェクトクラス)があります。これらをできるだけ簡単に新しいマシンに移行する方法はありますか?

新しいマシンにスキーマを1つずつ手動で再構成および追加する以外の方法が必要です。

これは、おそらく古いマシンの電源を切るつもりで行われます。

TL; DR 古いマシンをオフにする目的で、LDAPデータベース、スキーマ、構成を1つのLDAPサーバーから新しいLDAPサーバーに便利に移行する方法はありますか

ありがとうございました。

*以下の回答を投稿しました

-フリオ


2
ソリューションは、質問の編集ではなく、回答として投稿する必要があります。
スヴェン

回答:


17

ソリューション :

だから、この作品を作るために私がやったことはここにあります。

  1. メインサーバーでSlapdを停止する
  2. メインサーバーからのSlapcatデータベース(エクスポートする必要があるデータベースが2つあります。「-n」タグを使用します

    slapcat -n 0 -l (config file location)
    

これはすべてのスキーマとcn = configをエクスポートし、

    slapcat -n 1 -l <database backup ldif path>

これにより、LDAPに保持するすべてのユーザーデータがエクスポートされます。

  1. 2 ldifファイルを新しいサーバーにSCPします(LDAPがサーバーにインストールされていることを確認し、これを容易にするために構成がほぼ同一であることを確認します)
  2. 新しいサーバーでslapdを停止します。
  3. フォルダのコンテンツを削除します

    /etc/ldap/slapd.d
    
  4. slapaddを使用して、構成を新しいサーバーにインポートします

    slapadd -n 0 -l (config ldif location)
    

    -n 0は、LDAPに構成を追加し直すためのものです

    slapadd -n 1 -l (database ldif location)
    

    -n 1は、データベースを追加してLDAPに戻すためのものです

*編集:どういうわけか、これらのコマンドは私の2回目3回目では動作しません....などなど。だから私はそれが動作することを確認した適切なコマンドは

  slapadd -n 0 -F /etc/ldap/slapd.d -l <config backup ldif path>

そして

  slapadd -n 1 -l <data backup ldif path>
  1. /etc/ldap/slapd.dフォルダーのアクセス権を変更します(chownおよびchmod)。openldapにchownし、755にchmodします。

また、/ var / lib / ldapフォルダー(chownおよびchmod)の許可をopenldapに変更します

TLS接続の証明書がある場合。証明書とキーを古いサーバーから新しいサーバーに同じ正確な場所にコピーします。場所の許可を変更します。

  1. slapdを開始します。

行って良かったです。

これが他の人に役立つことを願っています


/ var / lib / ldapのデータベースファイルのパーミッションに問題があり、所有者ldapに切り替える必要がありました。それ以外は、これは非常にスムーズでした。
シェルドンクレガー16

嬉しいそれはあなたのためにうまく機能
J_LDAP

これにはさらに投票が必要です。セットアップを機能させるために、2週間にわたって探してテストしてきました。ありがとう
hanzo2001

私のポストは、他の人を助けることができるうれしい
J_LDAP

私の場合、スキーマだけが期待どおりに機能し、データはコピーされていません。実際、宛先のデータセット/ var / lib / ldapにはユーザーに関する文字列が含まれていません...何も起きていないようです。/ var / lib / ldapにあるデータベースをソースから宛先マシンに手動でコピーする必要がありました。私は続いserverfault.com/questions/227813/openldap-replication-problem/...
ファビアーノTarlao

6

両方のツリー(cn=configおよび通常のデータ)をLDIFにエクスポートし、それらを新しいサーバーにインポートし直します(cn=config最初)。できた

また、cn=config本質的には単なるLDIFファイルのコレクションであり、このコレクションを新しいサーバー上の同じ相対的な場所にコピーすることも可能です(slapd実行されていない間)。


それらをどのように正確にエクスポートしますか?スキーマ(新しいオブジェクトクラス、属性タイプ)はどうですか?答えてくれてありがとう
J_LDAP

スキーマcn=schema,cn=config(またはそのようなもの)で定義する必要があり、LDIFファイルに含まれます。
スヴェン

回答に感謝します。後で試してみます。どうもありがとうございます。
J_LDAP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.