18.7 在分布式服务器上部署容器

18.7.1 设置覆盖网络

NetIQ 建议您使用覆盖网络或桥接网络模式在分布式设置中部署所有 Identity Manager 容器。本指南中所述的方案特定于覆盖网络中的容器部署。但是,您也可以使用桥接网络来部署容器。在以下分布式服务器方案中,Identity Manager 引擎、PostgreSQL、OSP 和 SSPR 容器将部署在 Docker 主机 A 上。Remote Loader、扇出代理、Identity Applications、ActiveMQ、表单渲染器和 Identity Reporting 容器将部署在 Docker 主机 B 上。

下图演示了部署在覆盖网络中两台 Docker 主机上的 Identity Manager 容器。

注:由于不再支持群集储存,我们可以使用 Docker swarm 来设置覆盖网络。要详细了解弃用了哪些功能,请查看“cluster store”(群集储存)。

图 18-1 覆盖网络中的容器部署体系结构

设置覆盖网络需要执行的步骤如下:

  1. 在 Docker 主机 A 上运行以下命令:

    docker swarm init
  2. 记下基于步骤 1 的输出生成的 join 命令,然后在 Docker 主机 B 上运行此 join 命令,以便在这两台主机之间创建 swarm 网络。

    例如:

    docker swarm join --token SWMTKN-1-24vozonapa4anwszd3ykthgomo84e9y3p3vbcrtibz6jzo94k2-148g7yrnepmz963x3z5udnae4 10.71.142.191:2377

    注:如果您前面来不及记下用于连接工作节点的命令,请运行以下命令来获取该 join 命令:

    docker swarm join-token worker
  3. 运行以下命令查看所有主机的状态:

    docker node ls
  4. 使用以下命令在 Docker 主机 B 上创建覆盖网络:

    docker network create --driver overlay --subnet=<subnet-cidr> --gateway=<gateway-ip> --attachable <network-name>

    例如:

    docker network create --driver overlay --subnet=192.168.0.0/24 --gateway=192.168.0.1 --attachable idmoverlaynetwork

  5. 运行以下命令校验是否已创建覆盖网络:

    docker network ls

注:由于 swarm 会动态指派 IP,因此在容器部署期间,请确保 swarm 负载平衡器使用尚未由任何 Identity Manager 组件占用的新 IP 地址,否则您可能会遇到以下错误:

来自守护程序的错误响应:挂接网络失败,请确保您的网络选项正确,并检查管理器日志:已超过环境期限

运行以下命令检查 swarm 负载平衡器的 IP:

docker inspect idmoverlaynetwork | grep lb-idmoverlaynetwork -A 7

18.7.2 先决条件

  • 对于 Docker 部署中的所有 Docker 主机,必须使用主机上运行的所有容器的细节来更新该主机的 /etc/hosts 文件。确保所有容器的主机名仅采用完全限定的域名 (FQDN) 格式。

    所有组件的主机文件项可采用以下格式:

    <容器的 IP> <FQDN> <简称>

    在本指南使用的示例部署中,于 /etc/hosts 文件中添加以下几项:

    192.168.0.12     identityengine.example.com       identityengine
    192.168.0.2     remoteloader.example.com         remoteloader
    192.168.0.3     fanoutagent.example.com          fanoutagent
    192.168.0.5     osp.example.com                  osp
    192.168.0.6     postgresql.example.com           postgresql
    192.168.0.7     identityapps.example.com         identityapps
    192.168.0.8     formrenderer.example.com         formrenderer
    192.168.0.9     activemq.example.com             activemq
    192.168.0.10    identityreporting.example.com    identityreporting   
    192.168.0.11    sspr.example.com                 sspr
  • 确保第三方 jar 文件为已装入的卷,这样每次启动容器时这些文件才可用。例如,如果容器的 /opt/netiq/idm/apps/tomcat/lib 目录中存在 ojdbc.jar,则您必须使用如下示例命令对 jar 文件进行卷装入操作:

    -v /host/ojdbc.jar:/opt/netiq/idm/apps/tomcat/lib/ojdbc.jar

  • 必须在部署容器之前生成无提示属性文件。有关生成无提示属性文件的详细信息,请参见创建无提示属性文件。

18.7.3 公开容器访问的端口

作为先决条件,您必须知道要用于容器的端口。您必须公开所需的端口,并将容器端口映射到 Docker 主机上的端口。下表根据指南中的示例提供了您必须在 Docker 主机上公开的端口的信息。

