 開始之前
開始之前
                            本教學課程示範如何建立及設定 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 認證中所述。
 驗證 OAM 映像檔
驗證 OAM 映像檔
                      您可以在此區段中驗證 OAM 映像檔安裝在 docker 映像檔儲存區域中。
                      
                      
-  執行下列命令,確定已在 docker 影像儲存區域中安裝 OAM 映像檔:
 
 輸出與下列類似:$ docker images
 REPOSITORY TAG IMAGE ID CREATED SIZE 記下 OAM 映像檔名稱,此名稱會在稍後的區段中使用。在此範例中,影像名稱為
 oamoam:12.2.1.4.0
 建立橋接網路
建立橋接網路
                      您可以在此區段中建立橋接網路,讓 OAM 容器可以相互通訊。
                      
                      
-  若要建立嵌入器網路,請執行下列指令:
 輸出與下列類似:$ docker network create -d bridge OamNET
 eff0bf4d7752e11e735a1e570d3348592af181e76ff86e6762f57e3f62928f9f
 建立並執行 OAM 管理伺服器容器
建立並執行 OAM 管理伺服器容器
                      您可以在此區段中建立並執行代管 WebLogic 和 OAM 主控台的 OAM WebLogic 管理伺服器容器。
 
 為管理伺服器建立容器時,會執行下列作業:
- 執行儲存區域建立公用程式
- 建立使用 DOMAIN_ROOT 作為 /u01/oracle/user_projects的 OAM 網域
- 啟動管理伺服器
  主機 (例如 /scratch/user_projects) 的目錄將會對應至位於 /u01/oracle/user_projects 的容器。這是「OAM 管理伺服器」與「受管理伺服器」容器之間共用網域結構的機制。 
  
-  建立包含下列變數的環境檔 /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_USER和ADMIN_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 綱要設定的密碼
- 執行下列命令以建立並啟動「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
- 發出下列命令來驗證容器正在執行:
 輸出看起來應該與下列類似:$ docker psCONTAINERID 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
- 執行 docker logs命令以查看建立網域的狀態:
 建立網域需要數分鐘的時間。執行上述命令,直到您看到下列確認「OAM 管理伺服器」正在執行的輸出為止:$ docker logs oamadmin
 注意:如果在 oamadmin 容器消失後,容器可能無法啟動。如果是,請執行 "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 serverdocker ps -a"。這應該會顯示所有已啟動、已停止或結束的容器狀態。然後,您可以執行"docker logs oamadmin來檢視日誌,嘗試找出發生錯誤的內容。大部分問題都是因為 docker run 命令中有輸入錯誤,或是環境變數的設定不正確所造成。
 建立並執行 OAM WebLogic 受管理伺服器容器
建立並執行 OAM WebLogic 受管理伺服器容器 
                        您可以在此區段中建立並執行 OAM WebLogic 受管理伺服器容器。
- 	建立包含下列變數的環境檔 /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 管理伺服器的名稱
- 執行下列命令以建立並啟動「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_USER和ADMIN_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"
- 發出下列命令來驗證容器正在執行:
 輸出看起來應該與下列類似:$ docker psCONTAINER 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
- 執行 docker logs 命令以查看伺服器建立狀態:
                            
 建立「OAM 受管理伺服器」將需要幾分鐘的時間。執行上述命令,直到您看到下列輸出來確認「OAM 受管理伺服器」正在執行:$ docker logs oammsINFO: Waiting for the Managed Server to accept requests... 注意:如果在 oamms 容器消失後,容器可能無法啟動。如果是,請執行 "
 <Mar 4, 2020 3:13:44,286 PM GMT> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.>
 INFO: Managed server has been starteddocker ps -a"。這應該會顯示所有已啟動、已停止或結束的容器狀態。接著,您可以執行 "docker logs oamms" 來檢視日誌,嘗試找出發生錯誤的內容。大部分問題都是因為 docker run 命令中有輸入錯誤,或是環境變數的設定不正確所造成。
 
 建立並執行 OAM Policy Manager 容器
建立並執行 OAM Policy Manager 容器
                       
                          您可以在此區段中建立並執行「OAM 原則管理程式容器」。
