2.2 将 Identity Console 部署为 Docker 容器

2.2.1 部署 OSP 容器

要部署 OSP 容器,执行下列操作:

  1. 登录到 Software License and Download,然后导航到“软件下载”页面。

  2. 选择下列项目:

    • 产品:eDirectory

    • 产品名称:eDirectory per User Sub SW E-LTU

    • 版本:9.2

  3. 下载文件:IdentityConsole_<版本>_Containers_tar.zip。

  4. 将下载的文件提取到文件夹中。

  5. 根据您的要求修改静默属性文件。下面显示了一个示例静默属性文件:

    # Silent file for osp with edirapi
    ## Static contents Do not edit - starts 
    INSTALL_OSP=true
    DOCKER_CONTAINER=y
    EDIRAPI_PROMPT_NEEDED=y
    UA_PROMPT_NEEDED=n
    SSPR_PROMPT_NEEDED=n
    RPT_PROMPT_NEEDED=n
    CUSTOM_OSP_CERTIFICATE=y
    ## Static contents Do not edit - ends
    
    # OSP Details
    SSO_SERVER_HOST=osp.example.com
    SSO_SERVER_SSL_PORT=8543
    OSP_COMM_TOMCAT_KEYSTORE_FILE=/config/tomcat.ks
    OSP_COMM_TOMCAT_KEYSTORE_PWD=novell
    SSO_SERVICE_PWD=novell
    OSP_KEYSTORE_PWD=novell
    IDM_KEYSTORE_PWD=novell
    OSP_CUSTOM_NAME="Identity Console"
    USER_CONTAINER="o=novell"
    ADMIN_CONTAINER="o=novell"
    
    # IDConsole Details
    IDCONSOLE_HOST=192.168.1.1
    IDCONSOLE_PORT=9000
    EDIRAPI_TREENAME=ed913
    
    #If ENABLE_CUSTOM_CONTAINER_CREATION is set to y
    #ie., when you have user and admin container different from o=data
    #    and they need to be created in eDir
    #then CUSTOM_CONTAINER_LDIF_PATH should be entered as well
    ENABLE_CUSTOM_CONTAINER_CREATION=n
    #ENABLE_CUSTOM_CONTAINER_CREATION=y
    #CUSTOM_CONTAINER_LDIF_PATH=/config/custom-osp.ldif
    
    # eDir Details
    ID_VAULT_HOST=192.168.1.1
    ID_VAULT_LDAPS_PORT=636
    ID_VAULT_ADMIN_LDAP="cn=admin,o=novell"
    ID_VAULT_PASSWORD=novell

    注:要在使用静默属性(DOS 文本)文件时避免空间限制,必须使用 dos2unix 工具将 DOS 文本文件转换为 UNIX 格式。运行以下命令将文本文件从 DOS 行尾转换为 Unix 行尾:

    dos2unix filename

    例如,

    dos2unix samplefile

  6. 使用 iManager 生成一个服务器证书 (cert.der) 并将其导入密钥存储区 (tomcat.ks)。将静默属性文件和密钥存储区 (tomcat.ks) 复制到任何目录中。例如,/data。执行下列操作创建服务器证书并将其导入密钥存储区:

    1. 运行下列命令创建密钥存储区 (tomcat.ks)。生成密钥,确保计算机的 CN 名或完全限定的主机名是 IP 地址。

      keytool -genkey -alias osp -keyalg RSA -storetype pkcs12 -keystore /opt/certs/tomcat.ks -validity 3650 -keysize 2048 -dname "CN=blr-osp48-demo.labs.blr.novell.com" -keypass novell -storepass novell
    2. 运行下列命令创建证书签名请求。例如 cert.csr

      keytool -certreq -v -alias osp -file /opt/certs/cert.csr -keypass novell -keystore /opt/certs/tomcat.ks -storepass novell
    3. 将此 cert.csr 传递给 iManager 并获取 osp.der 服务器证书。确保选择密钥类型为“自定义”;密钥用法选项为数据加密、密钥加密和数字签名,并将证书的主题备用名称字段设置为包含 OSP 服务器的 IP 地址或主机名。有关更多信息,请参见创建服务器证书对象

    4. 运行下列命令将 CA 证书 (SSCert.der) 和服务器证书 (cert.der) 导入 tomcat.ks 密钥存储区。

      keytool -import -trustcacerts -alias root -keystore /opt/certs/tomcat.ks -file /opt/certs/SSCert.der -storepass novell -noprompt
      keytool -import -alias osp -keystore /opt/certs/tomcat.ks -file /opt/certs/cert.der -storepass novell -noprompt
  7. 运行以下命令以装载 OSP 映像:

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

    docker run -d --name OSP_Container --network=host -e SILENT_INSTALL_FILE=/config/silent.properties -v /data:/config osp:<version>

    例如,

    docker run -d --name OSP_Container --network=host -e SILENT_INSTALL_FILE=/config/silent.properties -v /data:/config osp:6.3.9

