8.5 在单台服务器上部署容器

此示例使用主机网络模式将所有 Identity Manager 容器部署在单个 Docker 主机上。

8.5.1 先决条件

  • 确保主机名采用如下所示的 FQDN 格式:

    <主机 IP> <FQDN> <短名称>

    例如:

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

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

8.5.2 部署 Identity Manager 引擎容器

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

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

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

    docker load --input IDM_48_identityengine.tar.gz

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

    docker run -d --network=host --name=engine-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties identityengine:idm-4.8.0

  5. 要校验是否已成功部署容器,请运行以下命令检查日志文件:

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

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

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

    例如,

    docker exec -it engine-container bash

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

8.5.3 部署 Remote Loader 容器

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

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

    docker load --input IDM_48_remoteloader.tar.gz

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

    docker run -d --network=host --name=rl-container -v /data:/config remoteloader:idm-4.8.0

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

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

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

    例如,

    docker exec -it rl-container bash

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

  6. 确保配置文件在共享卷中可用。

8.5.4 部署扇出代理容器

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

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

    docker load --input IDM_48_fanoutagent.tar.gz

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

    docker run -d --network=host --name=foa-container -v /data:/config fanoutagent:idm-4.8.0

  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”(配置扇出代理)。

8.5.5 部署 iManager 容器

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

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

    docker load --input IDM_48_iManager320.tar

  3. 使用符合您环境要求的所需配置创建 .env 文件。例如,在 /data 目录中创建 iManager.env

    # Certificate Public Key Algorithm
    # Allowed Values: RSA, ECDSA256, ECDSA384
    CERTIFICATE_ALGORITHM=RSA
    # Cipher Suite
    # Allowed Values:
    # For RSA - NONE, LOW, MEDIUM HIGH
    # For ECDSA256 - SUITEB128ONLY
    # For ECDSA384 - SUITEB128, SUITEB192
    CIPHER_SUITE=NONE
    # Tomcat Server HTTP Port
    TOMCAT_HTTP_PORT=8080
    # Tomcat Server SSL Port
    TOMCAT_SSL_PORT=8743
    # iManager Authorized User (admin_name.container_name.tree_name)
    AUTHORIZED_USER=
  4. 在共享卷 data 下创建一个子目录,例如 iManager

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

    docker run -d --network=host --name=iman-container -v /data:/config -v /data/iManager.env:/etc/opt/novell/iManager/conf/iManager.env imanager:3.2.0

  6. 要安装 Identity Manager 插件,请执行以下步骤:

    1. 登录到 iManager。

      https://identitymanager.example.com:8743/nps/

    2. 单击配置

    3. 依次单击插件安装可用的 NetIQ 插件模块

    4. NetIQ 插件模块列表中选择所有插件,然后单击安装

    要脱机获取插件,请执行以下步骤:

    1. 从 NetIQ 下载网站下载 Identity_Manager_4.8_Linux.iso

    2. 装入下载的 .iso

    3. 从装入位置导航到 /iManager/plugins 目录,然后获取所需插件。

    您也可以从 iManager 插件网站上安装插件。

  7. 重启动 iManager 容器。

    docker restart iman-container

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

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

    例如,

    docker exec -it iman-container bash

有关部署 iManager 容器的详细信息,请参见《NetIQ iManager Installation Guide》(NetIQ iManager 安装指南)中的“Deploying iManager Using Docker Container”(使用 Docker 容器部署 iManager)。

8.5.6 部署 OSP 容器

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

  2. 确保 SSO_SERVER_SSL_PORT 属性设置为某个唯一端口。

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

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

    docker load --input IDM_48_osp.tar.gz

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

    docker run -d --network=host --name=osp-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties osp:idm-4.8.0

  6. 要校验是否已成功部署容器,请运行以下命令检查日志文件:

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

  7. 使用以下命令停止容器:

    docker stop osp-container

  8. 运行以下命令修改 server.xml 文件中的 Tomcat 关闭端口。在下面的示例中,端口 8005 将更改为 18005:

    sed -i "s~8005~18005~g" /data/osp/tomcat/conf/server.xml

  9. 使用以下命令启动 容器:

    docker start osp-container

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

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

    例如,

    docker exec -it osp-container bash

