Despliegue de Oracle Identity Role Intelligence en Kubernetes

Introducción

Oracle Identity Role Intelligence (OIRI) proporciona un servicio que permite a los usuarios generar un juego de roles candidatos a partir de un origen de datos (archivos planos u Oracle Identity Governance), según un juego de reglas de minería de roles configurado en el servicio. En este tutorial se mostrará cómo desplegar OIRI en un entorno de Kubernetes.

Objetivos

Al finalizar este laboratorio, debe tener una instalación de OIRI en un entorno de Kubernetes.

Requisitos

Los requisitos previos para desplegar OIRI en Kubernetes son:

Nota: si ha actualizado la base de datos OIRI de 12.1.x a 12.2.x, 18c o 19c, debe actualizar el parámetro de base de datos compatible a un valor de '12.2' o superior. Si no lo hace, verá errores ORA-00972: identifier is too long al crear algunos objetos de base de datos OIRI.

Configuración de la Autenticación para Oracle Identity Governance (OIG)

OIG es el proveedor de autenticación para instancias de producción de OIRI. OIRI requiere que se configuren los siguientes usuarios y roles de OIG para permitir el acceso del usuario a la aplicación OIRI y para permitir que se autentique y publique roles en OIG.

  1. Creación de usuarios de la aplicación OIRI.

    Cree el usuario, por ejemplo admin, para conectarse a OIRI. Consulte Creación de un Usuario en Realización de Tareas de Autoservicio con Oracle Identity Governance para obtener más información sobre cómo crear un usuario en OIG.

  2. Crear rol de ingeniero de roles de OIRI.

    Cree un rol de ingeniero de roles dentro de OIG y asígnelo al usuario, admin, que creó en el paso anterior. Para ello, cree el rol OrclOIRIRoleEngineer. Consulte Creación de roles en Realización de tareas de autoservicio con Oracle Identity Governance. Solo un usuario con el rol OrclOIRIRoleEngineer puede conectarse a la aplicación OIRI

  3. Crear usuario de cuenta de servicio de OIRI.

    Cree una cuenta de servicio en OIG para que el servicio realice la autenticación entre OIRI y OIG y publique roles en OIG.

    Cree un rol de administrador con las siguientes capacidades.

    • Usuario: Ver/Buscar
    • Rol - Crear
    • Política de Acceso: Crear

    Cree este rol con Scope of Control y Organization como Top.

    Cree el usuario OIRIServiceAccountUser y asigne el rol de administrador.

    Consulte Creación de un rol de administrador en Realización de tareas de autoservicio con Oracle Identity Governance para obtener información sobre la creación de un rol de administrador en OIG.

Instalación de la Imagen OIRI

El servicio OIRI comprende cuatro imágenes de la siguiente manera:

Estas imágenes se pueden descargar de uno de los dos orígenes:

Instalar imagen OIRI desde My Oracle Support

  1. Conexión a My Oracle Support

  2. Busque la nota de soporte Imágenes de contenedor para Oracle Identity and Access Management y Oracle IDM Microservices (ID de documento 2723908.1) e identifique el último parche para OIRI. Descargue el archivo de parches y extraiga el contenido.

    Archive:  <patch>.zip
    inflating: oiri-12.2.1.4.<TAG>/oiri-12.2.1.4.<TAG>.tar
    inflating: oiri-12.2.1.4.<TAG>/oiri-cli-12.2.1.4.<TAG>.tar
    inflating: oiri-12.2.1.4.<TAG>/oiri-ding-12.2.1.4.<TAG>.tar
    inflating: oiri-12.2.1.4.<TAG>/oiri-ui-12.2.1.4.<TAG>.tar
    
  3. Navegue hasta el archivo creado desde el archivo zip.

    cd oiri-12.2.1.4.<TAG>
    
  4. Cargue cada archivo tar en el repositorio local.

    docker load --input oiri-12.2.1.4.<TAG>.tar
    docker load --input oiri-ui-12.2.1.4.<TAG>.tar
    docker load --input oiri-ding-12.2.1.4.<TAG>.tar
    docker load --input oiri-cli-12.2.1.4.<TAG>.tar
    
  5. Verifique que las imágenes se hayan cargado con el siguiente comando.

    docker images | grep 12.2.1.4.<TAG>
    

    La salida debe ser similar a:

    oiri-ui   12.2.1.4.<TAG>   c88384a36914   20 hours ago   568MB
    oiri-ding 12.2.1.4.<TAG>   8a733b055959   20 hours ago   1.23GB
    oiri-cli  12.2.1.4.<TAG>   58d75bf93160   20 hours ago   618MB
    oiri      12.2.1.4.<TAG>   874276068356   20 hours ago   577MB
    

Instalar imagen OIRI de Oracle Container Registry

Al instalar la imagen desde Oracle Container Registry, inicialmente solo descargará la imagen oiri-cli. Los scripts de despliegue llamarán a otras imágenes según sea necesario.

