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
oamoam: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.env
que 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_NAME
es el nombre del dominio WebLogic que se va a crear
b)ADMIN_USER
yADMIN_PASSWORD
son el usuario/pwd weblogic para las consolas de administración WebLogic y OAM
c)ADMIN_LISTEN_HOST
es 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--name
del comando de ejecución de docker siguiente
d)ADMIN_LISTEN_PORT
es el número de puerto que recibe el servidor de administración WebLogic
e)CONNECTION_STRING
es el valor<host>:<port>/<service_name>
de la base de datos en ejecución
f)RCUPREFIX
es el nombre de prefijo para proporcionar los esquemas creados por RCU
g)DB_USER
yDB_PASSWORD
son el usuario/pwd de la base de datos en ejecución
h)DB_SCHEMA_PASSWORD
es 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)-d
inicia el contenedor desasociado como proceso en segundo plano
b)--name
es 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)--volume
asigna el directorio/scratch/user_projects
del entorno del host al directorio/u01/oracle/user_projects
del contenedor.
d)--env-file
es la ruta de acceso al archivo .env creado anteriormente
e)oam:12.2.1.4.0
es el nombre del nombre de la imagen de OAM.
f)--network
es 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 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
- Ejecute el comando
docker logs
para 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.env
que 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_NAME
es el nombre del dominio WebLogic creado anteriormente
b)ADMIN_USER
yADMIN_PASSWORD
es el usuario weblogic/pwd
c)ADMIN_LISTEN_HOST
es el nombre de host del contenedor del servidor de administración de OAM
d)ADMIN_LISTEN_PORT
es el número de puerto del servidor de administración WebLogic
e)MANAGEDSERVER_PORT
es el número de puerto del servidor gestionado de OAM
f)MANAGED_SERVER_CONTAINER
se define en true por motivos de comprobación de estado
g)MS_HOST
es el nombre de host en el que residirá el servidor gestionado. Se debe definir en el mismo parámetro que el parámetro--name
transferido en el comandodocker run
siguiente
h)MS_NAME
es 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)-d
inicia el contenedor desasociado como proceso en segundo plano
b)--name
es 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-from
es el nombre del contenedor del servidor de administración de OAM
d)--env-file
es el nombre del archivo que contiene las variables de entorno creadas anteriormente
e)oam:12.2.1.4.0
es el nombre de la imagen de OAM
f)--network
es el nombre del puente de red que creamos anteriormente
g)/u01/oracle/dockertools/startMS.sh
se transfiere como un CMD adocker run
. El scriptstartMS.sh
establece la conexión conADMIN_LISTEN_HOST:ADMIN_LISTEN_PORT
mediante las credencialesADMIN_USER
yADMIN_PASSWORD
para 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 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
- 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 oamms
INFO: 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 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.env
que 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_NAME
is the name of the WebLogic domain created earlier
b)ADMIN_USER
andADMIN_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. Debe coincidir con el parámetro--name
transferido 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)-d
inicia el contenedor desasociado como proceso en segundo plano
b)--name
es 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-from
es el nombre del contenedor del servidor de administración de OAM
d)oam:12.2.1.4.0
es el nombre de la imagen de OAM
e)--network
es 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.sh
establece la conexión conADMIN_LISTEN_HOST:ADMIN_LISTEN_PORT
mediante las credencialesADMIN_USER
yADMIN_PASSWORD
para 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 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
- Ejecute el comando
docker logs
para 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.log
<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 oampolicy
La 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/console
Consola de Oracle Enterprise Manager http://<oamadmin_ip>:7001/em
Consola de Oracle Access Management http://<oamadmin_ip>:7001/oamconsole
Cierre de sesión del servidor de OAM http://<oamms_ip>:14100/oam/server/logout
Acceso 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
-p
paradocker 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 images
b6de6dd37fea 1 day ago 3.32GB
REPOSITORY TAG IMAGE ID CREATED SIZE
oam
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
--volume
al 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/*
RCUPREFIX
diferente 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.