Marca Oracle by ExampleCreación de contenedores Docker de Oracle Identity Governance

sección 0Antes de empezar

En este tutorial se muestra cómo crear y configurar contenedores Docker de Oracle Identity Governance (OIG) 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 OIG de las siguientes formas:

1. Descargue una imagen OIG predefinida desde Oracle Container Registry navegando hasta Middleware >oig_cpu. Oracle crea esta imagen previamente e incluye Oracle Identity Governance 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 OIG 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 OIG.

Antes de seguir este tutorial, la imagen OIG 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 OIG está diseñada para utilizarse en los siguientes contenedores OIG:

  • Servidor de administración de Weblogic (AdminServer)
  • Servidor Gestionado de SOA (soa_server1)
  • Servidor gestionado OIG (oim_server1)

¿Qué se necesita?


sección 1Validación de la imagen OIG

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

  1. Ejecute el siguiente comando para asegurarse de que la imagen OIG 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 
    oig 12.2.1.4.0 b7073c584105 2 days ago 7.88GB
    Anote el nombre de la imagen OIG, ya que se utiliza en la variable OIG_IMAGE de la siguiente sección. En este ejemplo, el nombre de la imagen es oig:12.2.1.4.0

sección 2Clonar el repositorio de FMW y definir variables

En esta sección, clonará el repositorio de FMW desde GitHub.

  1. Cree un directorio de trabajo para colocar los archivos de Docker de OIG:

    $ mkdir <work directory>
  2. Descargue los archivos de Docker de OIG del repositorio de FMW ejecutando el siguiente comando:
    $ cd <work directory>
    $ git clone https://github.com/oracle/docker-images
  3. Navigate to the following directory:
    $ cd <work directory>/docker-images/OracleIdentityGovernance
  4. El archivo setenv.sh contiene las variables de entorno que se transfieren a los scripts YAML utilizados para crear el contenedor. Edite el archivo setenv.sh y actualice los valores de estas variables de entorno con valores específicos de su propio entorno:

    Variable de Entorno Descripción Valor por Defecto Ejemplo
    DC_USERHOME Directorio de host de Docker donde se mantienen todos los datos de dominio. /scratch/${USER}
    /docker/OIG
    /u01/app/docker/OIG
    DC_DB_VERSION

    Versión de la base de datos de contenedor*

    * Esto solo se debe definir al utilizar un contenedor de base de datos de Docker para las pruebas.

    19.3.0.0-ee 19.3.0.0-ee
    http_proxy Detalles de proxy HTTP si tiene un proxy interno
    .
      http://proxy.example..com
    https_proxy Detalles de proxy HTTPS si tiene un proxy interno
    .
      http://proxy.example..com
    no_proxy     localhost,127.0.0.1,.example.com,/var/run/docker.sock
    DC_HOSTNAME Nombre de host de Docker nombre de host -f mydockerhost.example.com
    DC_ORCL_PORT Puerto de Base de Datos 1521 1521
    DC_ORCL_OEM_PORT Puerto OEM de base de datos 5500 5500
    DC_ORCL_SID Nombre de Servicio de Oracle DB oimdb oimdb
    DC_ORCL_PDB Nombre de Servicio de Base de Datos de Conexión de Oracle oimpdb oimpdb
    DC_ORCL_SYSPWD Contraseña SYS de Base de Datos   <password>
    DC_ORCL_HOST Nombre de Host de la Base de Datos ${DC_HOSTNAME} mydbhost.example.com
    DC_ORCL_DBDATA

    Ubicación del Archivo de Datos de Base de Datos*

    * Esto solo se debe definir al utilizar un contenedor de base de datos de Docker para las pruebas.

    ${DC_USERHOME}/dbdata /u01/app/docker
    /OIG/dbdata
    DC_ADMIN_PWD Contraseña del servidor de administración de WLS   <password>
    OIG_IMAGE Etiqueta de imagen de Docker de OIG oig:última oig:12.2.1.4.0
    DC_RCU_SCHPWD Contraseña de RCU   <password>
    DC_RCU_OIMPFX Prefijo de OIM de RCU OIM03 MYOIG
    DC_DDIR_OIM Directorio de Dominio de OIG ${DC_USERHOME}/oimdomain /u01/app/docker
    /OIG/oigdomain

    Nota: La variable DC_USERHOME se debe definir en un directorio en el que el usuario que ejecuta los contenedores tenga acceso completo (777). Las otras variables pueden utilizar los valores por defecto o modificarse con un valor para cumplir sus requisitos específicos.

    Nota: Si utiliza una base de datos externa y está utilizando el nombre de servicio en lugar del SID para los detalles de conexión, actualice <work directory>/docker-images/OracleIdentityGovernance/samples/externalDB/docker-compose.yaml
    y defina el parámetro CONNECTION_STRING con el formato
    ${DC_ORCL_HOST}:${DC_ORCL_PORT}/<DB_Service_Name>

    Un ejemplo de setenv.sh será el siguiente:

    ...
    #===============================================
    # MUST: Customize this to your local env
    #===============================================
    #
    # Directory where all domains/db data etc are
    # kept. Directories will be created here
    export DC_USERHOME=/u01/app/docker/OIG
    
    # Registry names where requisite standard images
    # can be found
    export DC_REGISTRY_OIG="localhost"
    export DC_REGISTRY_DB="localhost"
    
    # Proxy Environment
    export http_proxy=http://proxy.example.com:80
    export https_proxy=http://proxy.example.com:80
    export no_proxy=""
    
    #===============================================
    exportComposeEnv() {
      #
      export DC_HOSTNAME=`hostname -f`
      #
      # Used by Docker Compose from the env
      # Oracle DB Parameters
      #
      export DC_ORCL_PORT=1521
      export DC_ORCL_OEM_PORT=5500
      export DC_ORCL_SID=oimdb
      export DC_ORCL_PDB=oimpdb
      export DC_ORCL_SYSPWD=<password>
      export DC_ORCL_HOST=${DC_HOSTNAME}
      #
      export DC_ORCL_DBDATA=/u01/app/docker/OIG/dbdata
      #
      # AdminServer Password
      #
      export DC_ADMIN_PWD=<password>
      export OIG_IMAGE=oig:12.2.1.4.0
      #
      # RCU Common password for all schemas + Prefix Names
      #
      export DC_RCU_SCHPWD=<password>
      export DC_RCU_OIMPFX=MYOIG
    #
    # Domain directories for the various domain types
    #
    export DC_DDIR_OIM=/u01/app/docker/OIG/oimdomain }
    #=============================================== createDirs() { mkdir -p ${DC_DDIR_OIM} chmod 777 ${DC_DDIR_OIM} mkdir -p ${DC_ORCL_DBDATA} chmod 777 ${DC_ORCL_DBDATA} } #=============================================== #== MAIN starts here #=============================================== # echo "INFO: Setting up OIM Docker Environment..." exportComposeEnv createDirs echo "INFO: Environment variables" env | grep -e "DC_" | sort
  5. Ejecute el script setenv.sh para definir las variables:

    $ cd <work directory>/docker-images/OracleIdentityGovernance
    $ . ./setenv.sh
    La salida será similar a la siguiente:
    INFO: Setting up OIM Docker Environment...
    INFO: Environment variables
    DC_ADMIN_PWD=<password>
    DC_DDIR_OIM=/u01/app/docker/OIG/oigdomain
    DC_HOSTNAME=host.example.com
    DC_ORCL_DBDATA=/u01/app/docker/OIG/dbdata
    DC_ORCL_HOST=host.example.com
    DC_ORCL_OEM_PORT=5500
    DC_ORCL_PDB=oimpdb
    DC_ORCL_PORT=1521
    DC_ORCL_SID=oimdb
    DC_ORCL_SYSPWD=<password>
    DC_RCU_OIMPFX=OIGRH
    DC_RCU_SCHPWD=<password>
    DC_REGISTRY_DB=localhost
    DC_REGISTRY_OIG=localhost
    DC_USERHOME=/u01/app/docker/OIG
    $