Nota: Solo la versión base de OIRI está disponible actualmente en Oracle Container Registry. Para la versión más reciente, descárguela desde My Oracle Support.

  1. Descargue la imagen oiri-cli.

    En un explorador, vaya a Oracle Container Registry.

    Haga clic en Conectar y conéctese con su nombre de usuario y contraseña.

    En el cuadro Términos y condiciones, seleccione Idioma como inglés. Haga clic en Continue y ACCEPT "Terms and Restrictions".

    En el entorno de Docker, conéctese a Oracle Container Registry y escriba su nombre de usuario y contraseña de Oracle SSO cuando se le solicite:

    docker login container-registry.oracle.com
    

    Extraiga la imagen oiri-cli.

    docker pull container-registry.oracle.com/middleware/oiri-cli-12.2.1.4.<TAG>
    
  2. Verifique la instalación.

    Ejecute el comando docker images para mostrar que la imagen está instalada en el repositorio:

    docker images | grep oiri
    

    La imagen de Docker de OIRI se ha instalado correctamente y está lista para su configuración.

Crear Directorios

Se necesitan varios directorios para el despliegue de OIRI en un cluster de Kubernetes. Los puntos de montaje NFS son necesarios para la ingestión de datos y oiri, mientras que se debe configurar un directorio local para generar values.yaml utilizado por el gráfico Helm de OIRI. Cree directorios similares a los que se muestran a continuación:

  1. Cree directorios.

    mkdir /nfs/ding
    
    mkdir /nfs/oiri
    
    mkdir -p /local/k8s/
    
  2. Definir permisos.

    Asegúrese de que se otorgan permisos de escritura para cada uno de estos directorios.

    chmod 775 /nfs/ding /nfs/oiri /local/k8s/
    

Ejecute el contenedor oiri-cli

  1. Ejecute el contenedor oiri-cli con el siguiente comando.

    docker run -d --name oiri-cli \
    -v /nfs/ding/:/app/ \
    -v /nfs/oiri/:/app/oiri \
    -v /local/k8s/:/app/k8s \
    --group-add <group id> \
    oiri-cli-12.2.1.4.<TAG> \
    tail -f /dev/null
    

    Nota: <group id> es el ID del grupo del host que tiene acceso a los volúmenes.

    La salida será similar a la siguiente.

    docker run -d --name oiri-cli \     
    -v /nfs/ding/:/app/ \
    -v /nfs/oiri/:/app/oiri \
    -v /local/k8s/:/app/k8s \
    --group-add <group id> \
    oiri-cli-12.2.1.4.<TAG> \
    tail -f /dev/null
    430d5f4af68d87be3123fbdd77d53fb13b2b961e41243d69a3c1f367df514a84
    

    Verifique que el contenedor se esté ejecutando con el siguiente comando:

    docker ps -a | grep oiri
    

    La salida será similar a la siguiente.

    430d5f4af68d        oiri-cli-12.2.1.4.<TAG>   "tail -f /dev/null"      About a minute ago   Up About a minute                              oiri-cli
    