表 18-2 根据示例部署公开的默认端口

容器

根据示例部署假定使用的默认端口

Remote Loader

8090

扇出代理

不适用

OSP

8543

Identity Applications

18543

Identity Reporting

28543

表单渲染器

8600

ActiveMQ

  • 8161

  • 61616

PostgreSQL

5432

SSPR

8443

注:SSRP 容器仅可在 8443 端口上运行。

不过,您可以根据自己的需要自定义端口。在公开端口时,请遵循以下注意事项:

  • 确保您要公开的并非使用中的端口。

  • 必须将容器端口映射到 Docker 主机上的相同端口。例如,必须将容器上的 8543 端口映射到 Docker 主机上的 8543 端口。

必须按以下顺序部署容器:

18.7.4 部署 Identity Manager 引擎容器

  1. 生成无提示属性文件。有关详细信息,请参见创建无提示属性文件。

  2. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。

  3. 运行以下命令装载映像:

    docker load --input IDM_490_identityengine.tar.gz

  4. 使用以下命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.12 --network=idmoverlaynetwork --hostname=identityengine.example.com --name=engine-container -v /etc/hosts:/etc/hosts -v /data:/config -p 8028:8028 -p 524:524 -p 389:389 -p 8030:8030 -p 636:636 -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 identityengine:idm-4.9.0-580
  5. 要校验是否已成功部署容器,请运行以下命令检查日志文件:

    tail -f /data/idm/log/idmconfigure.log
  6. 要登录容器,请运行以下命令:

    docker exec -it <容器> <命令>

    例如:

    docker exec -it engine-container bash

注:要运行 ndstrace 或 ndsrepair 等身份库实用程序,请以非 root 用户 nds 的身份登录到容器。如果您以 root 用户身份登录,则无法运行这些实用程序。要以 nds 用户身份登录到容器,请运行 docker exec -it engine-container sudo nds 命令。

18.7.5 部署 Remote Loader 容器

  1. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。

  2. 运行以下命令装载映像:

    docker load --input IDM_490_remoteloader.tar.gz
  3. 使用以下命令部署容器:

    docker run -d --ip=192.168.0.2 --network=idmoverlaynetwork --hostname=remoteloader.example.com -p 8090:8090 --name=rl-container -v /etc/hosts:/etc/hosts -v /data:/config remoteloader:idm-4.9.0-580

    此命令会部署 64 位和 32 位版本的 Remote Loader。容器的 /opt/novell/eDirectory/lib/dirxml/classes/ 目录中提供了驱动程序文件。

  4. (视情况而定)如果您不想在部署容器时使用配置文件,请使用以下命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.2 --network=idmoverlaynetwork --hostname=remoteloader.example.com -p 8090:8090 --name=rl-container -v /etc/hosts:/etc/hosts -v /data:/config --stop-timeout 100 remoteloader:idm-4.9.0-580
  5. 要登录容器,请运行以下命令:

    docker exec -it <容器> <命令>

    例如:

    docker exec -it rl-container bash

  6. 配置 Remote Loader。有关详细信息,请参见《NetIQ Identity Manager Driver Administration Guide》(NetIQ Identity Manager 驱动程序管理指南)中的“Configuring the Remote Loader and Drivers”(配置 Remote Loader 和驱动程序)。

18.7.6 部署扇出代理容器

  1. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。

  2. 运行以下命令装载映像:

    docker load --input IDM_490_fanoutagent.tar.gz
  3. 使用以下命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.3 --network=idmoverlaynetwork --hostname=fanoutagent.example.com --name=foa-container -v /etc/hosts:/etc/hosts -v /data:/config --stop-timeout 100 fanoutagent:idm-4.9.0-580
  4. 要登录容器,请运行以下命令:

    docker exec -it <容器> <命令>

    例如:

    docker exec -it foa-container bash

  5. 配置扇出代理。有关详细信息,请参见《NetIQ Identity Manager Driver for JDBC Fanout Implementation Guide》(NetIQ Identity Manager Driver for JDBC Fanout 实施指南)中的“Configuring the Fanout Agent”(配置扇出代理)。

18.7.7 通过身份库证书颁发机构生成证书

(视情况而定)仅当您使用身份库作为证书颁发机构时,本节内容才适用。

