OpenLDAP 維護工作

記錄檔位置

OpenLDAP 記錄檔包含在 /opt/apigee/var/log 目錄中。這些檔案可以是 定期封存並移除,以免佔用過多磁碟 空白鍵。如要瞭解如何維護、封存及移除 OpenLDAP 記錄,請參閱本節 http://www.openldap.org/doc/admin24/maintenance.html 的 OpenLDAP 手冊 19.2。

手動設定使用者密碼

使用者可以在 Edge UI 中要求新 Edge 密碼。接著,使用者收到電子郵件,內含 關於設定密碼的資訊不過,如果您的 SMTP 伺服器故障,或是使用者無法 無論原因為何,您都可以使用 OpenLDAP 手動設定使用者的密碼 指令

如何設定使用者密碼:

  1. 使用 ldapsearch 下載使用者資訊:
    ldapsearch -w ldapAdminPWord -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h LDAP_IP -p 10389 > ldap.txt
  2. 在 ldap.txt 檔案中搜尋使用者的電子郵件地址。您應該會在表單中看到一個區塊:
    dn: uid=29383a67-9279-4aa8-a75b-cfbf901578fc,ou=users,ou=global,dc=apigee,dc=com
    mail: foo@bar.com
    userPassword:: e1NTSEF9a01UUDdSd01BYXRuUURXdXN5OWNPRzBEWWlYZFBRTm14MHlNVWc9PQ==
    uid: 29383a67-9279-4aa8-a75b-cfbf901578fc
  3. 使用 ldappasswd,即可根據使用者的 uid 設定使用者密碼:
    ldappasswd -h LDAP_IP -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s newPassWord \
      "uid=29383a67-9279-4aa8-a75b-cfbf901578fc,ou=users,ou=global,dc=apigee,dc=com"

    系統會提示您輸入 OpenLDAP 管理員密碼。

使用者現在可以使用 newPassWord 登入。

手動設定 OpenLDAP 系統密碼

重設邊緣密碼」一節說明如何變更 OpenLDAP 系統密碼,但你必須知道現有密碼。如果您已遺失 密碼,請依照下列程序重設密碼。

  1. 使用 slappasswd 為新密碼建立 SSHA 加密密碼:
    slappasswd -h {SSHA} -s newPassWord

    這個指令會以下列格式傳回字串:

    {SSHA}+DOup9d6l+czfWzkIvajwYPArjPurhS6

  2. 打開 /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
    vi /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
  3. 您可以在表單中找到該行:
    olcRootPW:: OldPasswordString
  4. OldPasswordString 替換為從 slappasswd 傳回的字串。 如果 olcRootPw 後方有 2 個半形冒號,請移除其中一個,確保有空格 冒號後:
    olcRootPW: {SSHA}RGon+bLCe+Sk+HyHholFBj8ONQfabrhw
  5. 重新啟動 OpenLDAP:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap restart
  6. 請使用 ldapsearch 檢查新密碼是否有效:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h LDAP_IP -p 10389

    系統會提示您輸入 OpenLDAP 管理員密碼。

  7. 對其他要用於複製的 OpenLDAP 伺服器重複執行這些步驟。
  8. 更新管理伺服器即可使用新密碼:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server store_ldap_credentials -p newPassWord

手動設定 Edge 管理員密碼

重設邊緣密碼說明如何變更 邊緣系統密碼,但你必須知道現有密碼。如果遺失邊緣 系統密碼,您可透過下列程序重設密碼。

  1. 在 UI 節點上停止 Edge UI:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui stop
  2. 使用 ldappasswd 設定 Edge sys admin 密碼:
    ldappasswd -h localhost -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s newPassWord \
      "uid=admin,ou=users,ou=global,dc=apigee,dc=com"

    系統會提示您輸入 OpenLDAP 管理員密碼。

  3. 更新用來安裝 Edge UI 及新 Edge 系統的設定檔 密碼:
    APIGEE_ADMINPW=newPassWord
  4. 設定並重新啟動 Edge UI:
    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
  5. (僅在使用者介面已啟用 TLS 的情況下) 在 Edge UI 上重新啟用 TLS,如下所示: 參閱設定用於管理網域的 TLS 使用者介面

刪除 SLAPD 鎖定檔案

如果嘗試啟動 OpenLDAP 時收到錯誤訊息,表示 slapd.pid 鎖定檔案 ,您就可以刪除檔案。

這個檔案位於 /opt/apigee/apigee-openldap/var/run/slapd.pid。刪除 檔案,然後嘗試重新啟動 OpenLDAP:

/opt/apigee/apigee-service/bin/apigee-service apigee-openldap restart

如果 OpenLDAP 並未啟動,請嘗試以偵錯模式啟動,並檢查是否有錯誤:

slapd -h ldap://:10389/ -u apigee -d 255 -F /opt/apigee/data/apigee-openldap/slapd.d

錯誤可能代表資源問題、記憶體或 CPU 使用率問題。

修改 OpenLDAP 複製

本節說明如何修改 OpenLDAP 複製作業。

請在複製資料的 OpenLDAP 複製器節點上執行下列程序 將資料傳送至 其他 OpenLDAP 節點舉例來說,如要設定從 node1 複製到 node2, 則會在 node1 上執行指令

  1. 檢查目前狀態:
    ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {PASSWORD} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

    畫面會顯示如下的輸出內容:

    olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={PASSWORD} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
  2. 建立檔案 repl.lidf,並將下列指令貼到檔案中:
    dn: olcDatabase={2}bdb,cn=config
    changetype: modify
    replace: olcSyncRepl
        olcSyncRepl: rid=001
        provider=ldap://{NEW_HOST}:{PORT}/
        binddn="cn=manager,dc=apigee,dc=com"
        bindmethod=simple
        credentials={PASSWORD}
        searchbase="dc=apigee,dc=com"
        attrs="*,+"
        type=refreshAndPersist
        retry="60 1 300 12 7200 +"
        timeout=1

    請務必針對下列預留位置替換適當的值:

    • {NEW_HOST}:您打算複製的新 OpenLDAP 主機。
    • {PORT}:OpenLDAP 通訊埠。預設通訊埠為 10389
    • {PASSWORD}:OpenLDAP 密碼。
  3. 執行 ldapmodify 指令:
    ldapmodify -x -w {PASSWORD} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f repl.ldif
        

    The output should be similar to the following:

    modifying entry "olcDatabase={2}bdb,cn=config"
  4. 驗證複製作業:
    ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {PASSWORD} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

    畫面會顯示類似以下的輸出內容:

    olcSyncrepl: {0}rid=001 provider=ldap://{NEW_HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={PASSWORD} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1

    您可以讀取及比較 每個伺服器的 contextCSN 值並確認兩者相符。

    ldapsearch -w {PASSWORD} -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 contextCSN | grep contextCSN

排解 OpenLDAP 複製問題 問題

如果您的安裝作業使用多個 OpenLDAP 伺服器,您可以檢查複製設定, 確保伺服器正常運作

  1. 確保 ldapsearch 會傳回每個 OpenLDAP 伺服器的資料:
    ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h LDAP_IP -p 10389

    系統會提示您輸入 OpenLDAP 管理員密碼。

  2. 檢查 /opt/apigee/conf/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif 以檢查複製設定 檔案。
  3. 確認每個 OpenLDAP 伺服器的系統密碼都相同。
  4. 檢查 iptable 和 tcp 包裝函式設定。