Configuración de acceso de contenedor a Kubernetes

  1. Cree espacios de nombres para OIRI y DING.

    kubectl create namespace oirins
    namespace/oirins created
    kubectl create namespace dingns
    namespace/dingns created
    
  2. Cree oiri-service-account.yaml con el siguiente contenido. Sustituya por el espacio de nombres OIRI y por el espacio de nombres DING.

    apiVersion: v1kind: ServiceAccountmetadata:  name:
         oiri-service-account  namespace: <OIRINS>---apiVersion: rbac.authorization.k8s.io/v1kind:
           Rolemetadata:  name:
           oiri-ns-role  namespace:
         <OIRINS>rules:- apiGroups: ["*"]  resources: ["*"]  verbs: ["*"]---apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  name: ding-ns-role  namespace: <DINGNS>rules:- apiGroups: ["*"]  resources: ["*"]  verbs: ["*"]---kind: ClusterRoleapiVersion:
           rbac.authorization.k8s.io/v1metadata:  name:
           oiri-ingress-nginx-clusterrolerules:-
           apiGroups: [""]  resources: ["configmaps", "endpoints", "nodes", "pods", "secrets"]  verbs: ["watch", "list"]-
           apiGroups: [""]  resourceNames: ["<OIRINS>"]  resources: ["namespaces"]  verbs: ["get"]-
           apiGroups: [""]  resources: ["nodes"]  verbs: ["get"]-
           apiGroups: [""]  resources: ["services"]  verbs: ["get", "list", "watch"]-
           apiGroups: [""]  resources: ["events"]  verbs: ["create", "patch"]-
           apiGroups: ["extensions"]  resources: ["ingresses"]  verbs: ["get", "list", "watch"]-
           apiGroups: ["extensions"]  resources: ["ingresses/status"]  verbs: ["update"]-
           apiGroups: ["networking.k8s.io"]  resources: ["ingresses/status"]  verbs:
           ["update"]- apiGroups: ["networking.k8s.io"]  resources: ["ingresses", "ingressclasses"]  verbs: ["get", "list", "watch"]---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name:
           oiri-ingress-nginx-clusterrolebinding-<OIRINS>roleRef:  apiGroup:
           rbac.authorization.k8s.io  kind:
           ClusterRole  name:
           oiri-ingress-nginx-clusterrolesubjects:-
           namespace: <OIRINS>  kind:
           ServiceAccount  name:
           oiri-service-account---apiVersion: rbac.authorization.k8s.io/v1kind:
           ClusterRoleBindingmetadata:  name: oiri-clusterrolebinding-<OIRINS>roleRef:  apiGroup:
           rbac.authorization.k8s.io  kind:
           ClusterRole  name:
           system:persistent-volume-provisionersubjects:-
           namespace: <OIRINS>  kind:
           ServiceAccount  name:
           oiri-service-account---apiVersion: rbac.authorization.k8s.io/v1kind:
           RoleBindingmetadata:  name:
           oiri-rolebinding  namespace: <OIRINS>roleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: oiri-ns-rolesubjects:- namespace: <OIRINS>  kind: ServiceAccount  name: oiri-service-account---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  name: ding-rolebinding  namespace: <DINGNS>roleRef:  apiGroup:
           rbac.authorization.k8s.io  kind:
           Role  name:
         ding-ns-rolesubjects:- namespace: <OIRINS>  kind: ServiceAccount  name:
     oiri-service-account
    
  3. Ejecute los siguientes comandos kubectl como administrador del cluster de Kubernetes. Sustituya por el espacio de nombres OIRI cuando corresponda.

    kubectl apply -f oiri-service-account.yaml
    TOKENNAME=`kubectl -n <OIRINS> get serviceaccount/oiri-service-account -o jsonpath='{.secrets[0].name}'`
    TOKEN=`kubectl -n <OIRINS> get secret $TOKENNAME -o jsonpath='{.data.token}'| base64 --decode`
    kubectl -n <OIRINS> get secret $TOKENNAME -o jsonpath='{.data.ca\.crt}'| base64 --decode > ca.crt
    
  4. Comparta ca.crt y TOKEN con el administrador de instalación de OIRI copiando ca.crt en el directorio local de Kubernetes y enumerando la TOKEN creada en el paso 5.c.

    cp ca.crt /local/k8s
    echo $TOKEN
    eyJhbGciOiJSUzI1NiIsImtpZCI6ImpBSjd3d0puUDBPUlpxbWY2anBRclY4WElweFNka0dGSU4zQmF4ZmxhMTgifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJvaXJpbnMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoib2lyaS1zZXJ2aWNlLWFjY291bnQtdG9rZW4tYjU3bTQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoib2lyaS1zZXJ2aWNlLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIxMjU3Y2MwMy0zZGQ3LTQzZTMtODdkYi04ZGExZjM3NTllNjAiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6b2lyaW5zOm9pcmktc2VydmljZS1hY2NvdW50In0.Y8n5DPIyqrFOzRo5dtzaNdinQtwQov0RAdNbWb_DBpo1UATrHl72Re2-C7afcP-Jc19JlxS1I3CuyOAGO4-gqSa1fwK-ahNqbhHBoRKPj3o-j8fsbDEkhp_zJOxWBMBE7JgxufzJ_24LtlO6RGafcuiBdZ0vxyxVcEsPHAbNGSiMf_zO36530f6VmURy2MdzoF3fASN5hdiRnT3-7VSxF-Am7BQJnzYXhftMe7lOUW3st1WGeRi3R6dOAj3ibKvXgoA90MUearn1ibXWVkgqjuaoiMvnQQc0bopBLOsAY-s1ZGnwyYP92ulFaXdvYdyDxWXPPg4Tvjxh7gEhw-iTjg
    
  5. Conéctese al contenedor oiri-cli y ejecute los siguientes comandos.

    Conectar:

    docker exec -it oiri-cli bash
    

    Ejecución:

    touch /app/k8s/config
    export KUBECONFIG=/app/k8s/config
    kubectl config set-cluster oiri-cluster --server=https://<IPAddressofK8SPrimaryNode>:6443 --certificate-authority=/app/k8s/ca.crt --embed-certs=true
    export TOKEN=<Token-Shared-by-Kuberetes-Admin>
    kubectl config set-credentials oiri-service-account --token=$TOKEN
    kubectl config set-context oiri --user=oiri-service-account --cluster=oiri-cluster
    kubectl config use-context oiri
    exit
    

Iniciar Archivos de Configuración

Configure una configuración inicial para OIRI mediante los siguientes comandos:

