Marca Oracle by ExampleCriando Contêineres Docker do Oracle Identity Governance

seção 0Antes 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?


seção 1Validar a Imagem OIG

Nesta seção, você valida se a imagem OIG está instalada no repositório de imagens do Docker.

  1. Execute o seguinte comando para se certificar de que a imagem OIG esteja instalada no repositório de imagens do Docker:
    $ docker images
    A saída será semelhante à seguinte:
    REPOSITORY    TAG            IMAGE ID         CREATED       SIZE 
    oig 12.2.1.4.0 b7073c584105 2 days ago 7.88GB
    Anote o nome da imagem OIG, pois ele é usado na variável OIG_IMAGE na próxima seção. Neste exemplo, o nome da imagem é oig:12.2.1.4.0

seção 2Clonar o Repositório do FMW e Definir Variáveis

Nesta seção, você clona o repositório FMW em GitHub.

  1. Crie um diretório de trabalho para colocar os arquivos do OIG Docker:

    $ mkdir <work directory>
  2. 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
  3. Navegue até o seguinte diretório:
    $ cd <work directory>/docker-images/OracleIdentityGovernance
  4. 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 arquivo setenv.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/dbdata
    DC_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ável DC_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âmetro CONNECTION_STRING usando o formato
    ${DC_ORCL_HOST}:${DC_ORCL_PORT}/<DB_Service_Name>

    Um exemplo setenv.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
  5. Execute o script setenv.sh para definir as variáveis:

    $ cd <work directory>/docker-images/OracleIdentityGovernance
    $ . ./setenv.sh
    A saída será semelhante à seguinte:
    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
    $


seção 3Iniciar 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.

  1. 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 comando docker tag será:
    docker tag container-registry.oracle.com/database/enterprise:19.3.0.0 localhost/oracle/database:19.3.0.0-ee
  2. Navegue até o diretório samples/containerizedDB:
    $ cd <work directory>/docker-images/OracleIdentityGovernance/samples/containerizedDB
  3. Execute o seguinte comando para iniciar o banco de dados contêiner:
    $ docker-compose up -d oimdb
    A saída será semelhante à seguinte:
    Creating oimadmin ... done
  4. Execute o seguinte comando para verificar se o contêiner está sendo iniciado:
    $ docker ps
    A saída deve ser semelhante ao seguinte:
    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
    Execute docker ps novamente até que o status fique íntegro:
    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
    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:

    $ docker logs -f oimdb
    Assim que o banco de dados for iniciado, você verá algo semelhante a:

    ########################
    DATABASE IS READY TO USE!
    #########################
  5. O banco de dados é criado com a senha especificada anteriormente para a variável de ambiente DC_ORCL_SYSPWD.


seção 4Criar e Executar o Contêiner OIG WebLogic AdminServer

Nesta seção, você cria e executa o Contêiner OIG WebLogic AdminServer.

  1. 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.
  2. 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
  3. Execute o seguinte comando para verificar se o contêiner está sendo iniciado:
    $ docker ps
    A saída deve ser semelhante ao seguinte:
    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. Execute o seguinte comando para ajustar o log e verificar o status da criação do contêiner:
    $ docker logs -f oimadmin
    Depois que você vir o seguinte, o AdminServer será iniciado:
    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
    Se a criação falhar e você vir o seguinte erro nos 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 e altere CONNECTION_STRING=${DC_ORCL_HOST}:${DC_ORCL_PORT}/${DC_ORCL_PDB} para CONNECTION_STRING=oimdb:${DC_ORCL_PORT}/${DC_ORCL_PDB}. Em seguida, execute o comando docker compose novamente.

seção 5Criar e Executar o Contêiner do Servidor Gerenciado SOA

Nesta seção, você cria e executa o Contêiner do Servidor Gerenciado SOA.

  1. 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
  2. Execute o seguinte comando para verificar se o contêiner está sendo iniciado:
    $ docker ps
    A saída deve ser semelhante ao seguinte:
    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. Execute o seguinte comando para ajustar o log e verificar o status da criação do contêiner:
    $ docker logs -f soams
    Depois que você vir o seguinte, o Servidor Gerenciado SOA será iniciado:
    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

seção 6Criar 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.

  1. 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
  2. Execute o seguinte comando para verificar se o contêiner está sendo iniciado:
    $ docker ps
    A saída deve ser semelhante ao seguinte:
    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. Execute o seguinte comando para ajustar o log e verificar o status da criação do contêiner:
    $ docker logs -f oimms
    Depois que você vir o seguinte, o Servidor Gerenciado do OIM será iniciado:
    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.

seção 7Validando os Serviços OIG

Nesta seção, você confirma que o OIG está em execução e funcionando.

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

seção 8Parando 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.

  1. Execute o script setenv.sh para definir as variáveis:

    $ cd <work directory>/docker-images/OracleIdentityGovernance
    $ . ./setenv.sh
  2. 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.
  3. Para interromper os servidores, execute os seguintes comandos:
    $ docker-compose stop oimms
    $ docker-compose stop soams
    $ docker-compose stop oimadmin
    Se estiver usando um banco de dados contêiner, interrompa o banco de dados com o seguinte comando:
    $ docker-compose stop oimdb                        
  4. Se estiver usando um banco de dados contêiner, reinicie o banco de dados usando o seguinte comando:
    $ docker-compose start oimdb
    Execute o seguinte comando para ajustar o log e verificar o status da inicialização do banco de dados:
    $ docker logs -f oimdb
    Verifique se o banco de dados foi iniciado antes de continuar.
  5. Execute os seguintes comandos para iniciar o OIG AdminServer e verificar seu status:
    $ docker-compose start oimadmin
    $ docker logs -f oimadmin
    Verifique se o Servidor Admin OIG foi iniciado antes de continuar.
  6. Execute os seguintes comandos para iniciar o Servidor Gerenciado SOA e verificar seu status:
    $ docker-compose start soams
    $ docker logs -f soams
    Verifique se o Servidor Gerenciado SOA foi iniciado antes de continuar.
  7. Execute os seguintes comandos para iniciar o Servidor Gerenciado OIG e verificar seu status:
    $ docker-compose start oimms
    $ docker logs -f oimms

seção 9Removendo uma Configuração do OIG Docker

Se você precisar remover uma configuração do OIG Docker, execute as seguintes etapas:

  1. Execute o seguinte comando para interromper os contêineres OIG:
    $ docker stop oimms soams oimadmin
    Observação: Se estiver usando um contêiner Docker de banco de dados, adicione oimdb ao final do comando.
  2. Remova os contêineres OIG usando o seguinte comando:
    $ docker rm oimms soams oimadmin
    Observação: Se estiver usando um contêiner Docker de banco de dados, adicione oimdb ao final do comando.
  3. Remova todos os diretórios do diretório $DC_USERHOME (em setenv.sh), por exemplo:
    $ sudo rm -rf /u01/app/docker/OIG/*
    Se estiver usando um banco de dados externo e quiser criar um novo ambiente, certifique-se de usar outro DC_RCU_OIMPFX no setenv.sh.

mais informaçõesQuer Saber Mais?

Oracle Identity Governance


feedbackFeedback

Para fornecer feedback sobre este tutorial, entre em contato com a Assistência do Usuário do Identity Management.