Antes de Começar
Este tutorial mostra como criar e configurar contêineres Docker do Oracle Identity Governance (OIG) 12.2.1.4.0.
Histórico
O Docker é uma plataforma que permite aos usuários criar, empacotar, enviar e executar aplicativos distribuídos. Os usuários do Docker empacotam seus aplicativos e quaisquer bibliotecas ou arquivos dependentes em uma imagem do Docker.
As imagens do Docker são artefatos portáveis que podem ser distribuídos entre ambientes do Linux. As imagens que foram distribuídas podem ser usadas para instanciar contêineres nos quais os aplicativos podem ser executados isoladamente de outros aplicativos em execução em outros contêineres no mesmo sistema operacional host.
Você pode implantar imagens OIG das seguintes maneiras:
1. Faça download de uma imagem OIG pré-criada no Oracle Container Registry navegando até Middleware >oig_cpu. Esta imagem é pré-criada pela Oracle e inclui o Oracle Identity Governance 12.2.1.4.0, a Atualização de Conjunto de Patches (PSU) mais recente e outras correções lançadas com o programa CPU (Critical Patch Update)
2. Crie sua própria imagem OIG usando a Ferramenta de Imagem WebLogic ou usando o dockerfile, scripts e imagens base do OCR (Oracle Container Registry). Você também pode criar sua própria imagem usando apenas o dockerfile e os scripts. Para obter mais informações sobre as várias maneiras pelas quais você pode criar sua própria imagem de contêiner, consulte Criando a Imagem OIG.
Antes de seguir este tutorial, a imagem do OIG deve ser instalada no repositório de imagens do Docker usando um destes métodos. As instruções para todos esses métodos são encontradas nos links referenciados acima.
A imagem OIG foi projetada para ser usada para os seguintes contêineres OIG:
- Servidor de Administração do Weblogic (
AdminServer
) - Servidor Gerenciado SOA (
soa_server1
) - Servidor Gerenciado OIG (
oim_server1
)
Do Que Você Precisa?
- Uma imagem de contêiner OIG instalada no repositório de imagens do Docker
- Uma compreensão básica do Docker
- Docker-compor 1.25.4 ou mais recente
- Um Oracle Database em execução. O banco de dados deve ser uma versão suportada para o OIG, conforme descrito em certificações do Oracle Fusion Middleware 12c, e deve atender aos requisitos, conforme descrito em Sobre Requisitos de Banco de Dados para uma Instalação do Oracle Fusion Middleware. Para fins de teste apenas, você pode usar um Contêiner Docker de Banco de Dados no Oracle Container Registry. Se você optar por usar uma imagem do Docker de banco de dados, ela deverá ser instalada na mesma máquina em que você pretende executar o OIG.
Validar a Imagem OIG
Nesta seção, você valida se a imagem OIG está instalada no repositório de imagens do Docker.
- Execute o seguinte comando para se certificar de que a imagem OIG esteja instalada no repositório de imagens do Docker:
A saída será semelhante à seguinte:$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
Anote o nome da imagem OIG, pois ele é usado na variável
oigOIG_IMAGE
na próxima seção. Neste exemplo, o nome da imagem éoig:12.2.1.4.0
Clonar o Repositório do FMW e Definir Variáveis
Nesta seção, você clona o repositório FMW em GitHub.
Crie um diretório de trabalho para colocar os arquivos do OIG Docker:
$ mkdir <work directory>
- Faça download dos arquivos OIG Docker do Repositório FMW executando o seguinte comando:
$ cd <work directory>
$ git clone https://github.com/oracle/docker-images Navegue até o seguinte diretório:
$ cd <work directory>/docker-images/OracleIdentityGovernance
- O arquivo
setenv.sh
contém as variáveis de ambiente que são passadas para os scripts YAML usados para criar o contêiner. Edite o arquivosetenv.sh
e atualize os valores dessas variáveis de ambiente com valores específicos para seu próprio ambiente:
Variável de Ambiente Descrição Valor Padrão Exemplo DC_USERHOME Diretório do Host do Docker no qual todos os dados do domínio são mantidos. /scratch/${USER}
/docker/OIG/u01/app/docker/OIG DC_DB_VERSION Versão do BD do contêiner*
* Isso só precisa ser definido ao usar um contêiner do DB Docker para teste.
19.3.0.0-ee 19.3.0.0-ee http_proxy Detalhes do Proxy HTTP se você tiver um proxy
interno.http://proxy.example..com https_proxy Detalhes do Proxy HTTPS se você tiver um proxy
interno.http://proxy.example..com no_proxy localhost,127.0.0.1,.example.com,/var/run/docker.sock DC_HOSTNAME Nome do host do Docker nome do host -f mydockerhost.example.com DC_ORCL_PORT Porta do Banco de Dados 1521 1521 DC_ORCL_OEM_PORT Porta do OEM do BD 5500 5500 DC_ORCL_SID Nome do Serviço do Oracle DB oimdb oimdb DC_ORCL_PDB Nome do Serviço de BD Plugável da Oracle oimpdb oimpdb DC_ORCL_SYSPWD Senha SYS do BD <senha> DC_ORCL_HOST Hostname do BD ${DC_HOSTNAME} mydbhost.example.com DC_ORCL_DBDATA Localização do Arquivo de Dados do BD*
* Isso só precisa ser definido ao usar um contêiner do DB Docker para teste.
${DC_USERHOME}/dbdata /u01/app/docker
/OIG/dbdataDC_ADMIN_PWD Senha do Servidor de Administração do WLS <senha> OIG_IMAGE Tag de Imagem do OIG Docker oig:o mais recente oig:12.2.1.4.0 DC_RCU_SCHPWD Senha RCU <senha> DC_RCU_OIMPFX Prefixo OIM RCU OIM03 MYOIG DC_DDIR_OIM Diretório de Domínio do OIG ${DC_USERHOME}/oimdomínio /u01/app/docker
/OIG/oigdomain
Observação: A variávelDC_USERHOME
deve ser definida como um diretório ao qual o usuário que está executando os contêineres tem acesso total (777). As outras variáveis podem usar os valores padrão ou ser retificadas em um valor para atender aos seus requisitos específicos.
Observação: se você estiver usando um banco de dados externo e estiver usando o Nome do Serviço em vez de o SID para seus detalhes de conexão, atualize o<work directory>/docker-images/OracleIdentityGovernance/samples/externalDB/docker-compose.yaml
e defina o parâmetroCONNECTION_STRING
usando o formato
${DC_ORCL_HOST}:${DC_ORCL_PORT}/<DB_Service_Name>
Um exemplosetenv.sh
será o seguinte:
... #=============================================== # 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 - Execute o script
setenv.sh
para definir as variáveis:
A saída será semelhante à seguinte:$ 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
$
Iniciar o Database Docker Container
Observação: Esta seção só deverá ser seguida se estiver usando um contêiner do Database Docker para fins de teste. Se estiver usando um banco de dados externo, vá para a próxima seção.
- Marque sua imagem do Docker de banco de dados com
localhost/oracle/database:{$DC_DB_VERSION}
. Por exemplo, se estiver usando um banco de dados 19.3.0.0, o comandodocker tag
será:docker tag container-registry.oracle.com/database/enterprise:19.3.0.0 localhost/oracle/database:19.3.0.0-ee
- Navegue até o diretório
samples/containerizedDB
:$ cd
<work directory>/docker-images/OracleIdentityGovernance
/samples/containerizedDB
- Execute o seguinte comando para iniciar o banco de dados contêiner:
A saída será semelhante à seguinte:$ docker-compose up -d oimdb
Creating oimadmin ... done
- Execute o seguinte comando para verificar se o contêiner está sendo iniciado:
A saída deve ser semelhante ao seguinte:$ docker ps
ExecuteCONTAINER 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
novamente até que o status fique íntegro:
Observação: pode levar cerca de 15 minutos para que o banco de dados seja iniciado. Enquanto o contêiner está no status (integridade: iniciando), você pode verificar o log usando o seguinte 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
Assim que o banco de dados for iniciado, você verá algo semelhante a:$ docker logs -f oimdb
########################
DATABASE IS READY TO USE!
######################### - O banco de dados é criado com a senha especificada anteriormente para a variável de ambiente DC_ORCL_SYSPWD.
Criar e Executar o Contêiner OIG WebLogic AdminServer
Nesta seção, você cria e executa o Contêiner OIG WebLogic AdminServer.
- Navegue até
<work directory>/docker-images/OracleIdentityGovernance
/samples/containerizedDB
se estiver usando um banco de dados contêiner ou<work directory>/docker-images/OracleIdentityGovernance
/samples/externalDB/
se estiver usando um banco de dados externo. - Execute o comando
docker-compose
para criar o contêiner AdminServer:$ docker-compose up -d oimadmin
A saída será semelhante à seguinte:Starting oimadmin ... done
- Execute o seguinte comando para verificar se o contêiner está sendo iniciado:
A saída deve ser semelhante ao seguinte:$ 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
- Execute o seguinte comando para ajustar o log e verificar o status da criação do contêiner:
Depois que você vir o seguinte, o AdminServer será iniciado:$ docker logs -f oimadmin
Se a criação falhar e você vir o seguinte erro nos 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
e altereCONNECTION_STRING=${DC_ORCL_HOST}:${DC_ORCL_PORT}/${DC_ORCL_PDB}
paraCONNECTION_STRING=oimdb:${DC_ORCL_PORT}/${DC_ORCL_PDB}.
Em seguida, execute o comandodocker compose
novamente.
Criar e Executar o Contêiner do Servidor Gerenciado SOA
Nesta seção, você cria e executa o Contêiner do Servidor Gerenciado SOA.
- Execute o comando
docker-compose
para criar o contêiner do Servidor Gerenciado SOA:$ docker-compose up -d soams
A saída será semelhante à seguinte:oimadmin is up-to-date
Creating soams ... done - Execute o seguinte comando para verificar se o contêiner está sendo iniciado:
A saída deve ser semelhante ao seguinte:$ 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
- Execute o seguinte comando para ajustar o log e verificar o status da criação do contêiner:
Depois que você vir o seguinte, o Servidor Gerenciado SOA será iniciado:$ 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
Criar e Executar o Contêiner do Servidor Gerenciado do OIM
Nesta seção, você cria e executa o Contêiner do Servidor Gerenciado do OIM.
- Execute o comando
docker-compose
para criar o contêiner do Servidor Gerenciado OIM:$ docker-compose up -d oimms
A saída será semelhante à seguinte:oimadmin is up-to-date
Creating oimms ... done - Execute o seguinte comando para verificar se o contêiner está sendo iniciado:
A saída deve ser semelhante ao seguinte:$ 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
- Execute o seguinte comando para ajustar o log e verificar o status da criação do contêiner:
Depois que você vir o seguinte, o Servidor Gerenciado do OIM será iniciado:$ 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.
Validando os Serviços OIG
Nesta seção, você confirma que o OIG está em execução e funcionando.
- Inicie um navegador e acesse os seguintes URLs para o contêiner. Login com weblogic/<password>
Console ou Página URL Detalhes do Login WebLogic Console de Administração http://<hostname>:7001/console
weblogic/<senha> Console do Oracle Enterprise Manager http://<hostname>:7001/em
weblogic/<senha> Oracle SOA Platform http://<hostname>:8001/soa-infra
weblogic/<senha> Console do Oracle Identity Self Service http://<hostname>:14000/identity
xelsysadm/<senha> Console de Administração do Oracle Identity System http://<hostname>:14000/sysadmin
xelsysadm/<senha>
Observação: Não use a Console de Administração WebLogic ou a Console do Oracle Enterprise Manager para interromper e iniciar os Servidores Gerenciados AdminServer, SOA e OIG. Use os comandos na seção Interrompendo e Iniciando Servidores.
Parando e Iniciando Servidores
Nesta seção, você aprenderá a interromper e iniciar o OIG AdminServer, o SOA Managed Server e o OIG Managed Server. Você também aprenderá a interromper o banco de dados se estiver usando um banco de dados contêiner.
- Execute o script
setenv.sh
para definir as variáveis:
$ cd
<work directory>/docker-images/OracleIdentityGovernance
$ . ./setenv.sh - Navegue até
<work directory>/docker-images/OracleIdentityGovernance
/samples/containerizedDB
se estiver usando um banco de dados contêiner ou<work directory>/docker-images/OracleIdentityGovernance
/samples/externalDB/
se estiver usando um banco de dados externo. - Para interromper os servidores, execute os seguintes comandos:
Se estiver usando um banco de dados contêiner, interrompa o banco de dados com o seguinte comando:$ docker-compose stop oimms
$ docker-compose stop soams
$ docker-compose stop oimadmin
$ docker-compose stop oimdb
- Se estiver usando um banco de dados contêiner, reinicie o banco de dados usando o seguinte comando:
Execute o seguinte comando para ajustar o log e verificar o status da inicialização do banco de dados:$
docker-compose start oimdb
Verifique se o banco de dados foi iniciado antes de continuar.$ docker logs -f oimdb
- Execute os seguintes comandos para iniciar o OIG AdminServer e verificar seu status:
Verifique se o Servidor Admin OIG foi iniciado antes de continuar.$
docker-compose start oimadmin$ docker logs -f oimadmin
- Execute os seguintes comandos para iniciar o Servidor Gerenciado SOA e verificar seu status:
Verifique se o Servidor Gerenciado SOA foi iniciado antes de continuar.$
docker-compose start soams$ docker logs -f soam
s
- Execute os seguintes comandos para iniciar o Servidor Gerenciado OIG e verificar seu status:
$
docker-compose start oimms$ docker logs -f oimms
Removendo uma Configuração do OIG Docker
Se você precisar remover uma configuração do OIG Docker, execute as seguintes etapas:
- Execute o seguinte comando para interromper os contêineres OIG:
Observação: Se estiver usando um contêiner Docker de banco de dados, adicione$ docker stop
oimms
soams oimadminoimdb
ao final do comando. - Remova os contêineres OIG usando o seguinte comando:
Observação: Se estiver usando um contêiner Docker de banco de dados, adicione$ docker rm
oimms
soams oimadminoimdb
ao final do comando. - Remova todos os diretórios do diretório
$DC_USERHOME
(emsetenv.sh
), por exemplo:
Se estiver usando um banco de dados externo e quiser criar um novo ambiente, certifique-se de usar outro$ sudo rm -rf
/u01/app/docker/OIG
/*DC_RCU_OIMPFX
nosetenv.sh
.
Quer Saber Mais?
Feedback
Para fornecer feedback sobre este tutorial, entre em contato com a Assistência do Usuário do Identity Management.