Nota: los detalles completos de todos los parámetros se pueden ver en el manual Administración de Oracle Identity Role Intelligence.

  1. Conéctese al contenedor oiri-cli.

    docker exec -it oiri-cli bash
    
  2. Consulte la ayuda para el script de configuración, setupConfFiles.sh. Puede ver las opciones disponibles para este script ejecutando el siguiente comando.

    ./setupConfFiles.sh -h
    
  3. Ejecute la configuración del archivo de configuración llamando al script setupConfFile.sh.

    ./setupConfFiles.sh -m prod \
    --oigdbhost {OIG_DB_HOST} \
    --oigdbport {OIG_DB_PORT} \
    --oigdbsname {OIG_DB_SERVICE_NAME} \
    --oiridbhost {OIRI_DB_HOST} \
    --oiridbport {OIRI_DB_PORT} \
    --oiridbsname {OIRI_DB_SERVICE} \
    --useflatfileforetl true \
    --sparkmode {SPARK_MODE} \
    --dingnamespace {DING_NAMESPACE} \
    --dingimage {DING_IMAGE} \
    --imagepullsecret {IMAGE_PULL_SECRET} \
    --k8scertificatefilename {KUBERNETES_CERTIFICATE_FILE_NAME} \
    --sparkk8smasterurl {KUBERENETES_MASTER_URL} \
    --oigserverurl {OIG_SERVER_URL} \
    

    Por ejemplo:

    ./setupConfFiles.sh -m prod \
    --oigdbhost oighost.example.com \
    --oigdbport 1521 \
    --oigdbsname oigdb.example.com \
    --oiridbhost oirihost.example.com \
    --oiridbport 1521 \
    --oiridbsname oiridb.example.com \
    --useflatfileforetl true \
    --sparkmode k8s \
    --dingnamespace ding \
    --dingimage oiri-ding-12.2.1.4.<TAG> \
    --imagepullsecret regcred \
    --k8scertificatefilename ca.crt \
    --sparkk8smasterurl k8s://https://12.34.56.78:6443 \
    --oigserverurl http://oighost.example.com:14000 \
    

    La salida será similar a la siguiente.

    Output:
    INFO:  OIG DB as source for ETL is true
    INFO: Setting up /app/data/conf/config.yaml
    INFO: Setting up /app/data/conf/data-ingestion-config.yaml
    INFO: Setting up /app/data/conf/custom-attributes.yaml
    INFO: Setting up /app/oiri/data/conf/application.yaml
    INFO: Setting up /app/oiri/data/conf/authenticationConf.yaml
    INFO: Setting up /app/data/conf/dbconfig.yaml
    

    Nota: --sparkk8smasterurl es una URL utilizada internamente y debe utilizar la dirección IP en lugar del nombre de host; de lo contrario, verá errores al ejecutar la ingestión de datos.

  4. Compruebe que los archivos se han creado.

    Compruebe el directorio /app/data/conf.

    ls /app/data/conf/
    

    La salida debe ser la misma que la siguiente.

    config.yaml custom-attributes.yaml data-ingestion-config.yaml dbconfig.yaml
    

    Compruebe el directorio /app/oiri/data/conf.

    ls /app/oiri/data/conf
    

    La salida debe ser la misma que la siguiente.

    application.yaml authenticationConf.yaml
    

Configurar parámetros de gráfico de Helm

Configure la configuración del gráfico de Helm con los siguientes comandos.

Nota: los detalles completos de todos los parámetros se pueden ver en el manual Administración de Oracle Identity Role Intelligence.

  1. Conéctese al contenedor oiri-cli.

    docker exec -it oiri-cli bash
    
  2. Ejecute la configuración values.yaml.

    ./setupValuesYaml.sh \
    --oiriapiimage {OIRI_API_IMAGE} \
    --oirinfsserver {OIRI_NFS_SERVER} \
    --oirinfsstoragepath {OIRI_NFS_PATH} \
    --oirinfsstoragecapacity {OIRI_NFS_STORAGE_CAPACITY} \
    --oiriuiimage {OIRI_UI_IMAGE} \
    --dingimage {DING_IMAGE} \
    --dingnfsserver {OIRI_NFS_SERVER} \
    --dingnfsstoragepath {DING_NFS_STORAGE_PATH} \
    --dingnfsstoragecapacity {DING_NFS_STORAGE_CAPACITY} \
    --ingresshostname {INGRESS_HOSTNAME} \
    --sslsecretname "{SSL_SECRET_NAME}"
    

    Por ejemplo:

    ./setupValuesYaml.sh \
    --oiriapiimage oiri-12.2.1.4.<TAG> \
    --oirinfsserver oirihost.example.com \
    --oirinfsstoragepath /nfs/oiri \
    --oirinfsstoragecapacity 10Gi \
    --oiriuiimage oiri-ui-12.2.1.4.<TAG> \
    --dingimage oiri-ding-12.2.1.4.<TAG> \
    --dingnfsserver oirihost.example.com \
    --dingnfsstoragepath /nfs/ding \
    --dingnfsstoragecapacity 10Gi \
    --ingresshostname oirihost.example.com \
    --sslsecretname "oiri-tls-cert"
    
  3. Verifique que se ha creado el archivo values.yaml.

    ls /app/k8s/
    

    La salida debe ser la misma que la siguiente.

    values.yaml
    
  4. Salir del contenedor

