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 等 Identity Vault 公用程式,請以非 root 使用者 nds 的身分登入容器。如果您以 root 使用者身分登入,則無法執行這些公用程式。若要以 nds 使用者身分登入容器,請執行 docker exec -it engine-container sudo nds 指令。

8.5.3 部署遠端載入器容器

  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 位元版本的遠端載入器。容器的 /opt/novell/eDirectory/lib/dirxml/classes/ 目錄中提供了驅動程式檔案。

  4. 若要登入容器,請執行以下指令:

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

    例如,

    docker exec -it rl-container bash

  5. 設定遠端載入器。如需詳細資訊,請參閱《NetIQ Identity Manager Driver Administration Guide》(NetIQ Identity Manager 驅動程式管理指南) 中的「Configuring the Remote Loader and Drivers」(設定遠端載入器和驅動程式)。

  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 '<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. (視情況而定) 僅當您使用 Identity Vault 做為證書管理中心時才適用。

    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 並儲存變更。