2 つの OpenLDAP サーバー間でマスター - スレーブ レプリケーションを設定したいと考えています。
実行するとldapsearch -H ldapi:/// -Y EXTERNAL -b "cn=config" -LLL -Q "olcDatabase=*" dn
次のようになります:
マスターについて:
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcOverlay={0}syncprov,olcDatabase={0}config,cn=config
dn: olcDatabase={1}hdb,cn=config
dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config
dn: olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
dn: olcOverlay={2}syncprov,olcDatabase={1}hdb,cn=config
奴隷について:
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}mdb,cn=config
スレーブでは以下を実行します:ldapmodify -Y EXTERNAL -H ldapi:/// -f rp.ldiff
私のはrp.ldiff
こんな感じです:
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=003
provider=ldap://192.168.2.3:389/
bindmethod=simple
binddn="uid=rpuser,dc=redacted,dc=co"
credentials=redacted
searchbase="dc=redacted,dc=co"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="30 5 300 3"
interval=00:00:05:00
を追加するときは、rpuser
次のようなものを使用しました。
dn: uid=rpuser,dc=redacted,dc=co
objectClass: simpleSecurityObject
objectclass: account
uid: rpuser
description: Replication User
userPassword: redacted
そして、次のような出力が得られます。
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}hdb,cn=config"
ldap_modify: No such object (32)
matched DN: cn=config
管理者ユーザーを使用しようとすると、同じことが起こります。
この問題を克服してレプリケーションの設定を完了するにはどうすればよいですか?
答え1
問題は の追加にあるとは思いませんuid=rpuser,dc=redacted,dc=co
。 の変更olcDatabase={1}hdb,cn=config
が失敗しています。 スレーブ (最近のコンシューマー) には がなくolcDatabase={1}hdb,cn=config
、代わりに がありますolcDatabase={1}mdb,cn=config
。
補足:
1. TLS を入手してください。パスワード (およびディレクトリの残りの部分) を暗号化せずにネットワーク経由で送信します。2
.slapo-memberOf
レプリケーションは興味深い方法。