範例品牌建立 Oracle建立 Oracle Access Management Docker 容器

section - 區段 0開始之前

本教學課程示範如何建立及設定 Oracle Access Management (OAM) 12.2.1.4.0 Docker 容器。

背景

Docker 是一個平台,可讓使用者建立、封裝、運送及執行分散式應用系統。Docker 使用者可將應用程式及任何相依的程式庫或檔案封裝成 Docker 映像檔。

Docker 映像檔是可攜式的使用者自建物件,可分散在所有 Linux 環境中。已分配的影像可以用於建立容器,應用程式可在其中與相同主機作業系統上其他容器中執行的應用程式隔離。

您可以使用下列方式部署 OAM 映像檔:

1。瀏覽至中介軟體 > oam_cpu ,從 Oracle Container Registry 下載預先建立的 OAM 映像檔。此映像檔是由 Oracle 預先建立,其中包括 Oracle Access Management 12.2.1.4.0、最新的修正程式集更新 (PSU) 以及使用重要修正程式更新 (CPU) 程式發行的其他修正。

2。使用 WebLogic 映像檔工具或使用 Oracle Container Registry (OCR) 的 dockerfile、命令檔和基礎映像檔,來建立您自己的 OAM 映像檔。您也可以只使用 dockerfile 和命令檔來建立自己的映像檔。如需有關能夠建立自己的容器映像檔之各種方式的詳細資訊,請參閱建置 OAM 映像檔

遵循此教學課程之前,必須使用下列其中一種方法,在 Docker 影像儲存區域中安裝 OAM 映像檔。在上述參照的連結中,找到所有這些方法的指示。

OAM 影像的設計是用於下列 OAM 容器:

  • WebLogic 管理伺服器 (AdminServer)
  • OAM 管理的伺服器 (oam_server1)
  • OAM Policy Manager 受管理伺服器 (oam_policy_mgr1)

軟硬體需求

  • Docker 影像儲存區域中安裝的 OAM 映像檔
  • Docker 的基本瞭解
  • 執行中的 Oracle Database。資料庫必須是 OAM 支援的版本,如 Oracle Fusion Middleware 12c 認證中所述。

section - 區段 1驗證 OAM 映像檔

您可以在此區段中驗證 OAM 映像檔安裝在 docker 映像檔儲存區域中。

  1. 執行下列命令,確定已在 docker 影像儲存區域中安裝 OAM 映像檔:
    $ docker images
    輸出與下列類似:
    REPOSITORY    TAG            IMAGE ID         CREATED         SIZE 
    oam 12.2.1.4.0 d285e4354f9d 4 months ago 3.38GB
    記下 OAM 映像檔名稱,此名稱會在稍後的區段中使用。在此範例中,影像名稱為 oam:12.2.1.4.0

section - 區段 2建立橋接網路

您可以在此區段中建立橋接網路,讓 OAM 容器可以相互通訊。

  1. 若要建立嵌入器網路,請執行下列指令:
    $ docker network create -d bridge OamNET
    輸出與下列類似:
    eff0bf4d7752e11e735a1e570d3348592af181e76ff86e6762f57e3f62928f9f

section - 區段 3建立並執行 OAM 管理伺服器容器

您可以在此區段中建立並執行代管 WebLogic 和 OAM 主控台的 OAM WebLogic 管理伺服器容器。

為管理伺服器建立容器時,會執行下列作業:

  • 執行儲存區域建立公用程式
  • 建立使用 DOMAIN_ROOT 作為 /u01/oracle/user_projects 的 OAM 網域
  • 啟動管理伺服器

