これはstackoverflowの質問よりもserverfaultの質問に似ていることを知っていますが、serverfaultはまだ上がっていないので、ここに行きます:
Redhatサーバー間でアプリケーションを移動することになっていますが、アプリケーションの内部動作について十分な知識がなくても、スキーマなどを使用してOpenLDAPデータベースをあるマシンから別のマシンに移動するにはどうすればよいでしょうか。
どのファイルをコピーする必要がありますか?セットアップはかなり標準的なものだと思います。
SourceRebels answerの問題は、slapcat(8)
が、ldapadd(1)
/ldapmodify(1)
のデータの順序付けを保証しないことです。 manページから:
[。 (1)最初に並べ替えられません。
さらに、バックエンドファイルを使用してデータベースをダンプするツールを使用し、次にldapプロトコルを介してldifをロードするツールを使用することはあまり一貫性がありません。
slapcat(8)
/slapadd(8)
[〜#〜] or [〜#〜]ldapsearch(1)
/ldapmodify(1)
の組み合わせを使用することをお勧めします。私の好みは、LDAPサーバーへのシェルアクセスやファイルの移動を必要としないため、後者になります。
たとえば、dc = master、dc = comのマスターサーバーからデータベースをダンプし、バックアップサーバーにロードします。
$ ldapsearch -Wx -D "cn = admin_master、dc = master、dc = com" -b "dc = master、dc = com" -H ldap://my.master.Host -LLL> ldap_dump -20100525-1.ldif $ ldapadd -Wx -D "cn = admin_backup、dc = backup、dc = com" -H ldap://my.backup.Host -f ldap_dump-20100525-1.ldif
上記の-Wフラグは、ldap admin_masterパスワードの入力を要求しますが、出力をファイルにリダイレクトしているため、プロンプトは表示されず、空の行が表示されます。先に進み、ldap admin_masterのパスワードを入力すると、機能します。 ldapaddを実行する前に、出力ファイルの最初の行を削除する必要があります(LDAPパスワードを入力してください)。
最後のヒント、ldapadd(1)
は、-a
(追加)フラグがオンになっているldapmodify(1)
へのハードリンクです。
ldapsearchとldapaddは、必ずしもLDAP DBを複製するのに最適なツールではありません。 slapcatとslapaddは、はるかに優れたオプションです。
Slapcatを使用してDBをエクスポートします。
slapcat > ldif
Slapaddを使用してDBをインポートします(LDAPサーバーが停止していることを確認してください)。
slapadd -l ldif
私はプロトコルを介してデータベースをコピーすることを好みます:
まず、両方のサーバーに同じスキーマがあることを確認してください。
-ldapsearchを使用してデータベースをダンプします。
ldapsearch -LLL -Wx -D "cn = admin、dc = domain" -b "dc = domain"> domain.ldif
-そして、新しいサーバーにインポートします:
ldapmodify -Wx -D "cn = admin、dc = domain" -a -f domain.ldif
一行で:
ldapsearch -LLL -Wx -D "cn = admin、dc = domain" -b "dc = domain" | ldapmodify -w pass -x -D "cn = admin、dc = domain" -a
Bin/ldap *コマンドを使用することにより、サーバーと直接通信している間にbin/slap *コマンドを使用することにより、バックエンドファイルを処理します。
ありがとう、ヴィッシュ。魅力のように働いた!コマンドを編集しました:
ldapsearch -z max -LLL -Wx -D "cn=Manager,dc=domain,dc=fr" -b "dc=domain,dc=fr" >/tmp/save.ldif
ldapmodify -c -Wx -D "cn=Manager,dc=domain,dc=fr" -a -f /tmp/save.ldif
-z max
サイズ制限と-c
ターゲットドメインが既に存在する場合でも続行します(私の場合)。
(コメントを書くには評判が足りません...)
Ldapsearchは、LDAPサーバーへの接続を開きます。 Slapcatは代わりにデータベースに直接アクセスします。つまり、ACL、時間とサイズの制限、およびLDAP接続の他の副産物は評価されないため、データは変更されません。 (Matt Butcher、「OpenLDAPをマスターする」)