sección 3Inicio del contenedor Docker de base de datos

Nota: Esta sección solo se debe seguir si se utiliza un contenedor de Database Docker con fines de prueba. Si utiliza una base de datos externa, pase a la siguiente sección.

  1. Etiquete la imagen de Docker de su base de datos con localhost/oracle/database:{$DC_DB_VERSION}. Por ejemplo, si utiliza una base de datos 19.3.0.0, el comando docker tag es:
    docker tag container-registry.oracle.com/database/enterprise:19.3.0.0 localhost/oracle/database:19.3.0.0-ee
  2. Navegue hasta el directorio samples/containerizedDB:
    $ cd <work directory>/docker-images/OracleIdentityGovernance/samples/containerizedDB
  3. Ejecute el siguiente comando para iniciar la base de datos de contenedor:
    $ docker-compose up -d oimdb
    La salida será similar a la siguiente:
    Creating oimadmin ... done
  4. Ejecute el siguiente comando para asegurarse de que el contenedor se está iniciando:
    $ docker ps
    La salida debe ser similar a la siguiente:
    CONTAINER ID        IMAGE                                   COMMAND                  CREATED              STATUS                                 PORTS                                            NAMES
    092862688dae        localhost/oracle/database:19.3.0.0-ee   "/bin/sh -c '/bin/ba…"   About a minute ago   Up About a minute (health: starting)   0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp   oimdb
    Vuelva a ejecutar docker ps hasta que el estado indique que está en buen estado:
    CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS                   PORTS                                            NAMES
    092862688dae        localhost/oracle/database:19.3.0.0-ee   "/bin/sh -c '/bin/ba…"   15 minutes ago       Up 5 minutes (healthy)   0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp   oimdb
    Nota: La base de datos puede tardar unos 15 minutos en iniciarse. Mientras el contenedor está en estado (estado: inicio), puede comprobar el log con el siguiente comando:

    $ docker logs -f oimdb
    Una vez iniciada la base de datos, debería ver algo similar a lo siguiente:

    ########################
    DATABASE IS READY TO USE!
    #########################
  5. La base de datos se crea con la contraseña especificada anteriormente para la variable de entorno DC_ORCL_SYSPWD.