主機 (例如 /scratch/user_projects) 的目錄將會對應至位於 /u01/oracle/user_projects 的容器。這是「OAM 管理伺服器」與「受管理伺服器」容器之間共用網域結構的機制。

  1. 建立包含下列變數的環境檔 /scratch/oam-admin.env
    DOMAIN_NAME=access_domain
    ADMIN_USER=weblogic
    ADMIN_PASSWORD=<password>
    ADMIN_LISTEN_HOST=oamadmin
    ADMIN_LISTEN_PORT=7001
    CONNECTION_STRING=oamdb.example.com:1521/oampdb1.example.com
    RCUPREFIX=OAM01
    DB_USER=sys
    DB_PASSWORD=<password>
    DB_SCHEMA_PASSWORD=<password>
    其中:
    a) DOMAIN_NAME 是要建立之 WebLogic 網域的名稱
    b) ADMIN_USERADMIN_PASSWORD 是 WebLogic 的 weblogic 使用者 /pwd,而 OAM 管理主控台
    c) ADMIN_LISTEN_HOST 是容器的主機名稱。注意:建議將此名稱設為與下方 docker 執行命令中 --name 參數傳遞的容器名稱相同
    d) ADMIN_LISTEN_PORT 是 WebLogic Administration Server 要監聽的連接埠號碼
    e) CONNECTION_STRING 執行中資料庫的 <host>:<port>/<service_name>
    f) RCUPREFIX 是前置碼名稱,用來提供 RCU 建立的綱要
    g) DB_USER,而 DB_PASSWORD 是執行中資料庫的使用者 / 密碼
    h) DB_SCHEMA_PASSWORD 是您要為 RCU 綱要設定的密碼
  2. 執行下列命令以建立並啟動「OAM 管理伺服器」容器:
    $ mkdir /scratch/user_projects
    $ chmod 777 /scratch/user_projects
    $ docker run -d -p 7001:7001 --name oamadmin --network=OamNET --env-file /scratch/oam-admin.env --volume /scratch/user_projects:/u01/oracle/user_projects oam:12.2.1.4.0
    在上述範例中:
    a) -d 會啟動分離為背景處理作業的容器
    b) --name 是啟動後指定給 docker 容器的名稱。為了方便使用名稱,這與 ADMIN_LISTEN_HOST 變數
    c 中傳送的相同 --volume 將主機環境的 /scratch/user_projects 目錄對應至容器中的 /u01/oracle/user_projects 目錄。
    d) --env-file 是路徑
    e) oam:12.2.1.4.0 之前建立的 .env 檔案是 OAM 影像名稱的名稱。
    f) --network 是我們先前建立的網路橋接器名稱

    輸出看起來如下:
    5ed71fe34a04cde9dfca08dbbe1a24d3b921f35f697f2c0881c93f5d25e1dd06
    注意:在上述範例中,環境變數使用 --env-file 參數傳遞,它指向包含環境變數的檔案。或者,您可以傳送指令行上的環境變數,如下所示:
    $ docker run -d --network=OamNET -p 7001:7001 --name=oamadmin \
    --env CONNECTION_STRING=oamdb.example.com:1521/oampdb1.example.com --env ADMIN_LISTEN_HOST=oamadmin \
    --env DOMAIN_NAME=access_domain --env ADMIN_USER=weblogic --env ADMIN_PASSWORD=<password> \
    --env ADMIN_LISTEN_PORT=7001 --env RCUPREFIX=OAM1 --env DB_USER=sys \
    --env DB_PASSWORD=<password> --env DB_SCHEMA_PASSWORD=<password> \
    -v /scratch/user_projects/:/u01/oracle/user_projects oam:12.2.1.4.0
  3. 發出下列命令來驗證容器正在執行:
    $ docker ps
    輸出看起來應該與下列類似:
    CONTAINERID  IMAGE                           COMMAND                     CREATED        STATUS        PORTS                  NAMES
    74653360d1fa oam:12.2.1.4.0 "sh -c ${SCRIPT_DIR}\u2026" 16 seconds ago Up 15 seconds 0.0.0.0:7001->7001/tcp oamadmin
  4. 執行 docker logs 命令以查看建立網域的狀態:
    $ docker logs oamadmin
    建立網域需要數分鐘的時間。執行上述命令,直到您看到下列確認「OAM 管理伺服器」正在執行的輸出為止:
    INFO: Starting the Admin Server...
    INFO: Logs = /u01/oracle/user_projects/domains/access_domain/logs/as.log
    <Mar 4, 2020 2:34:26,180 PM GMT> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.> INFO: Admin server is running
    INFO: Admin server running, ready to start managed server
    注意:如果在 oamadmin 容器消失後,容器可能無法啟動。如果是,請執行 "docker ps -a"。這應該會顯示所有已啟動、已停止或結束的容器狀態。然後,您可以執行 "docker logs oamadmin 來檢視日誌,嘗試找出發生錯誤的內容。大部分問題都是因為 docker run 命令中有輸入錯誤,或是環境變數的設定不正確所造成。

section - 區段 4建立並執行 OAM WebLogic 受管理伺服器容器

