Antes 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?
- Imagen de contenedor OIG instalada en el repositorio de imágenes de Docker
- Conocimientos básicos de Docker
- Docker: compuso la versión 1.25.4 o superior
- Oracle Database en ejecución. La base de datos debe ser una versión soportada para OIG como se describe en las certificaciones de Oracle Fusion Middleware 12c y debe cumplir los requisitos como se describe en Acerca de los Requisitos de Base de Datos para una Instalación de Oracle Fusion Middleware. Solo para fines de prueba, puede utilizar un contenedor de Docker de base de datos de Oracle Container Registry. Si decide utilizar una imagen de Docker de base de datos, debe instalarse en la misma máquina en la que desea ejecutar OIG.
Validación de la imagen OIG
En esta sección, valida que la imagen OIG está instalada en el repositorio de imágenes de Docker.
- Ejecute el siguiente comando para asegurarse de que la imagen OIG 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 OIG, ya que se utiliza en la variable
oigOIG_IMAGE
de la siguiente sección. En este ejemplo, el nombre de la imagen esoig:12.2.1.4.0
Clonar el repositorio de FMW y definir variables
En esta sección, clonará el repositorio de FMW desde GitHub.
Cree un directorio de trabajo para colocar los archivos de Docker de OIG:
$ mkdir <work directory>
- 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 Navigate to the following directory:
$ cd <work directory>/docker-images/OracleIdentityGovernance
- El archivo
setenv.sh
contiene las variables de entorno que se transfieren a los scripts YAML utilizados para crear el contenedor. Edite el archivosetenv.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/dbdataDC_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 variableDC_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ámetroCONNECTION_STRING
con el formato
${DC_ORCL_HOST}:${DC_ORCL_PORT}/<DB_Service_Name>
Un ejemplo desetenv.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 - Ejecute el script
setenv.sh
para definir las variables:
La salida será similar a la siguiente:$ cd
<work directory>/docker-images/OracleIdentityGovernance
$ . ./setenv.sh
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
$
Inicio 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.
- 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 comandodocker tag
es:docker tag container-registry.oracle.com/database/enterprise:19.3.0.0 localhost/oracle/database:19.3.0.0-ee
- Navegue hasta el directorio
samples/containerizedDB
:$ cd
<work directory>/docker-images/OracleIdentityGovernance
/samples/containerizedDB
- Ejecute el siguiente comando para iniciar la base de datos de contenedor:
La salida será similar a la siguiente:$ docker-compose up -d oimdb
Creating oimadmin ... done
- Ejecute el siguiente comando para asegurarse de que el contenedor se está iniciando:
La salida debe ser similar a la siguiente:$ docker ps
Vuelva a ejecutarCONTAINER 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
docker ps
hasta que el estado indique que está en buen estado:
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: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
Una vez iniciada la base de datos, debería ver algo similar a lo siguiente:$ docker logs -f oimdb
########################
DATABASE IS READY TO USE!
######################### - La base de datos se crea con la contraseña especificada anteriormente para la variable de entorno DC_ORCL_SYSPWD.
Crear y ejecutar el contenedor AdminServer de OIG WebLogic
En esta sección, creará y ejecutará el contenedor WebLogic AdminServer de OIG.
- 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. - 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
- Ejecute el siguiente comando para asegurarse de que el contenedor se está iniciando:
La salida debe ser similar a la siguiente:$ docker ps
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
- Ejecute el siguiente comando para ajustar el log y comprobar el estado de la creación del contenedor:
Una vez que vea lo siguiente, se inicia AdminServer:$ docker logs -f oimadmin
Si la creación falla y ve el siguiente error en los logs: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
editeProcessing 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
<work directory>/docker-images/OracleIdentityGovernance
/samples/containerizedDB/docker-compose.yaml
y cambieCONNECTION_STRING=${DC_ORCL_HOST}:${DC_ORCL_PORT}/${DC_ORCL_PDB}
aCONNECTION_STRING=oimdb:${DC_ORCL_PORT}/${DC_ORCL_PDB}.
A continuación, vuelva a ejecutar el comandodocker compose
.
Creació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.
- 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 - Ejecute el siguiente comando para asegurarse de que el contenedor se está iniciando:
La salida debe ser similar a la siguiente:$ docker ps
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
- Ejecute el siguiente comando para ajustar el log y comprobar el estado de la creación del contenedor:
Una vez que vea lo siguiente, se inicia el servidor gestionado de SOA:$ docker logs -f soams
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
Creació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.
- 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 - Ejecute el siguiente comando para asegurarse de que el contenedor se está iniciando:
La salida debe ser similar a la siguiente:$ docker ps
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
- Ejecute el siguiente comando para ajustar el log y comprobar el estado de la creación del contenedor:
Una vez que vea lo siguiente, se inicia el servidor gestionado de OIM:$ docker logs -f oimms
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.
Validación de Servicios de OIG
En esta sección, valida que OIG se está ejecutando y en funcionamiento.
- 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.
Parada 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.
- Ejecute el script
setenv.sh
para definir las variables:
$ cd
<work directory>/docker-images/OracleIdentityGovernance
$ . ./setenv.sh - 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. - Para detener los servidores, ejecute los siguientes comandos:
Si utiliza una base de datos de contenedor, detenga la base de datos con el siguiente comando:$ docker-compose stop oimms
$ docker-compose stop soams
$ docker-compose stop oimadmin
$ docker-compose stop oimdb
- Si utiliza una base de datos de contenedor, reinicie la base de datos con el siguiente comando:
Ejecute el siguiente comando para ajustar el log y comprobar el estado del inicio de la base de datos:$
docker-compose start oimdb
Asegúrese de que la base de datos se ha iniciado antes de continuar.$ docker logs -f oimdb
- Ejecute los siguientes comandos para iniciar OIG AdminServer y comprobar su estado:
Asegúrese de que el servidor de administración de OIG se ha iniciado antes de continuar.$
docker-compose start oimadmin$ docker logs -f oimadmin
- Ejecute los siguientes comandos para iniciar el servidor gestionado de SOA y comprobar su estado:
Asegúrese de que el servidor gestionado de SOA se ha iniciado antes de continuar.$
docker-compose start soams$ docker logs -f soam
s
- Ejecute los siguientes comandos para iniciar el servidor gestionado de OIG y comprobar su estado:
$
docker-compose start oimms$ docker logs -f oimms
Eliminación de una configuración de OIG Docker
Si necesita eliminar una configuración de OIG Docker, realice los siguientes pasos:
- Ejecute el siguiente comando para detener los contenedores OIG:
Nota: Si utiliza un contenedor de Docker de base de datos, agregue$ docker stop
oimms
soams oimadminoimdb
al final del comando. - Elimine los contenedores OIG con el siguiente comando:
Nota: Si utiliza un contenedor de Docker de base de datos, agregue$ docker rm
oimms
soams oimadminoimdb
al final del comando. - Elimine todos los directorios del directorio
$DC_USERHOME
(desetenv.sh
), por ejemplo:
Si utiliza una base de datos externa y desea crear un entorno nuevo, asegúrese de utilizar un$ sudo rm -rf
/u01/app/docker/OIG
/*DC_RCU_OIMPFX
diferente ensetenv.sh
.
Más Información
Comentarios
Para proporcionar comentarios sobre este tutorial, póngase en contacto con la asistencia del usuario de Identity Management.