下列组件需要您先生成证书才能部署。在为以下组件生成证书之前,请务必先部署 Identity Manager 引擎容器。

生成 OSP 的证书

生成证书需要执行的步骤如下:

  1. 确保安装的 Java 版本为 Azul Zulu 1.8.0_392 或更高。

  2. 确保在 Docker 主机中设置 Java 路径。例如,运行以下命令:

    export PATH=<java installed location>/bin:$PATH

    例如:

    export PATH=/opt/netiq/common/jre/bin/:$PATH

  3. 生成 PKCS 密钥存储区:

    keytool -genkey -alias osp -keyalg RSA -storetype pkcs12 -keystore /data/tomcat-osp.ks -validity 3650 -keysize 2048 -dname "CN=osp.example.com" -keypass <password> -storepass <password>
  4. 生成证书签名请求:

    keytool -certreq -v -alias osp -file /config/osp.csr -keypass <password> -keystore /config/tomcat-osp.ks -storepass <password>
  5. 生成自我签名证书:

    1. 起动 Identity Console 并登录。

    2. 导航到证书管理 > 颁发证书。

    3. 浏览到在步骤 3 中创建的 .csr 文件。例如 osp.csr。

    4. 单击打开。

    5. 在密钥使用规范下拉列表中指定密钥类型。

    6. 在扩展密钥使用规范下拉列表中指定扩展密钥类型。

    7. 对于证书类型,请在基本约束下拉列表中选择未指定。

    8. 在证书参数下拉列表中指定证书的有效期。

    9. 在证书格式下拉列表中选择采用二进制 DER 格式的文件。

    10. 单击下一步。

    11. 单击确定。

    12. 下载证书并将其复制到 /data 目录。

  6. 导出 .der 格式的根证书:

    1. 起动 Identity Console 并登录。

    2. 导航到证书管理 > 服务器证书管理。

    3. 选中 SSL 证书 DNS 复选框并单击导出。

    4. 在证书下拉列表中选择“组织 CA”。

    5. 在导出格式下拉列表中选择 DER。

    6. 单击确定。

    7. 下载证书并将其复制到 /data 目录。

  7. 将证书导入到您在步骤 2 中创建的 PKCS 密钥存储区中:

    keytool -import -trustcacerts -alias root -keystore /config/tomcat-osp.ks -file /config/cert.der -storepass <口令> -noprompt

    keytool -import -alias osp -keystore /config/tomcat-osp.ks -file /config/osp.der -storepass <口令> -noprompt

注:请确保指定为部署输入的路径中有密钥存储区。

生成 Identity Applications 的证书

生成证书需要执行的步骤如下:

  1. 确保安装的 Java 版本为 Azul Zulu 1.8.0_392 或更高。

  2. 请务必设置 Java 路径。例如,运行以下命令:

    export PATH=<java installed location>/bin:$PATH

    例如:

    export PATH=/opt/netiq/common/jre/bin/:$PATH

  3. 生成 PKCS 密钥存储区:

    keytool -genkey -alias ua -keyalg RSA -storetype pkcs12 -keystore /config/tomcat-ua.ks -validity 3650 -keysize 2048 -dname "CN=identityapps.example.com" -keypass <password> -storepass <password>
  4. 生成证书签名请求:

    keytool -certreq -v -alias ua -file /config/ua.csr -keypass <password> -keystore /config/tomcat-ua.ks -storepass <password>
  5. 生成自我签名证书:

    1. 起动 Identity Console 并登录。

    2. 导航到证书管理 > 颁发证书。

    3. 浏览到在步骤 3 中创建的 .csr 文件。例如 ua.csr。

    4. 单击打开。

    5. 在密钥使用规范下拉列表中指定密钥类型。

    6. 在扩展密钥使用规范下拉列表中指定扩展密钥类型。

    7. 对于证书类型,请在基本约束下拉列表中选择未指定。

    8. 在证书参数下拉列表中指定证书的有效期。

    9. 在证书格式下拉列表中选择采用二进制 DER 格式的文件。

    10. 单击下一步。

    11. 单击确定。

    12. 下载证书并将其复制到 /data 目录。

  6. 导出 .der 格式的根证书:

    1. 起动 Identity Console 并登录。

    2. 导航到证书管理 > 服务器证书管理。

    3. 选中 SSL 证书 DNS 复选框并单击导出。

    4. 在证书下拉列表中选择“组织 CA”。

    5. 在导出格式下拉列表中选择 DER。

    6. 单击确定。

    7. 下载证书并将其复制到 /data 目录。

  7. 将证书导入到步骤 2 中的 PKCS 密钥存储区:

    keytool -import -trustcacerts -alias root -keystore /config/tomcat-ua.ks -file /config/cert.der -storepass <口令> -noprompt

    keytool -import -alias ua -keystore /config/tomcat-ua.ks -file /config/ua.der -storepass <口令> -noprompt