您可以在此區段中建立並執行 OAM WebLogic 受管理伺服器容器。

  1. 建立包含下列變數的環境檔 /scratch/oam-ms.env
    DOMAIN_NAME=access_domain
    ADMIN_USER=weblogic
    ADMIN_PASSWORD=<password>
    ADMIN_LISTEN_HOST=oamadmin
    ADMIN_LISTEN_PORT=7001
    MANAGEDSERVER_PORT=14100
    MANAGED_SERVER_CONTAINER=true
    MS_HOST=oamms
    MS_NAME=oam_server1
    其中:
    a) DOMAIN_NAME 是先前建立 WebLogic 網域的名稱
    b) ADMIN_USER,而 ADMIN_PASSWORD 是 weblogic 使用者 /pwd
    c) ADMIN_LISTEN_HOST 是 OAM Administration Server 容器
    d) ADMIN_LISTEN_PORT 的主機名稱 WebLogic 管理伺服器的連接埠號碼
    e) MANAGEDSERVER_PORT 是「OAM 受管理伺服器」的連接埠號碼
    f) MANAGED_SERVER_CONTAINER 因狀況檢查原因而設為 true
    g) MS_HOST 是受管理伺服器所在的主機名稱。這應該設為與下方 docker run 命令中傳送的 --name 參數相同
    h) MS_NAME 是要建立之 OAM 管理伺服器的名稱
  2. 執行下列命令以建立並啟動「OAM 受管理伺服器」容器:
    $ docker run -d -p 14100:14100 --network=OamNET --volumes-from oamadmin --name oamms --env-file /scratch/oam-ms.env oam:12.2.1.4.0 "/u01/oracle/dockertools/startMS.sh"
    在上述範例中:
    a) -d 會啟動分離為背景處理作業的容器
    b) --name 是啟動後指定給 docker 容器的名稱。為了方便使用名稱,此名稱與傳入 MS_HOST 變數
    c 中的相同) --volumes-from 是 OAM Administration Server 容器的名稱
    d) --env-file 是包含的檔案名稱先前建立的環境變數
    e) oam:12.2.1.4.0 是 OAM 影像名稱
    f) --network 是我們先前建立的網路橋接器名稱
    g) /u01/oracle/dockertools/startMS.sh 會以 CMD 傳送至 docker run。命令檔 startMS.sh 會使用證明資料 ADMIN_USERADMIN_PASSWORD 建立與 ADMIN_LISTEN_HOST:ADMIN_LISTEN_PORT 的連線,以啟動 MS_NAME 受管理伺服器。

    輸出看起來如下:
    7e735093a9503dc6586e00f31c9846cf59b92fb5299875f4eb650053f0a1fb01
    注意:在上述範例中,環境變數使用 --env-file 參數傳遞,它指向包含環境變數的檔案。或者,您可以傳送指令行上的環境變數,如下所示:
    $ docker run -d -p 14100:14100 --network=OamNET --volumes-from oamadmin --name oamms --env DOMAIN_NAME=access_domain --env ADMIN_USER=weblogic \
    --env ADMIN_PASSWORD=<password> --env ADMIN_LISTEN_HOST=oamadmin --env ADMIN_LISTEN_PORT=7001 --env MANAGEDSERVER_PORT=14100 --env MANAGED_SERVER_CONTAINER=true --env MS_NAME=oam_server1 \
    --env MS_HOST=oamms oam:12.2.1.4.0 "/u01/oracle/dockertools/startMS.sh"
  3. 發出下列命令來驗證容器正在執行:
    $ docker ps
    輸出看起來應該與下列類似:
    CONTAINER ID IMAGE                           COMMAND    CREATED        STATUS        PORTS                    NAMES
    7e735093a950 oam:12.2.1.4.0 "/u01/oracle/dockert\u2026" 14 seconds ago Up 13 seconds 0.0.0.0:14100->14100/tcp oamms
    74653360d1fa oam:12.2.1.4.0 "sh -c ${SCRIPT_DIR}\u2026" 2 hours ago    Up 2 hours    0.0.0.0:7001->7001/tcp   oamadmin
  4. 執行 docker logs 命令以查看伺服器建立狀態:
    $ docker logs oamms
    建立「OAM 受管理伺服器」將需要幾分鐘的時間。執行上述命令,直到您看到下列輸出來確認「OAM 受管理伺服器」正在執行:
    INFO: Waiting for the Managed Server to accept requests...
    <Mar 4, 2020 3:13:44,286 PM GMT> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.> INFO: Managed Server is running
    INFO: Managed server has been started
    注意:如果在 oamms 容器消失後,容器可能無法啟動。如果是,請執行 "docker ps -a"。這應該會顯示所有已啟動、已停止或結束的容器狀態。接著,您可以執行 "docker logs oamms" 來檢視日誌,嘗試找出發生錯誤的內容。大部分問題都是因為 docker run 命令中有輸入錯誤,或是環境變數的設定不正確所造成。