sección 4Crear y ejecutar el contenedor AdminServer de OIG WebLogic

En esta sección, creará y ejecutará el contenedor WebLogic AdminServer de OIG.

  1. Vaya a <work directory>/docker-images/OracleIdentityGovernance/samples/containerizedDB si utiliza una base de datos de contenedor o a <work directory>/docker-images/OracleIdentityGovernance/samples/externalDB/ si utiliza una base de datos externa.
  2. Ejecute el comando docker-compose para crear el contenedor AdminServer:
    $ docker-compose up -d oimadmin
    La salida será similar a la siguiente:
    Starting oimadmin ... done
  3. Ejecute el siguiente comando para asegurarse de que el contenedor se está iniciando:
    $ docker ps
    La salida debe ser similar a la siguiente:
    CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS                           PORTS                   NAME
    3e875049b602   oracle/oig:12.2.1.4.0   "/bin/bash -c 'sleep…"   6 seconds ago   Up 5 seconds (health: starting)  0.0.0.0:7001->7001/tcp  oimadmin
  4. Ejecute el siguiente comando para ajustar el log y comprobar el estado de la creación del contenedor:
    $ docker logs -f oimadmin
    Una vez que vea lo siguiente, se inicia AdminServer:
    INFO: Starting the Admin Server...
    INFO: Logs = /u01/oracle/user_projects/domains/base_domain/logs/as.log
        
    INFO: Admin server is running
    INFO: Admin server running, ready to start managed server
    Si la creación falla y ve el siguiente error en los logs:
    Processing command line ....
    Invalid SID or Service name.
    Enter valid SID or Service name.
    
    ERROR - RCU-6090 Connection step validation failed.
    CAUSE - RCU-6090 Skipping main operation: failed to connect to database because database details were missing or invalid.
    ACTION - RCU-6090 Provide correct database details and try again.
    ERROR: RCU Loading Failed. Check the RCU logs
    edite <work directory>/docker-images/OracleIdentityGovernance/samples/containerizedDB/docker-compose.yaml y cambie CONNECTION_STRING=${DC_ORCL_HOST}:${DC_ORCL_PORT}/${DC_ORCL_PDB} a CONNECTION_STRING=oimdb:${DC_ORCL_PORT}/${DC_ORCL_PDB}. A continuación, vuelva a ejecutar el comando docker compose.