注:请确保指定为部署输入的路径中有证书。

生成 Identity Reporting 的证书

生成证书需要执行的步骤如下:

  1. 确保安装的 Java 版本为 Azul Zulu 1.8.0_392 或更高。

  2. 请务必设置 Java 路径。例如,运行以下命令:

    export PATH=<java installed location>/bin:$PATH

    例如:

    export PATH=/opt/netiq/common/jre/bin/:$PATH

  3. 生成 PKCS 密钥存储区:

    keytool -genkey -alias rpt -keyalg RSA -storetype pkcs12 -keystore /config/tomcat-rpt.ks -validity 3650 -keysize 2048 -dname "CN=identityreporting.example.com" -keypass <password> -storepass <password>
  4. 生成证书签名请求:

    keytool -certreq -v -alias rpt -file /config/rpt.csr -keypass <password> -keystore /config/tomcat-rpt.ks -storepass <password>
  5. 生成自我签名证书:

    1. 起动 Identity Console 并登录。

    2. 导航到证书管理 > 颁发证书。

    3. 浏览到在步骤 3 中创建的 .csr 文件。例如 rpt.csr。

    4. 单击打开。

    5. 在密钥使用规范下拉列表中指定密钥类型。

    6. 在扩展密钥使用规范下拉列表中指定扩展密钥类型。

    7. 对于证书类型,请在基本约束下拉列表中选择未指定。

    8. 在证书参数下拉列表中指定证书的有效期。

    9. 在证书格式下拉列表中选择采用二进制 DER 格式的文件。

    10. 单击下一步。

    11. 单击确定。

    12. 下载证书并将其复制到 /data 目录。

  6. 导出 .der 格式的根证书:

    1. 起动 Identity Console 并登录。

    2. 导航到证书管理 > 服务器证书管理。

    3. 选中 SSL 证书 DNS 复选框并单击导出。

    4. 在证书下拉列表中选择“组织 CA”。

    5. 在导出格式下拉列表中选择 DER。

    6. 单击确定。

    7. 下载证书并将其复制到 /data 目录。

  7. 将证书导入到您在步骤 2 中创建的 PKCS 密钥存储区中:

    keytool -import -trustcacerts -alias root -keystore /config/tomcat-rpt.ks -file /config/cert.der -storepass <口令> -noprompt

    keytool -import -alias rpt -keystore /config/tomcat-rpt.ks -file /config/rpt.der -storepass <口令> -noprompt

注:请确保指定为部署输入的路径中有证书。

18.7.8 部署 OSP 容器

注:在部署 OSP 容器之前,请务必生成所需的证书。有关详细信息,请参见生成 OSP 的证书。

  1. 生成无提示属性文件。有关详细信息,请参见创建无提示属性文件。

  2. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。

  3. 运行以下命令装载映像:

    docker load --input IDM_490_osp.tar.gz
  4. 使用以下命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.5 --network=idmoverlaynetwork --hostname=osp.example.com -p 8543:8543 --name=osp-container -v /etc/hosts:/etc/hosts -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 osp:idm-4.9.0-580
  5. 要校验是否已成功部署容器,请运行以下命令检查日志文件:

    tail -f /data/osp/log/idmconfigure.log
  6. 要登录容器,请运行以下命令:

    docker exec -it <容器> <命令>

    例如:

    docker exec -it osp-container bash