section - 區段 5建立並執行 OAM Policy Manager 容器

您可以在此區段中建立並執行「OAM 原則管理程式容器」。

  1. 建立包含下列變數的環境檔 /scratch/oam-policy.env
    DOMAIN_NAME=access_domain
    ADMIN_USER=weblogic
    ADMIN_PASSWORD=<password>
    ADMIN_LISTEN_HOST=oamadmin
    ADMIN_LISTEN_PORT=7001
    MANAGEDSERVER_PORT=15100
    MANAGED_SERVER_CONTAINER=true
    MS_NAME=oam_policy_mgr1
    MS_HOST=oampolicy
    where:
    a) DOMAIN_NAME is the name of the WebLogic domain created earlier
    b) ADMIN_USER and ADMIN_PASSWORD are the weblogic user/pwd for the OAM Administration Server
    c) ADMIN_LISTEN_HOST is the hostname of the OAM Administration Server container
    d) ADMIN_LISTEN_PORT is the port number of the OAM WebLogic Administration Server
    e) MANAGEDSERVER_PORT is the port number for the OAM Policy Manager Managed Server
    f) MANAGED_SERVER_CONTAINER is set to true for healthcheck reasons
    g) MS_NAME is the name of the policy manager managed server
    h) MS_HOST is the hostname for this container.這應該與下方 docker 執行命令中傳送的 --name 參數相符
  2. 執行下列命令以建立並啟動「OAM 原則管理程式」容器:
    $ docker run -d -p 15100:15100 --network=OamNET --env-file /scratch/oam-policy.env --volumes-from oamadmin --name oampolicy oam:12.2.1.4.0 "/u01/oracle/dockertools/startMS.sh"
    在上述範例中:
    a) -d 會啟動分離為背景處理作業的容器
    b) --name 是啟動後指定給 docker 容器的名稱。為了方便使用名稱,此名稱與傳入 MS_HOST 變數
    c) --volumes-from 是「OAM 管理伺服器」容器的名稱
    d) oam:12.2.1.4.0 是 OAM 影像的名稱
    e) --network 是我們先前建立的網路橋接器名稱
    f) /u01/oracle/dockertools/startMS.sh - 會以 CMD 傳遞給 Docker 執行。命令檔 startMS.sh 會使用證明資料 ADMIN_USERADMIN_PASSWORD 建立與 ADMIN_LISTEN_HOST:ADMIN_LISTEN_PORT 的連線,以啟動 MS_NAME 受管理伺服器。輸出與下列類似:
    b673528bfc828d172759e86fcb942d5333ad80adc8a43202ddbd66428cecc81a
    注意:在上述範例中,環境變數使用 --env-file 參數傳遞,它指向包含環境變數的檔案。或者,您可以傳送指令行上的環境變數,如下所示:
    $ docker run -d -p 15100:15100 --network=OamNET --volumes-from oamadmin --name oampolicy --env DOMAIN_NAME=access_domain --env ADMIN_USER=weblogic --env ADMIN_PASSWORD=<password> \
    --env ADMIN_LISTEN_HOST=oamadmin --env ADMIN_LISTEN_PORT=7001 --env MANAGEDSERVER_PORT=15100 --env MANAGED_SERVER_CONTAINER=true --env MS_NAME=oam_policy_mgr1 --env MS_HOST=oampolicy oam:12.2.1.4.0 "/u01/oracle/dockertools/startMS.sh"
  3. 發出下列命令來驗證容器正在執行:
    $ docker ps
    輸出看起來應該與下列類似:
    							
    CONTAINER ID IMAGE          COMMAND                     CREATED        STATUS        PORTS                    NAMES
    307b29018f3b oam:12.2.1.4.0 "/u01/oracle/dockert\u2026" 2 minutes ago  Up 2 minutes  0.0.0.0:15100->15100/tcp oampolicy
    7e735093a950 oam:12.2.1.4.0 "/u01/oracle/dockert\u2026" 14 seconds ago Up 13 seconds 0.0.0.0:14100->14100/tcp oamms
    74653360d1fa oam:12.2.1.4.0 "sh -c ${SCRIPT_DIR}\u2026" 2 hours ago Up 2 hours       0.0.0.0:7001->7001/tcp   oamadmin
  4. 執行 docker logs 命令以查看建立伺服器的狀態:
    $ docker logs oampolicy
  5. 建立「OAM 受管理伺服器」將需要幾分鐘的時間。執行上述命令,直到您看到下列輸出來確認「OAM 原則管理程式伺服器」正在執行中:
    INFO: Starting the managed server oam_policy_mgr1
    INFO: Logs = /u01/oracle/user_projects/domains/access_domain/logs/oam_policy_mgr1-ms-oampolicy.log INFO: Waiting for the Managed Server to accept requests...
    <Mar 4, 2020 3:48:47,940 PM GMT> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.> started
    注意:如果在 oampolicy 容器消失後,容器可能無法啟動。如果是,請執行 "docker ps -a"。這應該會顯示所有已啟動、已停止或結束的容器狀態。接著,您可以執行 "docker logs oampolicy" 來檢視日誌,嘗試找出發生錯誤的內容。大部分問題都是因為 docker run 命令中有輸入錯誤,或是環境變數的設定不正確所造成。

