OpenLDAP 维护任务

日志文件位置

OpenLDAP 日志文件位于目录 /opt/apigee/var/log 中。这些文件可以 定期归档和移除,以确保不会占用过多的磁盘 空间。有关维护、归档和移除 OpenLDAP 日志的信息,请参阅 19.2(位于 http://www.openldap.org/doc/admin24/maintenance.html)。

手动设置用户密码

用户可以在 Edge 界面中申请新的 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 系统密码

重置 Edge 密码介绍了如何更改 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 管理员密码

重置 Edge 密码介绍了如何更改 Edge 系统密码,但要求您知道现有密码。如果您丢失了 Edge 系统密码,则可按照以下步骤重置密码。

  1. 在界面节点上,停止 Edge 界面:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui stop
  2. 使用 ldappasswd 设置 Edge 系统管理员密码:
    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 系统更新用于安装 Edge 界面的配置文件 密码:
    APIGEE_ADMINPW=newPassWord
  4. 配置并重启 Edge 界面:
    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
  5. (仅限在界面上启用了 TLS 的情况下)在 Edge 界面上重新启用 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. 检查 iptables 和 tcp 封装容器设置。