sección 5Creación y Ejecución del Contenedor de Servidor Gestionado de SOA

En esta sección, creará y ejecutará el contenedor de servidor gestionado de SOA.

  1. Ejecute el comando docker-compose para crear el contenedor del servidor gestionado de SOA:
    $ docker-compose up -d soams
    La salida será similar a la siguiente:
    oimadmin is up-to-date
    Creating soams ... done
  2. Ejecute el siguiente comando para asegurarse de que el contenedor se está iniciando:
    $ docker ps
    La salida debe ser similar a la siguiente:
    CONTAINER ID    IMAGE           COMMAND                  CREATED          STATUS                            PORTS                             NAMES
    8d97016d3a64    oig:12.2.1.4.0  "/bin/bash -c /u01/o…"   17 seconds ago   Up 15 seconds (health: starting)  0.0.0.0:8001-8003->8001-8003/tcp  soams
    3e875049b602    oig:12.2.1.4.0  "/bin/bash -c 'sleep…"   17 hours ago     Up 19 minutes                     0.0.0.0:7001->7001/tcp            oimadmin
  3. Ejecute el siguiente comando para ajustar el log y comprobar el estado de la creación del contenedor:
    $ docker logs -f soams
    Una vez que vea lo siguiente, se inicia el servidor gestionado de SOA:
    INFO: Waiting for the Managed Server to accept requests...
    SOA Platform is running and accepting requests. Start up took 183753 ms, partition=DOMAIN
    INFO: Managed Server is running
    INFO: Managed server has been started

sección 6Creación y Ejecución del Contenedor de Servidor Gestionado de OIM

En esta sección, creará y ejecutará el contenedor de servidor gestionado de OIM.

  1. Ejecute el comando docker-compose para crear el contenedor del servidor gestionado de OIM:
    $ docker-compose up -d oimms
    La salida será similar a la siguiente:
    oimadmin is up-to-date
    Creating oimms ... done
  2. Ejecute el siguiente comando para asegurarse de que el contenedor se está iniciando:
    $ docker ps
    La salida debe ser similar a la siguiente:
    CONTAINER ID    IMAGE              COMMAND                  CREATED              STATUS                               PORTS                                 NAMES
    ea224afeaa98    oig:12.2.1.4.0    "/bin/bash -c /u01/o…"   About a minute ago   Up 58 seconds (health: starting)      0.0.0.0:14000-14002->14000-14002/tcp   oimms
    8d97016d3a64    oig:12.2.1.4.0    "/bin/bash -c /u01/o…"   About an hour ago    Up About an hour                      0.0.0.0:8001-8003->8001-8003/tcp       soams
    3e875049b602    oig:12.2.1.4.0    "/bin/bash -c 'sleep…"   18 hours ago         Up About an hour                      0.0.0.0:7001->7001/tcp                 oimadmin
  3. Ejecute el siguiente comando para ajustar el log y comprobar el estado de la creación del contenedor:
    $ docker logs -f oimms
    Una vez que vea lo siguiente, se inicia el servidor gestionado de OIM:
    INFO: Starting the managed server oim_server1
    INFO: Waiting for the Managed Server to accept requests...
        
    INFO: Managed Server is running
    INFO: Managed server has been started
    INFO: Running SOA Mbean
    INFO: OIM SOA Integration Mbean executed successfully.