Generación de un almacén de claves

  1. Conéctese al contenedor oiri-cli.

    docker exec -it oiri-cli bash
    
  2. Cree el almacén de claves mediante keytool.

    keytool -genkeypair \
    -alias <OIRI_JWT_KEY_ALIAS> \
    -keypass <OIRI_KEYSTORE_PASSWORD> \
    -keyalg RSA \
    -keystore /app/oiri/data/keystore/keystore.jks \
    -storetype pkcs12 \
    -storepass <password>
    

    Por ejemplo:

    keytool -genkeypair -alias oii -keypass <password> -keyalg RSA -keystore /app/oiri/data/keystore/keystore.jks -storepass <password> -storetype pkcs12
    What is your first and last name?
      [Unknown]: oiri.example.com
    What is the name of your organizational unit?
      [Unknown]: oiri
    What is the name of your organization?
      [Unknown]: example.com
    What is the name of your City or Locality?
      [Unknown]: Cambridge
    What is the name of your State or Province?
      [Unknown]: Massachusetts
    What is the two-letter country code for this unit?
      [Unknown]: US
    Is CN= oiri.example.com, OU=oiri, O=example.com, L=Cambridge, ST=Massachusetts, C=US correct?
      [no]:  yes
    
  3. Salga del contenedor.

  4. Exporte el certificado del servidor de Oracle Identity Governance para verificar la firma.

    Exporte el certificado del servidor de Oracle Identity Governance desde el almacén de claves OIG por defecto y, a continuación, copie a /nfs/oiri/data/keystore

    Nota: el almacén de claves OIG por defecto se encuentra en OIG_ORACLE_HOME/user_projects/domains/base_domain/config/fmwconfig.

    cd OIG_ORACLE_HOME/user_projects/domains/base_domain/config/fmwconfig
    
    keytool -export -rfc -alias xell -file xell.pem -keystore default-keystore.jks
    

    Copie el archivo en el directorio del almacén de claves de OIRI.

    cp xell.pem /nfs/oiri/data/keystore
    
  5. Conéctese al contenedor oiri-cli.

    docker exec -it oiri-cli bash
    
  6. Importe el certificado al almacén de claves.

    keytool -import \
    -alias xell \
    -file /app/oiri/data/keystore/xell.pem \
    -keystore /app/oiri/data/keystore/keystore.jks
    

Crear carteras

  1. Conéctese al contenedor OIRI.

    docker exec -it oiri-cli bash
    
  2. Cree la cartera con oiri-cli.

    oiri-cli --config=/app/data/conf/config.yaml wallet create
    

    Proporcione los siguientes parámetros cuando se le solicite:

    • Base de datos OIRI UserName y contraseña
    • Base de datos OIG UserName y contraseña
    • Cuenta de servicio de OIG UserName y contraseña (OIRIServiceAccountUser creada anteriormente en este tutorial)
    • Contraseña de OIRI KeyStore
    • Alias y contraseña de clave JWT de OIRI

    La salida será similar a la siguiente.

    #######  #### ########  ####          ######   ##       ####
    ##     ##  ##  ##     ##  ##          ##    ##  ##        ##
    ##     ##  ##  ##     ##  ##          ##        ##        ##
    ##     ##  ##  ########   ##  ####### ##        ##        ##
    ##     ##  ##  ##   ##    ##          ##        ##        ##
    ##     ##  ##  ##    ##   ##          ##    ##  ##        ##
     #######  #### ##     ## ####          ######   ######## ####
    Setting up wallet in [/app/data/wallet]
    DING Wallet created.
    Setting up wallet in [/app/oiri/data/wallet]
    OIRI Wallet created.
    
  3. Compruebe que se han creado las carteras OIRI y DING.

    ls /app/data/wallet
    

    La salida debe ser la misma que la siguiente.

    Output:
    cwallet.sso cwallet.sso.lck
    
    ls /app/oiri/data/wallet
    

    La salida debe ser la misma que la siguiente.

    Output:
    cwallet.sso cwallet.sso.lck
    

