プロジェクト

全般

プロフィール

OpenLDAPのレプリケーション機能(ミラーモード)

前提条件

  • slapd.confに書く形式
    vi /etc/sysconfig/ldap
    --------------------
    # Options of slapd (see man slapd)
    #SLAPD_OPTIONS=
    SLAPD_OPTIONS="-f /etc/openldap/slapd.conf" 
    
  • slapdが単体で機能すること
  • 1号機と2号機での同期とすること
  • 1号機を基準に2号機を作成する

設定手順

同期設定

  • それぞれのslapd.confに次の編集を行う
    vi /etc/openldap/slapd.conf
    --------------------
    # コメントアウトを外す
    moduleload syncprov.la
    
    overlay         syncprov
    
    # 1号機の場合
    serverID        1
    
    # 2号機の場合
    serverID        2
    
    syncrepl        rid=1
                    provider=ldap://自分のIPアドレス:389
                    bindmethod=simple
                    binddn="cn=Manager,dc=example,dc=com" 
                    credentials="平文のパスワード" 
                    searchbase="dc=example,dc=com" 
                    schemachecking=on
                    type=refreshAndPersist
                    retry="60 +" 
    
    syncrepl        rid=2
                    provider=ldap://相手のIPアドレス:389
                    bindmethod=simple
                    binddn="cn=Manager,dc=example,dc=com" 
                    credentials="平文のパスワード" 
                    searchbase="dc=example,dc=com" 
                    schemachecking=on
                    type=refreshAndPersist
                    retry="60 +" 
    mirrormode      on
    
  • 1号機2号機両方のサービスを再起動する
    systemctl restart slapd
    

初回同期

1号機から2号機へ初回同期を行う。

  • 両系のslapdを停止する
    systemctl stop slapd
    
  • 1号機で処理
    • 1号機のslapcatを取得する
      slapcat -n 2 -l slapd.ldif
      (slapcatの権限設定やバージョンによっては slapcat -n 2 -l slapd.ldif としないと通らないこともある)
      
    • 取得したslapcatを2号機に転送する
      scp slapd.ldif 2号機のIP:/root
      
  • 2号機で処理
    • データベースをクリアする
      rm -rf /var/lib/ldap/*
      
    • データベース設定をコピーする
      cp -p /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
      chown ldap.ldap /var/lib/ldap/DB_CONFIG
      
    • slapcatしたファイルをslapaddする
      slapadd -l slapd.ldif
      
    • 作成されたDBファイルの権限を変更する
      chown ldap.ldap /var/lib/ldap/*
      
  • 両系のslapdを開始する
    systemctl start slapd