Marca Oracle by ExampleCreación de contenedores Docker de Oracle Access Management

sección 0Antes 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.

sección 1Validar la imagen de OAM

En esta sección, valida que la imagen de OAM está instalada en el repositorio de imágenes de docker.

  1. Ejecute el siguiente comando para asegurarse de que la imagen de OAM está instalada en el repositorio de imágenes de docker:
    $ docker images
    La salida será similar a la siguiente:
    REPOSITORY    TAG            IMAGE ID         CREATED         SIZE 
    oam 12.2.1.4.0 d285e4354f9d 4 months ago 3.38GB
    Anote el nombre de la imagen de OAM, ya que se utilizará en secciones posteriores. En este ejemplo, el nombre de la imagen es oam:12.2.1.4.0

sección 2Creació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í.

  1. Para crear una red de docker, ejecute el siguiente comando:
    $ docker network create -d bridge OamNET
    La salida será similar a la siguiente:
    eff0bf4d7752e11e735a1e570d3348592af181e76ff86e6762f57e3f62928f9f

sección 3Crear 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.

  1. Cree un archivo de entorno /scratch/oam-admin.env que contenga las siguientes variables:
    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>
    donde:
    a) DOMAIN_NAME es el nombre del dominio WebLogic que se va a crear
    b) ADMIN_USER y ADMIN_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 y DB_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
  2. Ejecute el siguiente comando para crear e iniciar el contenedor del servidor de administración de 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
    En el ejemplo anterior:
    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 variable ADMIN_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:
    5ed71fe34a04cde9dfca08dbbe1a24d3b921f35f697f2c0881c93f5d25e1dd06
    Nota: En el ejemplo anterior, las variables de entorno se transfieren con el parámetro --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
  3. Valide que el contenedor se está ejecutando mediante el siguiente comando:
    $ docker ps
    La salida debe ser similar a la siguiente:
    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. Ejecute el comando docker logs para ver el estado de la creación del dominio:
    $ docker logs oamadmin
    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:
    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
    Nota: Si después de un tiempo desaparece el contenedor oamadmin, es probable que el contenedor no se haya iniciado. Si es así, ejecute "docker 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.

sección 4Crear 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.

  1. Cree un archivo de entorno /scratch/oam-ms.env que contenga las siguientes variables:
    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
    donde:
    a) DOMAIN_NAME es el nombre del dominio WebLogic creado anteriormente
    b) ADMIN_USER y ADMIN_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 comando docker run siguiente
    h) MS_NAME es el nombre del servidor gestionado de OAM que se va a crear
  2. Ejecute el siguiente comando para crear e iniciar el contenedor del servidor gestionado de 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"
    En el ejemplo anterior:
    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 variable MS_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 a docker run. El script startMS.sh establece la conexión con ADMIN_LISTEN_HOST:ADMIN_LISTEN_PORT mediante las credenciales ADMIN_USER y ADMIN_PASSWORD para iniciar el servidor gestionado MS_NAME.

    La salida será similar a la siguiente:
    7e735093a9503dc6586e00f31c9846cf59b92fb5299875f4eb650053f0a1fb01
    Nota: En el ejemplo anterior, las variables de entorno se transfieren con el parámetro --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"
  3. Valide que el contenedor se está ejecutando mediante el siguiente comando:
    $ docker ps
    La salida debe ser similar a la siguiente:
    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. Ejecute el comando docker logs para ver el estado de la creación del servidor:
    $ docker logs oamms
    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:
    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
    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 "docker 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.

sección 5Crear y ejecutar el contenedor de OAM Policy Manager

En esta sección, creará y ejecutará el contenedor de OAM Policy Manager.

  1. Cree un archivo de entorno /scratch/oam-policy.env que contenga las siguientes variables:
    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. Debe coincidir con el parámetro --name transferido en el comando de ejecución de docker a continuación
  2. Ejecute el siguiente comando para crear e iniciar el contenedor de OAM Policy Manager:
    $ 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"
    En el ejemplo anterior:
    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 variable MS_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 script startMS.sh establece la conexión con ADMIN_LISTEN_HOST:ADMIN_LISTEN_PORT mediante las credenciales ADMIN_USER y ADMIN_PASSWORD para iniciar el servidor gestionado MS_NAME. La salida será similar a la siguiente:
    b673528bfc828d172759e86fcb942d5333ad80adc8a43202ddbd66428cecc81a
    Nota: En el ejemplo anterior, las variables de entorno se transfieren con el parámetro --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"
  3. Valide que el contenedor se está ejecutando mediante el siguiente comando:
    $ docker ps
    La salida debe ser similar a la siguiente:
    							
    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. Ejecute el comando docker logs para ver el estado de la creación del servidor:
    $ docker logs oampolicy
  5. 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
    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
    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 "docker 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.

sección 6Validación de Servicios de OAM

En esta sección, valida que OAM se está ejecutando y en funcionamiento.

  1. 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

  2. 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".
  3. 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 con http://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 para docker 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 comandos docker stop <container> y docker start <container>.

sección 7Actualización de contenedores de OAM con una nueva imagen

En esta sección, inicia los contenedores OAM con una nueva imagen de docker.

  1. Instale la nueva imagen en el repositorio 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. 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
  3. 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:
    $ 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
    A medida que transfiera el parámetro de volumen, los servidores de OAM comenzarán con la configuración anterior.


sección 8Eliminación de una configuración de Docker de OAM

Si necesita eliminar una configuración de Docker de OAM, realice los siguientes pasos:

  1. Ejecute los siguientes comandos para parar los contenedores de OAM:
    $ docker stop oamadmin oamms oampolicy
  2. Elimine los contenedores OAM mediante el siguiente comando:

    $ docker rm oamadmin oamms oampolicy
  3. Elimine todos los directorios desde los que ha asignado el parámetro --volume al crear el contenedor oamadmin, por ejemplo /scratch/user_projects.
    $ sudo rm -rf /scratch/user_projects/*
    Si utiliza una base de datos externa y desea crear un nuevo entorno, asegúrese de utilizar una opción RCUPREFIX diferente en oam-admin.env

más informaciónMás Información

Oracle Access Management


comentariosComentarios

Para proporcionar comentarios sobre este tutorial, póngase en contacto con la asistencia del usuario de Identity Management.