18.7.9 部署 PostgreSQL 容器

  1. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。

  2. 运行以下命令装载映像:

    docker load --input IDM_490_postgres.tar.gz
  3. 在共享卷 data 下创建一个子目录,例如 postgres。

    mkdir postgres

  4. 使用以下示例命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.6 --network=idmoverlaynetwork --hostname=postgresql.example.com --name=postgresql-container -p 5432:5432 -e POSTGRES_PASSWORD=<password> -v /data/postgres:/var/lib/postgresql/data -v /etc/hosts:/etc/hosts -v /data:/config --stop-timeout 100 postgres:12.18

    例如:

    docker run --restart unless-stopped -d --ip=192.168.0.6 --network=idmoverlaynetwork --hostname=postgresql.example.com --name=postgresql-container -p 5432:5432 -e POSTGRES_PASSWORD=novell -v /data/postgres:/var/lib/postgresql/data -v /etc/hosts:/etc/hosts -v /data:/config --stop-timeout 100 postgres:12.18

  5. 创建 Identity Applications 的 idmdamin 用户。

    docker exec -it postgresql-container psql -U postgres -c "CREATE USER idmadmin WITH ENCRYPTED PASSWORD '<password>'" 
  6. 创建 Identity Applications、工作流程和 Identity Reporting 数据库。

    docker exec -it postgresql-container psql -U postgres -c "CREATE DATABASE idmuserappdb"

    docker exec -it postgresql-container psql -U postgres -c "CREATE DATABASE igaworkflowdb"

    docker exec -it postgresql-container psql -U postgres -c "CREATE DATABASE idmrptdb"

    注:当您配置 Identity Applications 和 Identity Reporting 容器时,会用到这些数据库。

  7. 为 idmadmin 用户授予对数据库的所有特权:

    docker exec -it postgresql-container psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE idmuserappdb TO idmadmin"

    docker exec -it postgresql-container psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE igaworkflowdb TO idmadmin"

  8. 要登录容器,请运行以下命令:

    docker exec -it <容器> <命令>

    例如:

    docker exec -it postgresql-container bash

18.7.10 部署 Identity Applications 容器

注:在部署 Identity Applications 容器之前,请务必生成所需的证书。有关详细信息,请参见生成 Identity Applications 的证书。

  1. 生成无提示属性文件。有关详细信息,请参见创建无提示属性文件。

    注:将应用程序服务器端口的值指定为公开的端口 18543。

  2. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。

  3. 运行以下命令装载映像:

    docker load --input IDM_490_identityapplication.tar.gz
  4. 使用以下命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.7 --network=idmoverlaynetwork --hostname=identityapps.example.com -p 18543:18543 --name=idapps-container -v /etc/hosts:/etc/hosts -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 identityapplication:idm-4.9.0-580
  5. 要校验是否已成功部署容器,请运行以下命令检查日志文件:

    tail -f /data/userapp/log/idmconfigure.log

  6. 要登录容器,请运行以下命令:

    docker exec -it <容器> <命令>

    例如:

    docker exec -it idapps-container bash

  7. 运行以下命令:

    注:在执行此步骤之前,请确保容器已成功部署。

    /opt/netiq/common/jre/bin/keytool -importkeystore -srckeystore /config/tomcat-osp.ks -srcstorepass <password> -destkeystore /opt/netiq/idm/apps/tomcat/conf/idm.jks -deststorepass <password>
  8. 键入 yes 以覆盖 root 别名的项。

  9. 重启动 Identity Applications 容器。

    docker restart idapps-container

注:要在配置更新实用程序中修改任何设置,请从 Identity Applications 容器的 /opt/netiq/idm/apps/configupdate/ 目录起动 configupdate.sh。配置更新实用程序只能在控制台模式下起动。

18.7.11 部署表单渲染器容器

  1. 生成无提示属性文件。有关详细信息,请参见创建无提示属性文件。

  2. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。

  3. 运行以下命令装载映像:

    docker load --input IDM_490_formrenderer.tar.gz
  4. 使用以下命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.8 --network=idmoverlaynetwork --hostname=formrenderer.example.com -p 8600:8600 --name=fr-container -v /etc/hosts:/etc/hosts -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 formrenderer:idm-4.9.0-580
  5. 要登录容器,请运行以下命令:

    docker exec -it <容器> <命令>

    例如:

    docker exec -it fr-container bash

18.7.12 部署 ActiveMQ 容器

  1. 生成无提示属性文件。有关详细信息,请参见创建无提示属性文件。

  2. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。

  3. 运行以下命令装载映像:

    docker load --input IDM_490_activemq.tar.gz
  4. 使用以下命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.9 --network=idmoverlaynetwork --hostname=activemq.example.com -p 61616:61616 --name=amq-container -v /etc/hosts:/etc/hosts -v /data:/config --env-file /data/silent.properties --stop-timeout 100 activemq:idm-4.9.0-580
  5. 要登录容器,请运行以下命令:

    docker exec -it <容器> <命令>

    例如:

    docker exec -it amq-container bash

  6. 配置 ActiveMQ。有关详细信息,请参见《NetIQ Identity Manager Driver for JDBC Fanout Implementation Guide》(NetIQ Identity Manager Driver for JDBC Fanout 实施指南)中的“Setting Up ActiveMQ Startup Service”(设置 ActiveMQ 启动服务)。