section - 區段 6驗證 OAM 服務

您可以在此區段中驗證 OAM 是否正在執行且正常運作。

  1. 使用下列命令,尋找每個 Docker 容器的相關 IP 位址:
    $ docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' < name of docker containers separated by space >
    例如:
    $ docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' oamadmin oamms oampolicy 

    輸出與下列類似:

    /oamadmin - 192.168.0.3
    /oamms - 192.168.0.4
    /oampolicy - 192.168.0.5

  2. 啟動 Docker 主機 Linux 伺服器上的瀏覽器。編輯瀏覽器的網路代理伺服器偏好設定,並將以上的 IP 位址新增至「無代理伺服器」區段。
  3. 使用容器的相關 IP 位址存取下列 URL。使用 weblogic/<password> 登入
    主控台或網頁 URL
    WebLogic 管理主控台 http://<oamadmin_ip>:7001/console
    Oracle Enterprise Manager Console - Oracle Enterprise Manager 主控台 http://<oamadmin_ip>:7001/em
    Oracle Access Management 主控台 http://<oamadmin_ip>:7001/oamconsole
    OAM 伺服器登出 http://<oamms_ip>:14100/oam/server/logout
    Policy Manager 存取 http://<oampolicy_ip>:15100/access

    或者,您也可以透過下列方式存取服務:
    a) localhost 僅從 docker 主機本身搭配 http://localhost:7001/<uri>
    b) 從 docker 主機 (如果容器連接埠對應至主機連接埠,則從 docker 主機外部存取 (-p 參數為 docker run.)例如 http://<hostname>:<ADMIN_LISTEN_PORT>/<uri>


    注意:若要停止並啟動「管理伺服器」和「OAM 受管理伺服器」,請使用 docker stop <container>docker start <container> 命令。

section - 區段 7以新影像更新 OAM 容器

您可以在此區段中以新的嵌入器影像啟動 OAM 容器。

  1. 在儲存庫 e.g oam:12.2.1.4-new 中安裝新影像:
    $ docker images

    REPOSITORY TAG IMAGE ID CREATED SIZE
    oam 12.2.1.4.0 d285e4354f9d 4 months ago 3.38GB
    oam 12.2.1.4.0-new
    b6de6dd37fea 1 day ago 3.32GB
  2. 執行下列命令以停止及移除容器:
    $ docker stop oampolicy
    $ docker stop oamms
    $ docker stop oamadmin
    $ docker rm oampolicy
    $ docker rm oamms
    $ docker rm oamadmin
  3. 請依照第 3-5 節啟動容器,但傳送新映像檔名稱 e.g oam:12.2.1.4-new。例如 OAM 管理伺服器:
    $ docker run -d -p 7001:7001 --name oamadmin --network=OamNET --env-file /scratch/oam-admin.env --volume /scratch/user_projects:/u01/oracle/user_projects oam:12.2.1.4.0-new
    傳送磁碟區參數時,OAM 伺服器會從您先前的組態開始。


section - 區段 8移除 OAM Docker 設定

如果您需要移除 OAM Docker 設定,請執行下列步驟:

  1. 執行下列命令以停止 OAM 容器:
    $ docker stop oamadmin oamms oampolicy
  2. 使用下列命令移除 OAM 容器:

    $ docker rm oamadmin oamms oampolicy
  3. 建立 oamadmin 容器時,移除您對應 --volume 參數的所有目錄,例如 /scratch/user_projects
    $ sudo rm -rf /scratch/user_projects/*
    如果使用外部資料庫且想要建立新環境,請確定在 oam-admin.env 中選擇不同的 RCUPREFIX

更多資訊想要進一步瞭解?

Oracle Access Management


意見意見

若要對此教學課程提供意見,請洽詢識別管理使用者協助