2.2.2 将 Identity Console 部署为 Docker 容器

本部分介绍将 Identity Console 部署为 Docker 容器的过程:

注:此过程中提及的配置参数、示例值和示例仅供参考。您必须确保不要直接在生产环境中使用它们。

  1. 登录到 SLD:Software License and Download,然后导航到“软件下载”页面。

  2. 选择下列项目:

    • 产品:eDirectory

    • 产品名称:eDirectory per User Sub SW E-LTU

    • 版本:9.2

  3. 下载文件:IdentityConsole_<版本>_Container.tar.zip

  4. 映像必须加载到本地 Docker 注册表中。使用以下命令解压缩并装载 IdentityConsole_<版本>_Containers.tar.gz 文件:

    tar -xvf IdentityConsole_<version>_Containers.tar.gz              
    docker load --input identityconsole.tar.gz
  5. 使用以下命令创建 Identity Console Docker 容器:

    docker create --name <identityconsole-container-name> --env ACCEPT_EULA=Y --network=<network-type> --volume <volume-name>:/config/ identityconsole:<version>

    例如,

    docker create --name identityconsole-container --env ACCEPT_EULA=Y --network=host --volume IDConsole-volume:/config/ identityconsole:1.5.0.0000.

    注:

    • 您可以通过将 ACCEPT_EULA 环境变量设置为 "Y" 以接受 EULA。您还可以在启动容器时通过使用互动模式 Docker 创建命令中的 -it 选项从屏幕提示中接受 EULA。

    • 上述命令中的 --volume 参数将创建存储配置和日志数据的卷。在这种情况下,我们创建了一个名为 IDConsole-volume 的卷。

  6. 使用以下命令将本地文件系统中的服务器证书文件复制到容器中作为 /etc/opt/novell/eDirAPI/cert/keys.pfx。有关创建服务器证书的更多信息,请参见 先决条件

    docker cp <absolute path of server certificate file> <identityconsole-container-name>:/etc/opt/novell/eDirAPI/cert/keys.pfx

    例如,

    docker cp /home/user/keys.pfx identityconsole-container:/etc/opt/novell/eDirAPI/cert/keys.pfx

    连接到多个 eDirectory 树时,必须确保为所有连接的树获取至少一个 keys.pfx 服务器证书。

  7. 使用以下命令将本地文件系统中的 CA 证书文件 (.pem) 复制到容器中作为 /etc/opt/novell/eDirAPI/cert/SSCert.pem。有关获得 CA 证书的更多信息,请参见 先决条件

    docker cp <absolute path of CA certificate file> <identityconsole-container-name>:/etc/opt/novell/eDirAPI/cert/SSCert.pem

    例如,

    docker cp /home/user/SSCert.pem identityconsole-container:/etc/opt/novell/eDirAPI/cert/SSCert.pem

    如果用户需要连接到多个 eDirectory 树,请参见此部分:将 Identity Console 作为 Docker 的多树

  8. 根据您的要求修改配置文件,并使用以下命令将配置文件 (edirapi.conf) 从本地文件系统复制到容器中,作为 /etc/opt/novell/eDirAPI/conf/edirapi.conf

    docker cp <absolute path of configuration file> <identityconsole-container-name>:/etc/opt/novell/eDirAPI/conf/edirapi.conf

    例如,

    docker cp /home/user/edirapi.conf identityconsole-container:/etc/opt/novell/eDirAPI/conf/edirapi.conf
  9. 使用以下命令启动 Docker 容器:

    docker start <identityconsole-container-name>

    例如,

    docker start identityconsole-container

注:/var/lib/docker/volumes/<volume_name>/_data/eDirAPI/var/log 目录下将有下列日志文件:

  • edirapi.log - 用于记录 edirapi 中的不同事件和调试问题。

  • edirapi_audit.log - 用于记录 edirapi 的审计事件。日志遵循 CEF 审计格式。

  • container-startup.log - 用于捕获 Identity Console docker 容器的安装日志。

2.2.3 将 Identity Console 作为 Docker 的多树

Identity Console 允许用户通过获取树的单个证书颁发机构证书来连接到多个树。

例如,如果连接到三个 eDirectory 树,则必须将所有三个证书颁发机构证书复制到 docker 容器中:

docker cp /home/user/SSCert1.pem identityconsole-container:/etc/opt/novell/eDirAPI/cert/SSCert.pem
docker cp /home/user/SSCert2.pem identityconsole-container:/etc/opt/novell/eDirAPI/cert/SSCert1.pem
docker cp /home/user/SSCert3.pem identityconsole-container:/etc/opt/novell/eDirAPI/cert/SSCert2.pem

运行以下命令以重启动 Identity Console:

docker restart <identityconsole-container-name>