Creación e inicio del usuario de la base de datos OIRI

  1. Conéctese al contenedor oiri-cli.

    docker exec -it oiri-cli bash
    
  2. Cree el usuario de base de datos mediante oiri-cli.

    oiri-cli --config=/app/data/conf/config.yaml schema create /app/data/conf/dbconfig.yaml
    

    Proporcione el siguiente parámetro cuando se le solicite.

    • Contraseña SYS

    La salida será similar a la siguiente.

    #######  #### ########  ####          ######   ##       ####
    ##     ##  ##  ##     ##  ##          ##    ##  ##        ##
    ##     ##  ##  ##     ##  ##          ##        ##        ##
    ##     ##  ##  ########   ##  ####### ##        ##        ##
    ##     ##  ##  ##   ##    ##          ##        ##        ##
    ##     ##  ##  ##    ##   ##          ##    ##  ##        ##
     #######  #### ##     ## ####          ######   ######## ####
    Creating the schema ci_oiri
    CREATING OIRI SCHEMA ............
    ===================================================
    DB USER ci_oiri has been successfully created
    
  3. Finalice el esquema con oiri-cli.

    oiri-cli --config=/app/data/conf/config.yaml schema migrate /app/data/conf/dbconfig.yaml
    

    La salida será similar a la siguiente.

    #######  #### ########  ####          ######   ##       ####
    ##     ##  ##  ##     ##  ##          ##    ##  ##        ##
    ##     ##  ##  ##     ##  ##          ##        ##        ##
    ##     ##  ##  ########   ##  ####### ##        ##        ##
    ##     ##  ##  ##   ##    ##          ##        ##        ##
    ##     ##  ##  ##    ##   ##          ##    ##  ##        ##
     #######  #### ##     ## ####          ######   ######## ####
    Migrating the OIRI schema
    Migrating OIRI SCHEMA ............
    ===================================================
    .....
    OIRI Schema has been successfully migrated
    

Verificación de la conectividad de cartera y base de datos

  1. Conéctese al contenedor OIRI.

    docker exec -it oiri-cli bash
    
  2. Verifique la cartera con verifyWallet.sh.

    ./verifyWallet.sh
    

    La salida será similar a la siguiente.

     #######  #### ########  ####          ######   ##       ####
    ##     ##  ##  ##     ##  ##          ##    ##  ##        ##
    ##     ##  ##  ##     ##  ##          ##        ##        ##
    ##     ##  ##  ########   ##  ####### ##        ##        ##
    ##     ##  ##  ##   ##    ##          ##        ##        ##
    ##     ##  ##  ##    ##   ##          ##    ##  ##        ##
     #######  #### ##     ## ####          ######   ######## ####
    Verifying Wallets. Wallet locations and entries will be validated
    DING Wallet is Valid.
    OIRI Wallet is Valid.
    OIRI DB Connection is Valid.
    OIG DB Connection is Valid.
    KeyStore location and entries are Valid.
    OIG Server Connection is Valid.
    SUCCESS: Wallet locations and entries are valid.
    