- 建立包含下列變數的環境檔 /scratch/oam-policy.env:
 where: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
 a)DOMAIN_NAMEis the name of the WebLogic domain created earlier
 b)ADMIN_USERandADMIN_PASSWORDare the weblogic user/pwd for the OAM Administration Server
 c)ADMIN_LISTEN_HOSTis the hostname of the OAM Administration Server container
 d)ADMIN_LISTEN_PORTis the port number of the OAM WebLogic Administration Server
 e)MANAGEDSERVER_PORTis the port number for the OAM Policy Manager Managed Server
 f)MANAGED_SERVER_CONTAINERis set to true for healthcheck reasons
 g)MS_NAMEis the name of the policy manager managed server
 h)MS_HOSTis the hostname for this container.這應該與下方 docker 執行命令中傳送的--name參數相符
- 執行下列命令以建立並啟動「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_USER和ADMIN_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"
- 發出下列命令來驗證容器正在執行:
 輸出看起來應該與下列類似:$ docker psCONTAINER 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
- 執行 docker logs命令以查看建立伺服器的狀態:$ docker logs oampolicy
- 建立「OAM 受管理伺服器」將需要幾分鐘的時間。執行上述命令,直到您看到下列輸出來確認「OAM 原則管理程式伺服器」正在執行中:INFO: Starting the managed server oam_policy_mgr1 注意:如果在 oampolicy 容器消失後,容器可能無法啟動。如果是,請執行 "
 INFO: Logs = /u01/oracle/user_projects/domains/access_domain/logs/oam_policy_mgr1-ms-oampolicy.log
 <Mar 4, 2020 3:48:47,940 PM GMT> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.> starteddocker ps -a"。這應該會顯示所有已啟動、已停止或結束的容器狀態。接著,您可以執行 "docker logs oampolicy" 來檢視日誌,嘗試找出發生錯誤的內容。大部分問題都是因為 docker run 命令中有輸入錯誤,或是環境變數的設定不正確所造成。
 驗證 OAM 服務
驗證 OAM 服務
                          
                        您可以在此區段中驗證 OAM 是否正在執行且正常運作。
- 使用下列命令,尋找每個 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
- 啟動 Docker 主機 Linux 伺服器上的瀏覽器。編輯瀏覽器的網路代理伺服器偏好設定,並將以上的 IP 位址新增至「無代理伺服器」區段。
- 使用容器的相關 IP 位址存取下列 URL。使用 weblogic/<password> 登入
 主控台或網頁 URL WebLogic 管理主控台 http://<oamadmin_ip>:7001/consoleOracle Enterprise Manager Console - Oracle Enterprise Manager 主控台 http://<oamadmin_ip>:7001/emOracle Access Management 主控台 http://<oamadmin_ip>:7001/oamconsoleOAM 伺服器登出 http://<oamms_ip>:14100/oam/server/logoutPolicy 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>命令。
 
 以新影像更新 OAM 容器
以新影像更新 OAM 容器
                          
                        您可以在此區段中以新的嵌入器影像啟動 OAM 容器。
- 在儲存庫 e.g oam:12.2.1.4-new中安裝新影像:
 $ docker imagesb6de6dd37fea 1 day ago 3.32GB
 REPOSITORY TAG IMAGE ID CREATED SIZE
 oam
 oam 12.2.1.4.0-new
- 執行下列命令以停止及移除容器:
 $ docker stop oampolicy 
 $ docker stop oamms
 $ docker stop oamadmin
 $ docker rm oampolicy
 $ docker rm oamms
 $ docker rm oamadmin
- 請依照第 3-5 節啟動容器,但傳送新映像檔名稱 e.g oam:12.2.1.4-new。例如 OAM 管理伺服器:
 
 傳送磁碟區參數時,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 Docker 設定
移除 OAM Docker 設定
                        
                      如果您需要移除 OAM Docker 設定,請執行下列步驟:
- 執行下列命令以停止 OAM 容器:
 $ docker stop oamadmin oamms oampolicy
- 使用下列命令移除 OAM 容器:
 
 $ docker rm oamadmin oamms oampolicy
- 建立 oamadmin容器時,移除您對應--volume參數的所有目錄,例如/scratch/user_projects。
 
 如果使用外部資料庫且想要建立新環境,請確定在$ sudo rm -rf /scratch/user_projects/*oam-admin.env中選擇不同的RCUPREFIX
 想要進一步瞭解?
想要進一步瞭解?
                        
                       意見
意見
					     
					     若要對此教學課程提供意見,請洽詢識別管理使用者協助。

 建立 Oracle Access Management Docker 容器
建立 Oracle Access Management Docker 容器