Antes de empezar
En este tutorial se muestra cómo crear y configurar contenedores Docker de Oracle Access Management (OAM) 12.2.1.4.0.
Antecedentes
Docker es una plataforma que permite a los usuarios crear, empaquetar, enviar y ejecutar aplicaciones distribuidas. Los usuarios de Docker empaquetan sus aplicaciones y cualquier biblioteca o archivo dependiente en una imagen de Docker.
Las imágenes de Docker son artefactos portátiles que se pueden distribuir entre entornos de Linux. Las imágenes que se han distribuido se pueden utilizar para crear instancias de contenedores en los que las aplicaciones se pueden ejecutar aisladamente de otras aplicaciones que se ejecutan en otros contenedores del mismo sistema operativo host.
Puede desplegar imágenes de OAM de las siguientes formas:
1. Descargue una imagen de OAM predefinida desde Oracle Container Registry navegando hasta Middleware > oam_cpu. Esta imagen es creada previamente por Oracle e incluye Oracle Access Management 12.2.1.4.0, la última actualización de juego de parches (PSU) y otras correcciones publicadas con el programa de actualización de parches críticos (CPU).
2. Cree su propia imagen de OAM mediante la herramienta de imágenes WebLogic o mediante el archivo dockerfile, los scripts y las imágenes base de Oracle Container Registry (OCR). También puede crear su propia imagen utilizando sólo el archivo dockerfile y los scripts. Para obtener más información sobre las distintas formas en que puede crear su propia imagen de contenedor, consulte Creación de la imagen de OAM.
Antes de seguir este tutorial, la imagen de OAM se debe instalar en el repositorio de imágenes de docker mediante uno de estos métodos. Las instrucciones para todos estos métodos se encuentran en los enlaces a los que se hace referencia anteriormente.
La imagen de OAM está diseñada para utilizarse en los siguientes contenedores de OAM:
- WebLogic Servidor de administración (
AdminServer) - Servidor gestionado de OAM (
oam_server1) - Servidor gestionado de OAM Policy Manager (
oam_policy_mgr1)
¿Qué se necesita?
- Imagen de OAM instalada en el repositorio de imágenes de docker
- Conocimientos básicos de Docker
- Oracle Database en ejecución. La base de datos debe ser una versión soportada para OAM como se describe en las certificaciones de Oracle Fusion Middleware 12c.
Validar la imagen de OAM
En esta sección, valida que la imagen de OAM está instalada en el repositorio de imágenes de docker.
- Ejecute el siguiente comando para asegurarse de que la imagen de OAM está instalada en el repositorio de imágenes de docker:
La salida será similar a la siguiente:$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
Anote el nombre de la imagen de OAM, ya que se utilizará en secciones posteriores. En este ejemplo, el nombre de la imagen es
oam12.2.1.4.0 d285e4354f9d 4 months ago 3.38GBoam:12.2.1.4.0
Creación de una red con puente
En esta sección, creará una red con puente para que los contenedores de OAM se puedan comunicar entre sí.
- Para crear una red de docker, ejecute el siguiente comando:
La salida será similar a la siguiente:$ docker network create -d bridge OamNET
eff0bf4d7752e11e735a1e570d3348592af181e76ff86e6762f57e3f62928f9f
Crear y ejecutar el contenedor del servidor de administración de OAM
En esta sección, creará y ejecutará el contenedor del servidor de administración WebLogic de OAM, que aloja las consolas WebLogic y OAM.
Cuando se crea el contenedor para el servidor de administración, se realizan las siguientes operaciones:
- Ejecución de la utilidad de creación de repositorios
- Creación del dominio de OAM con DOMAIN_ROOT como
/u01/oracle/user_projects - Inicio del Servidor de Administración
Un directorio del host, por ejemplo /scratch/user_projects, se asignará a los contenedores en /u01/oracle/user_projects. Este es el mecanismo mediante el cual la estructura de dominio se comparte entre el servidor de administración de OAM y los contenedores del servidor gestionado.
- Cree un archivo de entorno
/scratch/oam-admin.envque contenga las siguientes variables:
donde: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_NAMEes el nombre del dominio WebLogic que se va a crear
b)ADMIN_USERyADMIN_PASSWORDson el usuario/pwd weblogic para las consolas de administración WebLogic y OAM
c)ADMIN_LISTEN_HOSTes el nombre de host del contenedor. Nota: Se recomienda hacer que este sea el mismo nombre que el nombre de contenedor transferido en el parámetro--namedel comando de ejecución de docker siguiente
d)ADMIN_LISTEN_PORTes el número de puerto que recibe el servidor de administración WebLogic
e)CONNECTION_STRINGes el valor<host>:<port>/<service_name>de la base de datos en ejecución
f)RCUPREFIXes el nombre de prefijo para proporcionar los esquemas creados por RCU
g)DB_USERyDB_PASSWORDson el usuario/pwd de la base de datos en ejecución
h)DB_SCHEMA_PASSWORDes la contraseña que desea definir para los esquemas de RCU - Ejecute el siguiente comando para crear e iniciar el contenedor del servidor de administración de OAM:
En el ejemplo anterior:$ 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)-dinicia el contenedor desasociado como proceso en segundo plano
b)--namees el nombre proporcionado al contenedor de docker una vez iniciado. Para facilitar el uso, asígnele el mismo nombre que se transfiere en la variableADMIN_LISTEN_HOST
c)--volumeasigna el directorio/scratch/user_projectsdel entorno del host al directorio/u01/oracle/user_projectsdel contenedor.
d)--env-filees la ruta de acceso al archivo .env creado anteriormente
e)oam:12.2.1.4.0es el nombre del nombre de la imagen de OAM.
f)--networkes el nombre del puente de red que creamos anteriormente
La salida será similar a la siguiente:
Nota: En el ejemplo anterior, las variables de entorno se transfieren con el parámetro5ed71fe34a04cde9dfca08dbbe1a24d3b921f35f697f2c0881c93f5d25e1dd06--env-file, que señala un archivo que contiene las variables de entorno. También puede transferir las variables de entorno en la línea de comandos de la siguiente manera:$ 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 - Valide que el contenedor se está ejecutando mediante el siguiente comando:
La salida debe ser similar a la siguiente:$ 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 - Ejecute el comando
docker logspara ver el estado de la creación del dominio:
La creación del dominio tardará varios minutos. Ejecute el comando anterior hasta que vea la siguiente salida que confirma que se está ejecutando el servidor de administración de OAM:$ docker logs oamadmin
Nota: Si después de un tiempo desaparece el contenedor oamadmin, es probable que el contenedor no se haya iniciado. Si es así, ejecute "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". Esto debe mostrar el estado de todos los contenedores iniciados, parados o salidos. A continuación, puede ejecutar"docker logs oamadmin" para ver el log y averiguar qué ha fallado. La mayoría de los problemas se deben a errores tipográficos en el comando de ejecución de docker o a una configuración incorrecta de variables de entorno.
Crear y ejecutar el contenedor de servidor gestionado de OAM WebLogic
En esta sección, creará y ejecutará el contenedor de servidor gestionado de OAM WebLogic.
- Cree un archivo de entorno
/scratch/oam-ms.envque contenga las siguientes variables:DOMAIN_NAME=access_domain
donde:
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_NAMEes el nombre del dominio WebLogic creado anteriormente
b)ADMIN_USERyADMIN_PASSWORDes el usuario weblogic/pwd
c)ADMIN_LISTEN_HOSTes el nombre de host del contenedor del servidor de administración de OAM
d)ADMIN_LISTEN_PORTes el número de puerto del servidor de administración WebLogic
e)MANAGEDSERVER_PORTes el número de puerto del servidor gestionado de OAM
f)MANAGED_SERVER_CONTAINERse define en true por motivos de comprobación de estado
g)MS_HOSTes el nombre de host en el que residirá el servidor gestionado. Se debe definir en el mismo parámetro que el parámetro--nametransferido en el comandodocker runsiguiente
h)MS_NAMEes el nombre del servidor gestionado de OAM que se va a crear - Ejecute el siguiente comando para crear e iniciar el contenedor del servidor gestionado de OAM:
En el ejemplo anterior:$ 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)-dinicia el contenedor desasociado como proceso en segundo plano
b)--namees el nombre proporcionado al contenedor de docker una vez iniciado. Para facilitar el uso, asigne el mismo nombre que en la variableMS_HOST
c)--volumes-fromes el nombre del contenedor del servidor de administración de OAM
d)--env-filees el nombre del archivo que contiene las variables de entorno creadas anteriormente
e)oam:12.2.1.4.0es el nombre de la imagen de OAM
f)--networkes el nombre del puente de red que creamos anteriormente
g)/u01/oracle/dockertools/startMS.shse transfiere como un CMD adocker run. El scriptstartMS.shestablece la conexión conADMIN_LISTEN_HOST:ADMIN_LISTEN_PORTmediante las credencialesADMIN_USERyADMIN_PASSWORDpara iniciar el servidor gestionadoMS_NAME.
La salida será similar a la siguiente:
Nota: En el ejemplo anterior, las variables de entorno se transfieren con el parámetro7e735093a9503dc6586e00f31c9846cf59b92fb5299875f4eb650053f0a1fb01--env-file, que señala un archivo que contiene las variables de entorno. También puede transferir las variables de entorno en la línea de comandos de la siguiente manera:$ 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" - Valide que el contenedor se está ejecutando mediante el siguiente comando:
La salida debe ser similar a la siguiente:$ 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 - Ejecute el comando docker logs para ver el estado de la creación del servidor:
La creación del servidor gestionado de OAM tardará varios minutos. Ejecute el comando anterior hasta que vea la siguiente salida para confirmar que el servidor gestionado de OAM se está ejecutando:$ docker logs oammsINFO: Waiting for the Managed Server to accept requests...
Nota: Si después de un tiempo desaparece el contenedor de oamms, es probable que el contenedor no se haya iniciado. Si es así, ejecute "
<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 starteddocker ps -a". Esto debe mostrar el estado de todos los contenedores iniciados, parados o salidos. A continuación, puede ejecutar "docker logs oamms" para ver el log e intentar solucionar el error. La mayoría de los problemas se deben a errores tipográficos en el comando de ejecución de docker o a una configuración incorrecta de variables de entorno.
Crear y ejecutar el contenedor de OAM Policy Manager
En esta sección, creará y ejecutará el contenedor de OAM Policy Manager.
- Cree un archivo de entorno
/scratch/oam-policy.envque contenga las siguientes variables:
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. Debe coincidir con el parámetro--nametransferido en el comando de ejecución de docker a continuación - Ejecute el siguiente comando para crear e iniciar el contenedor de OAM Policy Manager:
En el ejemplo anterior:$ 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)-dinicia el contenedor desasociado como proceso en segundo plano
b)--namees el nombre proporcionado al contenedor de docker una vez iniciado. Para facilitar el uso, asígnele el mismo nombre que se transfiere en la variableMS_HOST
c)--volumes-fromes el nombre del contenedor del servidor de administración de OAM
d)oam:12.2.1.4.0es el nombre de la imagen de OAM
e)--networkes el nombre del puente de red que creamos anteriormente
f)/u01/oracle/dockertools/startMS.sh: se pasa como un CMD para la ejecución de docker. El scriptstartMS.shestablece la conexión conADMIN_LISTEN_HOST:ADMIN_LISTEN_PORTmediante las credencialesADMIN_USERyADMIN_PASSWORDpara iniciar el servidor gestionadoMS_NAME. La salida será similar a la siguiente:
Nota: En el ejemplo anterior, las variables de entorno se transfieren con el parámetrob673528bfc828d172759e86fcb942d5333ad80adc8a43202ddbd66428cecc81a--env-file, que señala un archivo que contiene las variables de entorno. También puede transferir las variables de entorno en la línea de comandos de la siguiente manera:$ 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" - Valide que el contenedor se está ejecutando mediante el siguiente comando:
La salida debe ser similar a la siguiente:$ 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 - Ejecute el comando
docker logspara ver el estado de la creación del servidor:$ docker logs oampolicy - La creación del servidor gestionado de OAM tardará varios minutos. Ejecute el comando anterior hasta que vea la siguiente salida para confirmar que el servidor de OAM Policy Manager se está ejecutando:
INFO: Starting the managed server oam_policy_mgr1
Nota: Si después de un tiempo desaparece el contenedor de oampolicy, es probable que el contenedor no se haya iniciado. Si es así, ejecute "
INFO: Logs = /u01/oracle/user_projects/domains/access_domain/logs/oam_policy_mgr1-ms-oampolicy.logINFO: 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.> starteddocker ps -a". Esto debe mostrar el estado de todos los contenedores iniciados, parados o salidos. A continuación, puede ejecutar "docker logs oampolicy" para ver el log e intentar solucionar el error. La mayoría de los problemas se deben a errores tipográficos en el comando de ejecución de docker o a una configuración incorrecta de variables de entorno.
Validación de Servicios de OAM
En esta sección, valida que OAM se está ejecutando y en funcionamiento.
- Busque las direcciones IP relevantes para cada contenedor de docker mediante el siguiente comando:
$ docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' < name of docker containers separated by space >Por ejemplo:
$ docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' oamadmin oamms oampolicyLa salida será similar a la siguiente:
/oamadmin - 192.168.0.3
/oamms - 192.168.0.4
/oampolicy - 192.168.0.5 - Inicie un explorador en el servidor Linux del host de Docker. Edite las preferencias de proxy de red de los exploradores y agregue las direcciones IP de arriba a la sección "No proxy for".
- Acceda a las siguientes URL utilizando la dirección IP relevante para el contenedor. Iniciar sesión con weblogic/<contraseña>
Consola o página URL WebLogic Consola de Administración http://<oamadmin_ip>:7001/consoleConsola de Oracle Enterprise Manager http://<oamadmin_ip>:7001/emConsola de Oracle Access Management http://<oamadmin_ip>:7001/oamconsoleCierre de sesión del servidor de OAM http://<oamms_ip>:14100/oam/server/logoutAcceso del Gestor de Políticas http://<oampolicy_ip>:15100/access
También se puede acceder a los servicios mediante:
a) localhost solo desde el host del docker conhttp://localhost:7001/<uri>b) Desde fuera del host del docker si los puertos de contenedor se asignaron a los puertos de host (mediante el parámetro
-pparadocker run.Por ejemplo,http://<hostname>:<ADMIN_LISTEN_PORT>/<uri>
Nota: para parar e iniciar el servidor de administración y los servidores gestionados de OAM, utilice los comandosdocker stop <container>ydocker start <container>.
Actualización de contenedores de OAM con una nueva imagen
En esta sección, inicia los contenedores OAM con una nueva imagen de docker.
- Instale la nueva imagen en el repositorio e.g
oam:12.2.1.4-new:
$ docker imagesb6de6dd37fea 1 day ago 3.32GB
REPOSITORY TAG IMAGE ID CREATED SIZE
oam12.2.1.4.0 d285e4354f9d 4 months ago 3.38GB
oam 12.2.1.4.0-new - Ejecute los siguientes comandos para detener y eliminar los contenedores:
$ docker stop oampolicy
$ docker stop oamms
$ docker stop oamadmin
$ docker rm oampolicy
$ docker rm oamms
$ docker rm oamadmin - Siga las secciones 3-5 para iniciar los contenedores, pero transfiera el nuevo nombre de imagen e.g
oam:12.2.1.4-new. Por ejemplo, para el servidor de administración de OAM:
A medida que transfiera el parámetro de volumen, los servidores de OAM comenzarán con la configuración anterior.$ 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
Eliminación de una configuración de Docker de OAM
Si necesita eliminar una configuración de Docker de OAM, realice los siguientes pasos:
- Ejecute los siguientes comandos para parar los contenedores de OAM:
$ docker stop oamadmin oamms oampolicy - Elimine los contenedores OAM mediante el siguiente comando:
$ docker rm oamadmin oamms oampolicy - Elimine todos los directorios desde los que ha asignado el parámetro
--volumeal crear el contenedoroamadmin, por ejemplo/scratch/user_projects.
Si utiliza una base de datos externa y desea crear un nuevo entorno, asegúrese de utilizar una opción$ sudo rm -rf /scratch/user_projects/*RCUPREFIXdiferente enoam-admin.env
Más Información
Comentarios
Para proporcionar comentarios sobre este tutorial, póngase en contacto con la asistencia del usuario de Identity Management.
Creación de contenedores Docker de Oracle Access Management