sección 7Validación de Servicios de OIG

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

  1. Inicie un explorador y acceda a las siguientes URL para el contenedor. Iniciar sesión con weblogic/<contraseña>
    Consola o página URL Detalles de Conexión
    WebLogic Consola de Administración http://<hostname>:7001/console weblogic/<contraseña>
    Consola de Oracle Enterprise Manager http://<hostname>:7001/em weblogic/<contraseña>
    Plataforma Oracle SOA http://<hostname>:8001/soa-infra weblogic/<contraseña>
    Consola de Autoservicio de Oracle Identity http://<hostname>:14000/identity xelsysadm/<contraseña>
    Consola de Administración de Oracle Identity System http://<hostname>:14000/sysadmin xelsysadm/<contraseña>

    Nota: No utilice la consola de administración WebLogic ni la consola de Oracle Enterprise Manager para parar e iniciar los servidores gestionados AdminServer, SOA y OIG. Utilice los comandos de la sección Parada e inicio de servidores.

sección 8Parada e inicio de servidores

En esta sección aprenderá a parar e iniciar OIG AdminServer, servidor gestionado de SOA y servidor gestionado de OIG. También aprenderá a parar la base de datos si utiliza una base de datos de contenedor.

  1. Ejecute el script setenv.sh para definir las variables:

    $ cd <work directory>/docker-images/OracleIdentityGovernance
    $ . ./setenv.sh
  2. Vaya a <work directory>/docker-images/OracleIdentityGovernance/samples/containerizedDB si utiliza una base de datos de contenedor o a <work directory>/docker-images/OracleIdentityGovernance/samples/externalDB/ si utiliza una base de datos externa.
  3. Para detener los servidores, ejecute los siguientes comandos:
    $ docker-compose stop oimms
    $ docker-compose stop soams
    $ docker-compose stop oimadmin
    Si utiliza una base de datos de contenedor, detenga la base de datos con el siguiente comando:
    $ docker-compose stop oimdb                        
  4. Si utiliza una base de datos de contenedor, reinicie la base de datos con el siguiente comando:
    $ docker-compose start oimdb
    Ejecute el siguiente comando para ajustar el log y comprobar el estado del inicio de la base de datos:
    $ docker logs -f oimdb
    Asegúrese de que la base de datos se ha iniciado antes de continuar.
  5. Ejecute los siguientes comandos para iniciar OIG AdminServer y comprobar su estado:
    $ docker-compose start oimadmin
    $ docker logs -f oimadmin
    Asegúrese de que el servidor de administración de OIG se ha iniciado antes de continuar.
  6. Ejecute los siguientes comandos para iniciar el servidor gestionado de SOA y comprobar su estado:
    $ docker-compose start soams
    $ docker logs -f soams
    Asegúrese de que el servidor gestionado de SOA se ha iniciado antes de continuar.
  7. Ejecute los siguientes comandos para iniciar el servidor gestionado de OIG y comprobar su estado:
    $ docker-compose start oimms
    $ docker logs -f oimms

sección 9Eliminación de una configuración de OIG Docker

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

  1. Ejecute el siguiente comando para detener los contenedores OIG:
    $ docker stop oimms soams oimadmin
    Nota: Si utiliza un contenedor de Docker de base de datos, agregue oimdb al final del comando.
  2. Elimine los contenedores OIG con el siguiente comando:
    $ docker rm oimms soams oimadmin
    Nota: Si utiliza un contenedor de Docker de base de datos, agregue oimdb al final del comando.
  3. Elimine todos los directorios del directorio $DC_USERHOME (de setenv.sh), por ejemplo:
    $ sudo rm -rf /u01/app/docker/OIG/*
    Si utiliza una base de datos externa y desea crear un entorno nuevo, asegúrese de utilizar un DC_RCU_OIMPFX diferente en setenv.sh.

más informaciónMás Información

Oracle Identity Governance


comentariosComentarios

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