8.5.7 部署 PostgreSQL 容器

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

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

    docker load --input IDM_48_postgres.tar.gz

  3. 在共享卷 data 下创建一个子目录,例如 postgres

    mkdir postgres

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

    docker run -d --network=host --name=postgresql-container -e POSTGRES_PASSWORD=<口令> -v /data/postgres:/var/lib/postgresql/data postgres:9.6.12-alpine

    例如,

    docker run -d --network=host --name=postgresql-container -e POSTGRES_PASSWORD=novell -v /data/postgres:/var/lib/postgresql/data postgres:9.6.12-alpine

  5. 创建 Identity Applications 的 idmdamin 用户。

    docker exec -it postgresql-container psql -U postgres -c "CREATE USER idmadmin WITH ENCRYPTED 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

8.5.8 部署 Identity Applications 容器

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

  2. 确保 UA_SERVER_SSL_PORT 属性设置为某个唯一端口。

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

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

    docker load --input IDM_48_identityapplication.tar.gz

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

    docker run -d --network=host --name=idapps-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties identityapplication:idm-4.8.0

  6. 要校验是否已成功部署容器,请运行以下命令检查日志文件:

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

  7. 使用以下命令停止容器:

    docker stop idapps-container

  8. 运行以下命令修改 server.xml 文件中的 Tomcat 关闭端口。在下面的示例中,端口 8005 将更改为 28005:

    sed -i "s~8005~28005~g" /data/userapp/tomcat/conf/server.xml

  9. 使用以下命令启动 Docker 容器:

    docker start idapps-container

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

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

    例如,

    docker exec -it idapps-container bash

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

8.5.9 部署表单渲染器容器

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

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

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

    docker load --input IDM_48_formrenderer.tar.gz

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

    docker run -d --network=host --name=fr-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties formrenderer:idm-4.8.0

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

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

    例如,

    docker exec -it fr-container bash

8.5.10 部署 ActiveMQ 容器

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

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

    docker load --input IDM_48_activemq.tar.gz

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

    docker run -d --network=host --name=amq-container -v /data:/config --env-file /data/silent.properties activemq:idm-4.8.0

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

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

    例如,

    docker exec -it amq-container bash

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

8.5.11 部署 Identity Reporting 容器

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

  2. 确保 TOMCAT_HTTPS_PORT 属性设置为某个唯一端口。

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

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

    docker load --input IDM_48_identityreporting.tar.gz

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

    docker run -d --network=host --name=rpt-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties identityreporting:idm-4.8.0

  6. 要校验是否已成功部署容器,请运行以下命令检查日志文件:

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

  7. 使用以下命令停止容器:

    docker stop rpt-container

  8. 运行以下命令修改 server.xml 文件中的 Tomcat 关闭端口。在下面的示例中,端口 8005 将更改为 38005:

    sed -i "s~8005~38005~g" /data/reporting/tomcat/conf/server.xml

  9. (视情况而定)仅当您使用身份库作为证书颁发机构时才适用。

    setenv.sh 文件的 export CATALINA_OPTS 条目中添加 -Dcom.sun.net.ssl.checkRevocation=false 参数。在此示例中,setenv.sh 文件位于 /data/reporting/tomcat/bin/ 目录下。

  10. 使用以下命令启动 Docker 容器:

    docker start rpt-container

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

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

    例如,

    docker exec -it rpt-container bash

8.5.12 部署 SSPR 容器

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

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

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

    mkdir sspr

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

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

    docker load --input IDM_48_sspr.tar.gz

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

    docker run -d --network=host --name=sspr-container -v /data/sspr:/config sspr/sspr-webapp:latest

  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://identitymanager.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 并保存更改。