此示例使用主机网络模式将所有 Identity Manager 容器部署在单个 Docker 主机上。
确保主机名采用如下所示的 FQDN 格式:
<主机 IP> <FQDN> <短名称>
例如:
172.120.0.1 identitymanager.example.com identitymanager
必须在部署容器之前生成无提示属性文件。有关生成无提示属性文件的详细信息,请参见创建无提示属性文件。
必须按以下顺序部署容器:
生成无提示属性文件。有关详细信息,请参见创建无提示属性文件。
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_identityengine.tar.gz
使用以下命令部署容器:
docker run --restart unless-stopped -d --network=host --name=engine-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 identityengine:idm-4.9.0-580
要校验是否已成功部署容器,请运行以下命令检查日志文件:
tail -f /data/idm/log/idmconfigure.log
要登录容器,请运行以下命令:
docker exec -it <容器> <命令>
例如:
docker exec -it engine-container bash
注:要运行 ndstrace 或 ndsrepair 等身份库实用程序,请以非 root 用户 nds 的身份登录到容器。如果您以 root 用户身份登录,则无法运行这些实用程序。要以 nds 用户身份登录到容器,请运行 docker exec -it engine-container sudo nds 命令。
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_remoteloader.tar.gz
使用以下命令部署容器:
docker run -d --network=host --name=rl-container -v /data:/config remoteloader:idm-4.9.0-580
此命令会部署 64 位和 32 位版本的 Remote Loader。容器的 /opt/novell/eDirectory/lib/dirxml/classes/ 目录中提供了驱动程序文件。
(视情况而定)如果您不想在部署容器时使用配置文件,请使用以下命令部署容器:
docker run --restart unless-stopped -d --network=host --name=rl-container -v /data:/config --stop-timeout 100 remoteloader:idm-4.9.0-580
要登录容器,请运行以下命令:
docker exec -it <容器> <命令>
例如:
docker exec -it rl-container bash
配置 Remote Loader。有关详细信息,请参见《NetIQ Identity Manager Driver Administration Guide》(NetIQ Identity Manager 驱动程序管理指南)中的“Configuring the Remote Loader and Drivers”(配置 Remote Loader 和驱动程序)。
确保配置文件在共享卷中可用。
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_fanoutagent.tar.gz
使用以下命令部署容器:
docker run --restart unless-stopped -d --network=host --name=foa-container -v /data:/config --stop-timeout 100 fanoutagent:idm-4.9.0-580
要登录容器,请运行以下命令:
docker exec -it <容器> <命令>
例如:
docker exec -it foa-container bash
配置扇出代理。有关详细信息,请参见《NetIQ Identity Manager Driver for JDBC Fanout Implementation Guide》(NetIQ Identity Manager Driver for JDBC Fanout 实施指南)中的“Configuring the Fanout Agent”(配置扇出代理)。
(视情况而定)仅当您使用身份库作为证书颁发机构时,本节内容才适用。
在部署以下组件之前,需要先生成证书。在为以下组件生成证书之前,请务必先部署 Identity Manager 引擎和 Identity Console 容器。
OSP
Identity Applications
Identity Reporting
执行以下步骤来生成证书:
确保安装的 Java 版本为 Azul Zulu 1.8.0_392 或更高。
请务必设置 Java 路径。例如,运行以下命令:
export PATH=<java 安装位置>/bin:$PATH
例如:
export PATH=/opt/netiq/common/jre/bin/:$PATH
生成 PKCS 密钥存储区:
keytool -genkey -alias idm -keyalg RSA -storetype pkcs12 -keystore /data/tomcat.ks -validity 3650 -keysize 2048 -dname "CN=identitymanager.example.com" -keypass <password> -storepass <password>
生成证书签名请求:
keytool -certreq -v -alias idm -file /config/idm.csr -keypass <password> -keystore /config/tomcat.ks -storepass <password>
生成自我签名证书:
起动 Identity Console 并登录。
导航到证书管理 > 颁发证书。
浏览到在步骤 3 中创建的 .csr 文件。例如 idm.csr。
单击打开。
在密钥使用规范下拉列表中指定密钥类型。
在扩展密钥使用规范下拉列表中指定扩展密钥类型。
对于证书类型,请在基本约束下拉列表中选择未指定。
在证书参数下拉列表中指定证书的有效期。
在证书格式下拉列表中选择采用二进制 DER 格式的文件。
单击下一步。
单击确定。
下载证书并将其复制到 /data 目录。
导出 .der 格式的根证书:
起动 Identity Console 并登录。
导航到证书管理 > 服务器证书管理。
选中 SSL 证书 DNS 复选框并单击导出。
在证书下拉列表中选择“组织 CA”。
在导出格式下拉列表中选择 DER。
单击确定。
下载证书并将其复制到 /data 目录。
将证书导入到您在步骤 2 中创建的 PKCS 密钥存储区中:
keytool -import -trustcacerts -alias root -keystore /config/tomcat.ks -file /config/cert.der -storepass <password> -noprompt
keytool -import -alias idm -keystore /config/tomcat.ks -file /config/idm.der -storepass <password> -noprompt
注:请确保指定为部署输入的路径中有密钥存储区。
生成无提示属性文件。有关详细信息,请参见创建无提示属性文件。
确保 SSO_SERVER_SSL_PORT 属性设置为某个唯一端口。
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_osp.tar.gz
使用以下命令部署容器:
docker run --restart unless-stopped -d --network=host --name=osp-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 osp:idm-4.9.0-580
要校验是否已成功部署容器,请运行以下命令检查日志文件:
tail -f /data/osp/log/idmconfigure.log
使用以下命令停止容器:
docker stop osp-container
运行以下命令修改 server.xml 文件中的 Tomcat 关闭端口。在下面的示例中,端口 8005 将更改为 18005:
sed -i "s~8005~18005~g" /data/osp/tomcat/conf/server.xml
使用以下命令启动 容器:
docker start osp-container
要登录容器,请运行以下命令:
docker exec -it <容器> <命令>
例如:
docker exec -it osp-container bash
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_postgres.tar.gz
在共享卷 data 下创建一个子目录,例如 postgres。
mkdir postgres
使用以下命令部署容器:
docker run --restart unless-stopped -d --network=host --name=postgresql-container -e POSTGRES_PASSWORD=<password> -v /data/postgres:/var/lib/postgresql/data --stop-timeout 100 postgres:12.18
例如:
docker run --restart unless-stopped -d --network=host --name=postgresql-container -e POSTGRES_PASSWORD=novell -v /data/postgres:/var/lib/postgresql/data --stop-timeout 100 postgres:12.18
创建 Identity Applications 的 idmdamin 用户。
docker exec -it postgresql-container psql -U postgres -c "CREATE USER idmadmin WITH ENCRYPTED PASSWORD '<password>'"
创建 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 容器时,会用到这些数据库。
为 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"
要登录容器,请运行以下命令:
docker exec -it <容器> <命令>
例如:
docker exec -it postgresql-container bash
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_identityapplication.tar.gz
使用以下命令部署容器:
docker run --restart unless-stopped -d --network=host --name=idapps-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 identityapplication:idm-4.9.0-580
要校验是否已成功部署容器,请运行以下命令检查日志文件:
tail -f /data/userapp/log/idmconfigure.log
运行以下命令导入密钥存储区:
注:在执行此步骤之前,请确保容器已成功部署。
/opt/netiq/common/jre/bin/keytool -importkeystore -srckeystore /config/tomcat.ks -srcstorepass <password> -destkeystore /opt/netiq/idm/apps/tomcat/conf/idm.jks -deststorepass <password>
系统会提示您将重写 alias idm 的现有项。要重写,请输入 yes。
系统会提示您将重写 alias root 的现有项。要重写,请输入 yes。
使用以下命令停止容器:
docker stop idapps-container
运行以下命令修改 server.xml 文件中的 Tomcat 关闭端口。在下面的示例中,端口 8005 将更改为 28005:
sed -i "s~8005~28005~g" /data/userapp/tomcat/conf/server.xml
使用以下命令启动 Docker 容器:
docker start idapps-container
要登录容器,请运行以下命令:
docker exec -it <容器> <命令>
例如:
docker exec -it idapps-container bash
注:要在配置更新实用程序中修改任何设置,请从 Identity Applications 容器的 /opt/netiq/idm/apps/configupdate/ 目录起动 configupdate.sh。配置更新实用程序只能在控制台模式下起动。
生成无提示属性文件。在生成无提示属性文件时选择 Identity Applications。有关详细信息,请参见创建无提示属性文件。
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_formrenderer.tar.gz
使用以下命令部署容器:
docker run --restart unless-stopped -d --network=host --name=fr-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 formrenderer:idm-4.9.0-580
要登录容器,请运行以下命令:
docker exec -it <容器> <命令>
例如:
docker exec -it fr-container bash
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_activemq.tar.gz
使用以下命令部署容器:
docker run --restart unless-stopped -d --network=host --name=amq-container -v /data:/config --env-file /data/silent.properties --stop-timeout 100 activemq:idm-4.9.0-580
要登录容器,请运行以下命令:
docker exec -it <容器> <命令>
例如:
docker exec -it amq-container bash
配置 ActiveMQ。有关详细信息,请参见《NetIQ Identity Manager Driver for JDBC Fanout Implementation Guide》(NetIQ Identity Manager Driver for JDBC Fanout 实施指南)中的“Setting Up ActiveMQ Startup Service”(设置 ActiveMQ 启动服务)。
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_identityreporting.tar.gz
使用以下命令部署容器:
docker run --restart unless-stopped -d --network=host --name=rpt-container -v /data:/config -e SILENT_INSTALL_FILE=/config/silent.properties --stop-timeout 100 identityreporting:idm-4.9.0-580
要校验是否已成功部署容器,请运行以下命令检查日志文件:
tail -f /data/reporting/log/idmconfigure.log
运行以下命令导入密钥存储区:
注:在执行此步骤之前,请确保容器已成功部署。
/opt/netiq/common/jre/bin/keytool -importkeystore -srckeystore /config/tomcat.ks -srcstorepass <password> -destkeystore /opt/netiq/idm/apps/tomcat/conf/idm.jks -deststorepass <password>
系统会提示您将重写 alias idm 的现有项。要重写,请输入 yes。
系统会提示您将重写 alias root 的现有项。要重写,请输入 yes。
使用以下命令停止容器:
docker stop rpt-container
运行以下命令修改 server.xml 文件中的 Tomcat 关闭端口。在下面的示例中,端口 8005 将更改为 38005:
sed -i "s~8005~38005~g" /data/reporting/tomcat/conf/server.xml
(视情况而定)仅当您使用身份库作为证书颁发机构时才适用。
在 setenv.sh 文件的 export CATALINA_OPTS 条目中添加 -Dcom.sun.net.ssl.checkRevocation=false 参数。在此示例中,setenv.sh 文件位于 /data/reporting/tomcat/bin/ 目录下。
使用以下命令启动 Docker 容器:
docker start rpt-container
要登录容器,请运行以下命令:
docker exec -it <容器> <命令>
例如:
docker exec -it rpt-container bash
部署 SSPR 容器需要执行的任务如下:
生成 SSPR 的无提示属性文件。有关更多信息,请参见创建无提示属性文件。
在共享卷 data 下创建一个子目录,例如 sspr。
mkdir sspr
在解压缩 Identity_Manager_4.9.0_Containers.tar.gz 文件的位置,导航到 Identity_Manager_4.9.0_Containers 目录。
运行以下命令装载映像:
docker load --input IDM_490_sspr.tar.gz
使用以下示例命令部署容器:
docker run --restart unless-stopped -d --network=host --name=sspr-container -v /data/sspr:/config --stop-timeout 100 sspr/sspr-webapp:4.7.0.1-580
在 Docker 主机上运行以下命令,以将 Docker 主机中的 silent.properties 文件复制到 SSPR 容器:
docker cp /data/silent.properties sspr-container:/tmp
将无提示属性文件装载到 SSPR 容器。
docker exec -it sspr-container /app/command.sh ImportPropertyConfig /tmp/silent.properties
注:检查是否在 SSPR 容器的 /config 目录下创建了 SSPRConfiguration.xml,并校验该文件的内容。
将 OAuth 证书导入 SSPR:
在 Docker 主机上编辑 /data/sspr/ 目录中的 SSPRConfiguration.xml 文件,将 configIsEditable 标志的值设置为 true 并保存更改。
起动浏览器并输入 https://identitymanager.example.com:8443/sspr URL。
使用管理员身份凭证(例如 uaadmin)登录。
单击右上角的用户(例如 uaadmin),然后单击配置编辑器。
指定配置口令并单击登录。
单击设置 > 单点登录 (SSO) 客户端 > OAuth,确保所有 URL 都使用 HTTPS 协议和正确的端口。
在 OAuth 服务器证书下,单击从服务器导入以导入新证书,然后单击确定。
单击右上角的
保存证书。
查看更改并单击确定。
SSPR 应用程序重启动之后,编辑 SSPRConfiguration.xml 文件,将 configIsEditable 标志的值设置为 true 并保存更改。
有关部署 Identity Console 容器的详细信息,请参见 Deploying Identity Console as Docker Container(将 Identity Console 部署为 Docker 容器)。