OpenLDAP を使用した RHEL6 での N-Way マルチマスターレプリケーションの設定
Issue
OpenLDAP を使用した RHEL6 での N-Way マルチマスターレプリケーションの設定
Environment
- Red Hat Enterprise Linux 6.2
- Master-1/m1 および Master-2/m2 という 2 つのサーバー
- Hostname: ldap1.example.org (Master-1)
- Hostname: ldap2.example.org (Master-2)
- Suffix: dc=example,dc=org
- OpenLDAP のバージョン:
- openldap-devel-2.4.23-20.el6.x86_64
- openldap-2.4.23-20.el6.x86_64
- openldap-clients-2.4.23-20.el6.x86_64
- openldap-servers-2.4.23-20.el6.x86_64
解決策
-
以下の手順では、OpenLDAP を使用して RHEL6.2 で N-Way マルチマスターレプリケーションを設定する手順を列挙します。上記を前提として、手順を説明します。
環境 -
Master-1(m1) Server
-
OpenLDAP サーバーパッケージをインストールします。
# yum install openldap-servers
-
Openldap-servers をインストールすると、bdb の例が設定された slapd.conf テンプレートが作成されます。この例では、slapd.conf を
cn=config 形式にします。cn=config は OpenLDAP 2.4 の新機能で、再起動せずに設定を動的に変更できます。 以下は、cn=config の使用を開始するために必要な最小限の slapd.conf です。include /etc/openldap/schema/corba.schema include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/openldap.schema include /etc/openldap/schema/ppolicy.schema include /etc/openldap/schema/collective.schema allow bind_v2 pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args #### Encrypting Connections TLSCACertificateFile /etc/pki/tls/certs/cacert.crt TLSCertificateFile /etc/pki/tls/certs/ldap.crt TLSCertificateKeyFile /etc/pki/tls/certs/ldap.key ### Database Config### database config rootdn "cn=admin,cn=config" rootpw config access to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break ### Enable Monitoring database monitor # allow only rootdn to read the monitor access to * by dn.exact="cn=admin,cn=config" read by * none
-
次に、上述の設定を簡単に説明します。
-
上記の設定には、必要なデフォルトのスキーマファイルが含まれています。必要なスキーマファイルのみを追加し、他のスキーマファイルを削除することもできます。
-
上記の設定では、OpenSSL を使用して作成された自己署名 CA を使用して署名された証明書を使用します。TLS* 行をコメントアウトして暗号化を回避することも、/etc/pki/tls/certs/ディレクトリーで make sinners.pem を使用して自己署名証明書を作成することもできます。 Openssl を使用して CA を作成し、証明書に署名する方法については、以下の記事を参照してください。
How do i configure CA and sign certificates using OpenSSL using Red Hat Enterprise Linux
-
cn=config データベースを定義しました。このデータベースの rootDN は cn=admin,cn=config で管理されており、この DN のパスワードは config です。
- cn=monitor は、OpenLDAP データベース、接続、リクエストを監視するために定義されています。こちらも cn=admin,cn=config で管理されます。
-
-
slapd.conf を cn=config 形式に変換します。
-
cn=config 形式を保存するために、slapd.d ディレクトリーを作成します。
# mkdir /etc/openldap/slapd.d/
-
slaptest を使用して、slapd.conf を cn=config に変換します。
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
-
ldap ユーザーに slapd.d ディレクトリーへの読み書きを許可します。
# chown ldap.ldap /etc/openldap/slapd.d # chown ldap.ldap /etc/openldap/slapd.d/* -R # chmod 700 /etc/openldap/slapd.d
-
証明書を使用している場合は、その証明書がユーザー ldap によって読み取り可能であることを確認してください。
# chown ldap.ldap /etc/pki/tls/certs/cacert.crt # chown ldap.ldap /etc/pki/tls/certs/ldap.crt # chown ldap.ldap /etc/pki/tls/certs/ldap.key
-
-
N-Way MMR を設定するまで、selinux を一時的に permissive モードに設定します。これは、cn=config データベースが ldapadd/modify/delete を使用して動的に変更される場合、データベースの変更を/etc/openldap/slapd.d に保存し直す方が適切であるためです。 現在、SELinux が Permissive に設定されているか、SELinux ポリシーを作成して書き込み操作を許可していない限り、SELinux の設定により、「slapd」プロセスで slapd.d ディレクトリーに書き込むことはできません。
-
LDAP サーバーでホストする接尾辞と、接尾辞に使用するデータベースを定義する必要があります。今回は、berkely DB を使用します。
以下は、使用する環境の bdb 定義です。1. dn: olcDatabase=bdb,cn=config 2. objectClass: olcDatabaseConfig 3. objectClass: olcBdbConfig 4. olcDatabase: {1}bdb 5. olcSuffix: dc=example,dc=org 6. olcDbDirectory: /var/lib/ldap 7. olcRootDN: cn=Manager,dc=example,dc=org 8. olcRootPW: redhat 9. olcDbCacheSize: 1000 10. olcDbCheckpoint: 1024 10 11. olcDbIDLcacheSize: 3000 12 olcDbConfig: set_cachesize 0 10485760 0 13. olcDbConfig: set_lg_bsize 2097152 14. olcDbConfig: set_lg_dir /var/tmp/bdb-log 15. olcDbConfig: set_flags DB_LOG_AUTOREMOVE 16. olcLimits: dn.exact="cn=Manager,dc=example,dc=org" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited 17. olcDbIndex: uid pres,eq 18. olcDbIndex: cn,sn,displayName pres,eq,approx,sub 19. olcDbIndex: uidNumber,gidNumber eq 20. olcDbIndex: memberUid eq 21. olcDbIndex: objectClass eq 22. olcDbIndex: entryUUID pres,eq 23. olcDbIndex: entryCSN pres,eq 24. olcAccess: to attrs=userPassword by self write by anonymous auth by dn.children="ou=admins,dc=example,dc=org" write by * none 25. olcAccess: to * by self write by dn.children="ou=admins,dc=example,dc=org" write by * read
上記の bdb 定義の簡単な説明:
- 1 行目から 5 行目では、DIT のバックエンドとして berkely Database (bdb) を使用することを、接尾辞として dc=example,dc=org を指定します。
- 6 行目では bdb ファイルの保存先を指定します。
- 7 ~ 8 行目では、接尾辞 dc=example,dc=org の rootdn (管理者) とパスワードを指定します。
-
行 9 ~ 11 では、接尾辞に必要な db キャッシュサイズ、チェックポイント、および IDLcachesize を指定します。
これらの属性の詳細は、OpenLDAP 管理者ガイドから取得できます。 -
行 12 ~ 15 では、bdb をより適切に管理するために必要な Berkely DB 環境変数を指定します。この例では、
bdb キャッシュサイズを 10MB、トランザクションログサイズを 2MB に設定し、トランザクションログは /var/tmp/bdb-log に保存し、必要なくなった場合にログが自動削除されるように設定しています。
この設定により、ディスクがトランザクションログでいっぱいになるのを防ぐことができます。 -
行 16 では roodn の制限を指定します。この例では、rootdn を無制限に設定しています。
- 17 ~ 21 行目では、パフォーマンスを向上させるために必要なインデックスを定義しています。
-
22~23 行目ではレプリケーションに必要なインデックスを定義しています。
-
行 24 では、接尾辞のアクセス制御リストです。上記の例では、基本的な ACL が使用されており、userPassword 属性を自身で変更できます。
anonymous は認証の必要があり、ou=admins,dc=example,dc=org で作成されたエントリーは変更できます。 -
行 25 では、ou=admins,dc=example,dc=com の下に作成されたエントリーに、すべてのエントリーを変更/削除/作成する権限を指定します。
attributes under "dc=example,dc=org".
-
上記の bdb 定義を cn=config の下に追加する前に、上記のトランザクションログディレクトリーを作成し、olcdbDirectory の下に記載されているディレクトリーが存在し、空であることを確認します。デフォルトでは、openldap-servers パッケージがインストールされると、/var/lib/ldap に DB_CONFIG ファイルが作成されます。cn=config で berkely db 環境変数を定義しているため、これを削除する必要があります。
# mkdir /var/tmp/bdb-log # chown ldap.ldap /var/tmp/bdb-log # chmod 700 /var/tmp/bdb-log # rm -rf /var/lib/ldap/* # chown ldap.ldap /var/lib/ldap
-
slapd サービスを開始します。
[root@ldap1 ldap]# service slapd start Starting slapd: [ OK ]
-
ldapsearch を実行して、cn=config データベースにクエリーできるかどうかを確認します。出力は次のようになります。
[root@ldap1 ~]# ldapsearch -x -b "cn=config" -D "cn=admin,cn=config" -w config -h localhost dn -LLL | grep -v ^$ dn: cn=config dn: cn=schema,cn=config dn: cn={0}corba,cn=schema,cn=config dn: cn={1}core,cn=schema,cn=config dn: cn={2}cosine,cn=schema,cn=config dn: cn={3}duaconf,cn=schema,cn=config dn: cn={4}dyngroup,cn=schema,cn=config dn: cn={5}inetorgperson,cn=schema,cn=config dn: cn={6}java,cn=schema,cn=config dn: cn={7}misc,cn=schema,cn=config dn: cn={8}nis,cn=schema,cn=config dn: cn={9}openldap,cn=schema,cn=config dn: cn={10}ppolicy,cn=schema,cn=config dn: cn={11}collective,cn=schema,cn=config dn: cn={12}samba,cn=schema,cn=config dn: olcDatabase={-1}frontend,cn=config dn: olcDatabase={0}config,cn=config dn: olcDatabase={1}monitor,cn=config
-
上記の bdb 定義 (手順 6) を ldif ファイル bdb.ldif に保存し、それを cn=config データベースに追加します。
[root@ldap1 kcs]# ldapadd -x -D "cn=admin,cn=config" -w config -f bdb.ldif -h localhost adding new entry "olcDatabase=bdb,cn=config"
- 上記のコマンドを実行すると、/var/lib/ldap に bdb ファイルが作成され、ステップ 9 で定義した bdb 環境変数を含む DB_CONFIG ファイルも作成されるはずです。
-
ldapsearch を実行して、cn=config データベースをクエリーできるかどうか、bdb 定義が定義どおりに表示されているかどうかを確認します。
[root@ldap1 kcs]# ldapsearch -x -b "cn=config" -D "cn=admin,cn=config" -w config -h localhost dn -LLL | grep -v ^$ dn: cn=config dn: cn=schema,cn=config dn: cn={0}corba,cn=schema,cn=config dn: cn={1}core,cn=schema,cn=config dn: cn={2}cosine,cn=schema,cn=config dn: cn={3}duaconf,cn=schema,cn=config dn: cn={4}dyngroup,cn=schema,cn=config dn: cn={5}inetorgperson,cn=schema,cn=config dn: cn={6}java,cn=schema,cn=config dn: cn={7}misc,cn=schema,cn=config dn: cn={8}nis,cn=schema,cn=config dn: cn={9}openldap,cn=schema,cn=config dn: cn={10}ppolicy,cn=schema,cn=config dn: cn={11}collective,cn=schema,cn=config dn: cn={12}samba,cn=schema,cn=config dn: olcDatabase={-1}frontend,cn=config dn: olcDatabase={0}config,cn=config dn: olcDatabase={1}monitor,cn=config dn: olcDatabase={2}bdb,cn=config [root@ldap1 kcs]# ldapsearch -x -b "cn=config" -D "cn=admin,cn=config" -w config -h localhost objectClass=olcBdbConfig -LLL dn: olcDatabase={2}bdb,cn=config objectClass: olcDatabaseConfig objectClass: olcBdbConfig olcDatabase: {2}bdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=example,dc=org olcAccess: {0}to attrs=userPassword by self write by anonymous auth by dn.chil dren="ou=admins,dc=example,dc=com" write by * none olcAccess: {1}to * by self write by dn.children="ou=admins,dc=example,dc=com" write by * read olcLimits: {0}dn.exact="cn=Manager,dc=example,dc=org" time.soft=unlimited time .hard=unlimited size.soft=unlimited size.hard=unlimited olcRootDN: cn=Manager,dc=example,dc=org olcRootPW: redhat olcDbCacheSize: 1000 olcDbCheckpoint: 1024 10 olcDbConfig: {0}set_cachesize 0 10485760 0 olcDbConfig: {1}set_lg_bsize 2097152 olcDbConfig: {2}set_lg_dir /var/tmp/bdb-log olcDbConfig: {3}set_flags DB_LOG_AUTOREMOVE olcDbIDLcacheSize: 3000 olcDbIndex: uid pres,eq olcDbIndex: cn,sn,displayName pres,eq,approx,sub olcDbIndex: uidNumber,gidNumber eq olcDbIndex: memberUid eq olcDbIndex: objectClass eq olcDbIndex: entryUUID pres,eq olcDbIndex: entryCSN pres,eq
-
/var/lib/ldap ディレクトリーをチェックして、ファイルが適切な LDAP ユーザー権限で作成されていることを確認します。
[root@ldap1 kcs]# ls -l /var/lib/ldap/ total 1580 -rw-r--r--. 1 ldap ldap 2048 Mar 24 10:03 alock -rw-------. 1 ldap ldap 24576 Mar 24 10:03 __db.001 -rw-------. 1 ldap ldap 737280 Mar 24 10:03 __db.002 -rw-------. 1 ldap ldap 13115392 Mar 24 10:03 __db.003 -rw-------. 1 ldap ldap 2162688 Mar 24 10:03 __db.004 -rw-------. 1 ldap ldap 753664 Mar 24 10:03 __db.005 -rw-------. 1 ldap ldap 32768 Mar 24 10:03 __db.006 -rw-r--r--. 1 ldap ldap 104 Mar 24 10:03 DB_CONFIG -rw-------. 1 ldap ldap 8192 Mar 24 10:03 dn2id.bdb -rw-------. 1 ldap ldap 32768 Mar 24 10:03 id2entry.bdb
-
接尾辞 dc=example,dc=org の基本的な DIT を作成します。以下は ldif データの例です
dn: dc=example,dc=org objectClass: top objectClass: dcObject objectclass: organization o: Example Organization dc: Example description: LDAP Example dn: ou=People,dc=example,dc=org objectClass: organizationalUnit ou: People dn: ou=Groups,dc=example,dc=org objectClass: organizationalUnit ou: Groups dn: ou=Admins,dc=example,dc=org objectClass: organizationalUnit ou: Admins dn: uid=student1,ou=People,dc=example,dc=org uid: student1 cn: student1 sn: 1 objectClass: top objectClass: posixAccount objectClass: inetOrgPerson loginShell: /bin/bash homeDirectory: /home/student1 uidNumber: 14583100 gidNumber: 14564100 userPassword: {SSHA}j3lBh1Seqe4rqF1+NuWmjhvtAni1JC5A mail: student1@example.org gecos: Student1 User dn: uid=student2,ou=People,dc=example,dc=org uid: student2 cn: student2 sn: 2 objectClass: top objectClass: posixAccount objectClass: inetOrgPerson loginShell: /bin/bash homeDirectory: /home/student2 uidNumber: 14583101 gidNumber: 14564100 userPassword: {SSHA}j3lBh1Seqe4rqF1+NuWmjhvtAni1JC5A mail: student2@example.org gecos: Student2 User dn: cn=students,ou=Groups,dc=example,dc=org objectClass: posixGroup objectClass: top cn: ldapusers userPassword: {crypt}x gidNumber: 14564100 memberuid: uid=student1 memberuid: uid=student2 dn: cn=replicator,ou=Admins,dc=example,dc=org cn: replicator sn: user objectClass: person userPassword: Secret123
-
ldif ファイルに上記のデータを保存して、このデータを ldapadd コマンドを使用して追加し、接尾辞が "dc=example,dc=org" の rootdn である、ユーザー "cn=Manager,dc=example,dc=com" をバインドします。
[root@ldap1 kcs]# ldapadd -x -D "cn=Manager,dc=example,dc=org" -w redhat -h localhost -f data1.ldif adding new entry "dc=example,dc=org" adding new entry "ou=People,dc=example,dc=org" adding new entry "ou=Groups,dc=example,dc=org" adding new entry "ou=Admins,dc=example,dc=org" adding new entry "uid=student1,ou=People,dc=example,dc=org" adding new entry "uid=student2,ou=People,dc=example,dc=org" adding new entry "cn=students,ou=Groups,dc=example,dc=org" adding new entry "cn=replicator,ou=Admins,dc=example,dc=org"
-
ステップ 1 からステップ 13 は Master-2(m2) システムで実行する必要があります。上記の手順がすべて正常に実行されるまでは、先に進まないでください。
-
レプリケーションの設定
-
以下の手順では、syncrepl を使用して両方のマスターでレプリケーションを有効にします。以下のような手順を踏んでいきます。
* 両方のマスターに syncprov モジュールをロードします。
* cn=config データベースの syncrepl を設定します。
* berkely データベース用 (dn: olcDatabase={2}bdb,cn=config) に syncrepl を設定します。-
レプリケーションを設定する前に、すべてのサーバーの時間が NTP を使用して厳密に同期されている必要があります。
-
両方のマスターに対して Syncprov モジュールを有効にします。cn=config 形式では、すべてのモジュールが cn=modules,cn=config と属性で指定されます。
モジュールをロードするのは olcModuleLoad です。以下の内容を ldif ファイルに保存し、両方のマスターに追加します。dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModuleLoad: syncprov.la [root@ldap1 mmr]# ldapadd -x -D "cn=admin,cn=config" -w config -f sync.ldif -h master1 adding new entry "cn=module,cn=config"[root@ldap1 mmr]# ldapadd -x -D "cn=admin,cn=config" -w config -f sync.ldif -h master2 adding new entry "cn=module,cn=config"
-
cn=config データベースの syncrepl を設定しています。
[root@ldap1 kcs]# cat config-repl.ldif #Specify ServerID for both the masters dn: cn=config changetype: modify add: olcServerID olcServerID: 101 ldap://ldap1.example.org olcServerID: 201 ldap://ldap2.example.org #Enable Syncprov Overlay for config database dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config changetype: add objectclass: olcOverlayConfig objectclass: olcSyncProvConfig olcOverlay: syncprov #Configure SyncRepl for config database dn: olcDatabase={0}config,cn=config changetype: modify add: olcSyncRepl olcSyncRepl: rid=001 provider=ldap://ldap1.example.org binddn="cn=admin,cn=config" bindmethod=simple credentials=config searchbase="cn=config" type=refreshAndPersist retry="5 5 300 5" timeout=1 olcSyncRepl: rid=002 provider=ldap://ldap2.example.org binddn="cn=admin,cn=config" bindmethod=simple credentials=config searchbase="cn=config" type=refreshAndPersist retry="5 5 300 5" timeout=1 - add: olcMirrorMode olcMirrorMode: TRUE
上記データの簡単な説明
- 上記の ldif ファイルでは、各マスターに一意の ServerID とプロバイダー (マスター) URI を指定します。
- レプリケーション合意ごとに cn=config の
- 一意の rid の syncprov オーバーレイを有効化します。
Master-1 の cn=config で上記を実行します。
[root@ldap1 kcs]# ldapmodify -x -D "cn=admin,cn=config" -w config -f config-repl.ldif -h ldap1.example.org modifying entry "cn=config" adding new entry "olcOverlay=syncprov,olcDatabase={0}config,cn=config" modifying entry "olcDatabase={0}config,cn=config
次に マスター 2 の cn=config で実行します。
[root@ldap1 kcs]# ldapmodify -x -D "cn=admin,cn=config" -w config -f config-repl.ldif -h ldap2.example.org modifying entry "cn=config" adding new entry "olcOverlay=syncprov,olcDatabase={0}config,cn=config" modifying entry "olcDatabase={0}config,cn=config"
-
olcSyncRepl ディレクティブ (ステップ 2) で指定された URL は、複製元のサーバーの URL です。
これらは、slapd がリッスンする URL (コマンドラインオプションの -h) と正確に一致する必要があります。そうしないと、slapd が自身の複製を試み、ループが発生する可能性があります。-
/etc/sysconfig/ldap Master-1 (ldap1.example.org) を編集して、-h と URL ldap1.example.org を指定して slapd を実行します。
SLAPD_LDAP=no SLAPD_LDAPI=no SLAPD_LDAPS=no SLAPD_URLS="ldap://ldap1.example.org:389 ldaps://ldap1.example.org ldapi:///"
-
slapd サービスを再起動し、slapd プロセスを確認します。
[root@ldap1 ~]# service slapd restart Stopping slapd: [ OK ] Starting slapd: [ OK ] [root@ldap1 ~]# ps aux | grep slapd ldap 3350 0.3 0.2 327928 5844 ? Ssl 10:20 0:00 /usr/sbin/slapd -h ldap://ldap1.example.org:389 ldaps://ldap1.example.org ldapi:/// -u ldap root 3358 0.0 0.0 103228 808 pts/1 S+ 10:21 0:00 grep slapd
-
Master-2 (ldap2.example.org) の/etc/sysconfig/ldap を変更して、-h および URL ldap2.example.org を指定して、slapd を実行します。
[root@ldap2 ~]# cat /etc/sysconfig/ldap | grep -v ^$ | grep -v ^# SLAPD_LDAP=no SLAPD_LDAPI=no SLAPD_LDAPS=no SLAPD_URLS="ldap://ldap2.example.org:389 ldaps://ldap2.example.org ldapi:///"[root@ldap2 ~]# service slapd restart Stopping slapd: [ OK ] Starting slapd: [ OK ] [root@ldap2 ~]# ps aux | grep slapd ldap 2348 0.0 0.3 302176 6804 ? Ssl 10:27 0:00 /usr/sbin/slapd -h ldap://ldap2.example.org:389 ldaps://ldap2.example.org ldapi:/// -u ldap root 2356 0.0 0.0 103228 812 pts/1 S+ 10:27 0:00 grep slapd
-
-
接尾辞 dc=example,dc=org をホストする berkely matabase の syncrepl を設定します。
[root@ldap1 kcs]# cat bdb-repl.ldif dn: olcDatabase={2}bdb,cn=config changetype: modify add: olcSyncRepl olcSyncRepl: rid=003 provider=ldap://ldap1.example.org binddn="cn=replicator,ou=Admins,dc=example,dc=org" bindmethod=simple credentials=Secret123 searchbase="dc=example,dc=org" type=refreshAndPersist retry="5 5 5 +" timeout=3 olcSyncRepl: rid=004 provider=ldap://ldap2.example.org binddn="cn=replicator,ou=Admins,dc=example,dc=org" bindmethod=simple credentials=Secret123 searchbase="dc=example,dc=org" type=refreshAndPersist retry="5 5 5 +" timeout=3 - add: olcMirrorMode olcMirrorMode: TRUE dn: olcOverlay=syncprov,olcDatabase={2}bdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov
上記データの簡単な説明
* We create syncrepl agreement specifying the rid for each agreement. * binddn used for the replication should have appropriate rights to add/modify/delete the entries
-
Master-1 の olcDatabase={2}bdb,cn=config で上記を実行します。
[root@ldap1 kcs]# ldapmodify -x -D "cn=admin,cn=config" -w config -f bdb-repl.ldif -h ldap1.example.org modifying entry "olcDatabase={2}bdb,cn=config" adding new qentry "olcOverlay=syncprov,olcDatabase={2}bdb,cn=config"
-
cn=config の syncrepl を作成したので、上記は Master-2 (ldap2.example.org) に複製される必要があります。
-
-
Master-1 に追加するサンプルのユーザー情報を作成し、Master-2 に複製されるかどうかを確認します。
[root@ldap1 kcs]# cat newuser.ldif dn: uid=student3,ou=People,dc=example,dc=org uid: student3 cn: student3 sn: 3 objectClass: top objectClass: posixAccount objectClass: inetOrgPerson loginShell: /bin/bash homeDirectory: /home/student3 uidNumber: 14583102 gidNumber: 14564100 userPassword: {SSHA}j3lBh1Seqe4rqF1+NuWmjhvtAni1JC5A mail: student3@example.org gecos: Student3 User
Master-1 (ldap1.example.org) にユーザーを追加します。
[root@ldap1 kcs]# ldapadd -x -D "cn=replicator,ou=admins,dc=example,dc=org" -w Secret123 -f newuser.ldif -h ldap1.example.org adding new entry "uid=student3,ou=People,dc=example,dc=org"
ユーザー Student3 を両方のマスターにレプリケートする必要があります
[root@ldap1 kcs]# ldapsearch -LLL -x -b "ou=People,dc=example,dc=org" -D "cn=replicator,ou=admins,dc=example,dc=org" -w Secret123 uid=student3 -h ldap2.exampl e.org dn: uid=student3,ou=People,dc=example,dc=org uid: student3 cn: student3 sn: 3 objectClass: top objectClass: posixAccount objectClass: inetOrgPerson loginShell: /bin/bash homeDirectory: /home/student3 uidNumber: 14583102 gidNumber: 14564100 userPassword:: e1NTSEF9ajNsQmgxU2VxZTRycUYxK051V21qaHZ0QW5pMUpDNUE= mail: student3@example.org gecos: Student3 User
-
参考資料
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.