Instalar gráfico de Helm de OIRI

  1. Cree secretos de extracción de imágenes para los espacios de nombres oiri y ding.

    kubectl create secret docker-registry regcred --docker-server=<registry_server_url> --docker-username=<registry_user> --docker-password=<registry_password> -n <oirins>
    kubectl create secret docker-registry regcred --docker-server=<registry_server_url> --docker-username=<registry_user> --docker-password=<registry_password> -n <dingns>
    
  2. Opcionalmente, si ha seleccionado -ssl/--sslenabled como true al ejecutar setupValuesYaml.sh, configure un certificado SSL y cree un secreto de Kubernetes para el certificado.

    Cree el certificado con la utilidad openssl.

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=<HOSTNAME>"
    

    Por ejemplo:

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=oiri.example.com"
    Generating a 2048 bit RSA private key
    ..+++
    ............................+++
    writing new private key to 'tls.key'
    -----
    

    Nota: el certificado creado en el paso anterior está autofirmado y no se debe utilizar en un entorno de producción. En producción, proporcione un certificado y una clave válidos para el comando create secret detallado en el siguiente paso.

    Conéctese al contenedor oiri-cli y cree un secreto de Kubernetes que contenga el certificado creado en el paso anterior.

    docker exec -it oiri-cli bash
    
    kubectl create secret tls oiri-tls-cert --key="tls.key" --cert="tls.crt"
    

    La salida debe ser la misma que la siguiente.

    secret/oiri-tls-cert created
    
  3. Instalar el gráfico de Helm de OIRI

    helm install oiri /helm/oiri -f /app/k8s/values.yaml -n <oirinamespace>
    

    La salida será similar a la siguiente.

    NAME: oiri
    LAST DEPLOYED: Wed Apr 28 05:05:05 2021
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    Please be patient while the chart installs. Pod may not be in running status.
    
    To check the status of the pod, run following command.
    Pods READY state must be 1/1 and status RUNNING
    
        kubectl get pods --namespace oiri
        kubectl get pods --namespace ding
    
    Access OIRI UI by using following URL in your browser.
    
        https://100.94.12.189:30305/oiri/ui/v1/console
    
    Admins can access DING History Server by port forwarding the ding-history pod through kubectl.
    
        kubectl port-forward <pod_name> <desired_port>:18080 -n ding
    
    Inside the DING-CLI, use following commands to start data ingestion
    
        ding-cli --config=/app/data/conf/config.yaml data-ingestion start /app/data/conf/data-ingestion-config.yaml`
    

Verifique la instalación

Verifique la instalación comprobando que los pods de OIRI se han iniciado correctamente. Una vez que los pods se estén ejecutando, conéctese a la interfaz de usuario de OIRI.

  1. Verifique que los pods de OIRI se hayan iniciado correctamente.

    kubectl get pods --namespace oiri
    

    La salida debe ser similar a la siguiente.

    NAME                       READY   STATUS    RESTARTS   AGE
    oiri-549d5458fb-v6vjk      1/1     Running   0          2d22h
    oiri-ui-7894b5b4b7-28klj   1/1     Running   0          2d22h
    
    kubectl get pods --namespace ding
    

    La salida debe ser similar a la siguiente.

    NAME                                    READY   STATUS    RESTARTS   AGE
    spark-history-server-85689d9545-svtvd   1/1     Running   0          2d22h
    
  2. Acceda a la interfaz de usuario de OIRI mediante la siguiente URL en el explorador.

    https://oirihost.example.com/oiri/ui/v1/console

    Inicialmente, verá la pantalla de inicio de sesión de la interfaz de usuario de OIRI.

    Conéctese con un usuario OIG autorizado.

    La pantalla principal de OIRI se debe mostrar de la siguiente manera:

Actualización de la imagen OIRI

A medida que se liberan nuevas compilaciones de la imagen OIRI, puede que sea necesario actualizar el contenedor. Para ello, debe realizar los siguientes pasos.

  1. Elimine el contenedor oiri-cli existente.

    Del host:

    docker rm -f oiri-cli
    
  2. Cree el contenedor oiri-cli con la nueva imagen.

    Del host:

    docker run -d --name oiri-cli \
    -v /nfs/ding/:/app/ \
    -v /nfs/oiri/:/app/oiri \
    -v /local/k8s/:/app/k8s \
    {OIRI_CLI_NEW_IMAGE} \
    tail -f /dev/null
    

    La salida será similar a la siguiente.

    docker run -d --name oiri-cli \
    -v /nfs/ding/:/app/ \
    -v /nfs/oiri/:/app/oiri \
    -v /local/k8s/:/app/k8s \
    oiri-cli-12.2.1.4.<TAG> \
    tail -f /dev/null
    c78e8964d8d5445028b0b0aa4740f9fd980cbdaa5e31cd11085ac05da0d6a4a0
    
  3. Elimine el contenedor ding-cli existente.

    Del host:

    docker rm -f ding-cli
    
  4. Cree el contenedor ding-cli con la nueva imagen.

    Del host:

    docker run -d --name ding-cli \
    -v /nfs/ding/:/app/ \
    -v /nfs/oiri/:/app/oiri \
    -v /local/k8s/:/app/k8s \
    {DING_CLI_NEW_IMAGE} \
    tail -f /dev/null
    

    La salida será similar a la siguiente.

    docker run -d --name ding-cli \
    -v /nfs/ding/:/app/ \
    -v /nfs/oiri/:/app/oiri \
    -v /local/k8s/:/app/k8s \
    oiri-ding-12.2.1.4.<TAG> tail -f /dev/null
    d47b534711ff4d27556ef57c0bd7a9ef3f9d0b12fb9f276bd053e85810374e7b
    
  5. Conéctese al contenedor oiri-cli.

    docker exec -it oiri-cli bash
    
  6. Actualice la configuración de OIRI con las imágenes más recientes.

    En el contenedor oiri-cli, ejecute los siguientes comandos.

    ./updateValuesYaml.sh \
    --oiriapiimage {OIRI_NEW_IMAGE} \
    --oiriuiimage {OIRI_UI_NEW_IMAGE} \
    --dingimage {DING_NEW_IMAGE}
    
    ./updateConfig.sh \
    --dingimage {DING_NEW_IMAGE}
    

    La salida será similar a la siguiente.

    ./updateValuesYaml.sh \
    --oiriapiimage oiri-12.2.1.4.<TAG> \
    --oiriuiimage oiri-ui-12.2.1.4.<TAG>:<tag> \
    --dingimage oiri-ding-12.2.1.4.<TAG>
    INFO: Setting up /app/k8s/values.yaml
    
    ./updateConfig.sh \
    --dingimage oiri/oiri-ding:<tag>
    INFO: Setting up /app/data/conf/config.yaml
    INFO: Setting up /app/data/conf/data-ingestion-config.yaml
    INFO: Setting up /app/data/conf/custom-attributes.yaml
    INFO: Setting up /app/oiri/data/conf/application.yaml
    INFO: Setting up /app/oiri/data/conf/authenticationConf.yaml
    INFO: Setting up /app/data/conf/dbconfig.yaml
    
  7. Actualice el esquema con la nueva imagen.

    oiri-cli --config=/app/data/conf/config.yaml schema migrate /app/data/conf/dbconfig.yaml
    

    La salida debe ser similar a la siguiente.

    #######  #### ########  ####          ######   ##       ####
    ##     ##  ##  ##     ##  ##          ##    ##  ##        ##
    ##     ##  ##  ##     ##  ##          ##        ##        ##
    ##     ##  ##  ########   ##  ####### ##        ##        ##
    ##     ##  ##  ##   ##    ##          ##        ##        ##
    ##     ##  ##  ##    ##   ##          ##    ##  ##        ##
    #######  #### ##     ## ####          ######   ######## ####
    Migrating the OIRI schema
    Migrating OIRI SCHEMA ............
    ===================================================
    ========== Before Migrate =============
    Script:V1__RoleMining.sql Installed On:2021-04-14 15:25:56.075212 State:SUCCESS Version:1 Description:RoleMining
    ========== After Migrate =============
    Script:V1__RoleMining.sql Installed On:2021-04-14 15:25:56.075212 State:SUCCESS Version:1 Description:RoleMining
    OIRI Schema has been successfully migrated
    
  8. Actualice el gráfico de Helm para reflejar la nueva imagen.

    helm upgrade oiri /helm/oiri -f /app/k8s/values.yaml
    

    La salida será similar a la siguiente.

    helm upgrade oiri /helm/oiri -f /app/k8s/values.yaml
    Release "oiri" has been upgraded. Happy Helming!
    NAME: oiri
    LAST DEPLOYED: Mon Apr 26 16:51:58 2021
    NAMESPACE: default
    STATUS: deployed
    REVISION: 4
    TEST SUITE: None
    NOTES:
    Please be patient while the chart installs. Pod may not be in running status.
    
    To check the status of the pod, run following command.
    Pods READY state must be 1/1 and status RUNNING
    
    kubectl get pods --namespace oiri
    
    kubectl get pods --namespace ding
    
    Access OIRI UI by using following URL in your browser.
    
     https://den01evo.us.oracle.com:30305/oiri/ui/v1/console
    
    Admins can access DING History Server by port forwarding the ding-history pod through kubectl.
    
     kubectl port-forward <pod_name> <desired_port>:18080 -n ding
    
    Inside the DING-CLI, use following commands to start data ingestion
    
     ding-cli --config=/app/data/conf/config.yaml data-ingestion start /app/data/conf/data-ingestion-config.yaml
    
  9. Verifique que los pods se estén ejecutando y utilice la imagen correcta.

    Confirme que los pods de OIRI se están ejecutando.

    kubectl get pods --namespace oiri
    

    La salida debe ser similar a la siguiente.

    NAME                     READY   STATUS    RESTARTS   AGE
    oiri-677c96f67f-p6q8j    1/1     Running   0          41m
    oiri-ui-f5c4df54-hrwsm   1/1     Running   0          41m
    

    Para cada pod, compruebe el valor Image:, por ejemplo:

    kubectl describe pod oiri-677c96f67f-p6q8j -n oiri | grep Image:
    

    La salida debe ser similar a la siguiente.

    Image:          oiri-12.2.1.4.<TAG>
    
    kubectl describe pod  oiri-ui-f5c4df54-hrwsm -n oiri | grep Image:
    

    La salida debe ser similar a la siguiente.

    Image:          oiri-ui-12.2.1.4.<TAG>
    

    Nota: <tag> que aparece en la salida debe coincidir con <tag> de la última imagen a la que ha actualizado.

    Realice las mismas tareas para el pod DING, por ejemplo:

    kubectl get pods --namespace ding
    NAME                                    READY   STATUS      RESTARTS   AGE
    oiri-ding-8337ee78f9845138-driver       0/1     Completed   0          4d5h
    oiri-ding-baa5ce78fa1f4b2f-driver       0/1     Completed   0          4d2h
    oiri-ding-c9a54178fecedd1a-driver       0/1     Completed   0          3d4h
    spark-history-server-684dc84b66-jbmkg   1/1     Running     0          60m
    
    kubectl describe pod  spark-history-server-684dc84b66-jbmkg -n ding | grep Image:
     Image:         oiri-ding-12.2.1.4.<TAG>
    

Eliminar OIRI

Para eliminar OIRI, debe realizar las siguientes tareas según corresponda.

  1. Suprima el gráfico de Helm.

    Conéctese al contenedor oiri-cli.

    docker exec -it oiri-cli bash
    

    Suprima el gráfico de Helm de OIRI.

    helm delete oiri
    
  2. Suprimir espacios de nombres de Kubernetes.

    Conectado al contenedor oiri-cli, ejecute los siguientes comandos.

    kubectl delete namespace oiri
    
    kubectl delete namespace ding
    
  3. Extraiga los contenedores OIRI y DING.

    Salga del contenedor y, en el host, ejecute lo siguiente.

    docker rm -f oiri-cli
    
    docker rm -f ding-cli
    
  4. Eliminar cualquier otro componente

    Elimine los demás componentes que se hayan creado para admitir la instalación de OIRI, por ejemplo:

    • Base de datos o esquema OIRI
    • Directorio Local
    • Directorios NFS

Proporcione enlaces a recursos adicionales. Esta sección es opcional; suprima si no es necesario.

Agradecimientos

Para obtener documentación sobre los productos, visite Oracle Help Center.

Más recursos de aprendizaje

Explore otras prácticas en docs.oracle.com/learn o acceda a contenido de aprendizaje más gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de formación de Oracle.

Para obtener documentación sobre los productos, visite Oracle Help Center.