18.7.13 部署 Identity Reporting 容器

注:在部署 Identity Reporting 容器之前,请务必生成所需的证书。有关详细信息,请参见生成 Identity Reporting 的证书。

  1. 生成无提示属性文件。有关详细信息,请参见创建无提示属性文件。

    注:将应用程序服务器端口的值指定为公开的端口 28543。

  2. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9_Containers 目录。

  3. 运行以下命令装载映像:

    docker load --input IDM_490_identityreporting.tar.gz
  4. 使用以下命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.10 --network=idmoverlaynetwork --hostname=identityreporting.example.com -p 28543:28543 --name=rpt-container -v /etc/hosts:/etc/hosts -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 identityreporting:idm-4.9.0-580
  5. 要校验是否已成功部署容器,请运行以下命令检查日志文件:

    tail -f /data/reporting/log/idmconfigure.log
  6. 要登录容器,请运行以下命令:

    docker exec -it <容器> <命令>

    例如:

    docker exec -it rpt-container bash

  7. 运行以下命令:

    注:在执行此步骤之前,请确保容器已成功部署。

    /opt/netiq/common/jre/bin/keytool -importkeystore -srckeystore /config/tomcat-osp.ks -srcstorepass <password> -destkeystore /opt/netiq/idm/apps/tomcat/conf/idm.jks -deststorepass <password>
  8. 键入 yes 以覆盖 root 别名的项。

  9. 重启动 Identity Reporting 容器。

    docker restart rpt-container

18.7.14 部署 SSPR 容器

部署 SSPR 容器需要执行的任务如下:

  1. 生成 SSPR 的无提示属性文件。在生成无提示属性文件时选择 Identity Applications。有关更多信息,请参见创建无提示属性文件。

  2. 在共享卷 data 下创建一个子目录,例如 sspr。

    mkdir sspr

  3. 在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。

  4. 运行以下命令装载映像:

    docker load --input IDM_490_sspr.tar.gz
  5. 使用以下示例命令部署容器:

    docker run --restart unless-stopped -d --ip=192.168.0.11 --network=idmoverlaynetwork --hostname=sspr.example.com --name=sspr-container -v /etc/hosts:/etc/hosts -v /data/sspr:/config -p 8443:8443 --stop-timeout 100 sspr/sspr-webapp:4.7.0.1-580
  6. 在 Docker 主机上运行以下命令,以将 Docker 主机中的 silent.properties 文件复制到 SSPR 容器:

    docker cp /data/silent.properties sspr-container:/tmp
  7. 将无提示属性文件装载到 SSPR 容器。

    docker exec -it sspr-container /app/command.sh ImportPropertyConfig /tmp/silent.properties

    注:检查是否在 SSPR 容器的 /config 目录下创建了 SSPRConfiguration.xml,并校验该文件的内容。

  8. 将 OAuth 证书导入 SSPR:

    1. 在 Docker 主机上编辑 /data/sspr 目录中的 SSPRConfiguration.xml 文件,将 configIsEditable 标志的值设置为 true 并保存更改。

    2. 起动浏览器并输入 https://sspr.example.com:8443/sspr URL。

    3. 使用管理员身份凭证(例如 uaadmin)登录。

    4. 单击右上角的用户(例如 uaadmin),然后单击配置编辑器。

    5. 指定配置口令并单击登录。

    6. 单击设置 > 单点登录 (SSO) 客户端 > OAuth,确保所有 URL 都使用 HTTPS 协议和正确的端口。

    7. 在 OAuth 服务器证书下,单击从服务器导入以导入新证书,然后单击确定。

    8. 单击右上角的 保存证书。

    9. 查看更改并单击确定。

    10. SSPR 应用程序重启动之后,编辑 SSPRConfiguration.xml 文件,将 configIsEditable 标志的值设置为 true 并保存更改。

18.7.15 部署 Identity Console 容器

有关部署 Identity Console 容器的详细信息,请参见 Deploying Identity Console as Docker Container(将 Identity Console 部署为 Docker 容器)。