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.
- Instalar las imágenes de OIRI
- Crear e iniciar el esquema de OIRI
Requisitos
Los requisitos previos para desplegar OIRI en Kubernetes son:
- La versión de Oracle Database que comienza con la versión 12c 2 (12.2.0.1), local o basada en contenedores, se instala y se ejecuta. También están soportadas las versiones 18.3 y 19.3 de Oracle Database.
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á erroresORA-00972: identifier is too long
al crear algunos objetos de base de datos OIRI.
- Se ha instalado Docker versión 19.03.11+ y Kubernetes Cluster (v1.17+) con
kubectl
. Consulte la documentación de Kubernetes para obtener información sobre la instalación del cluster de Kubernetes. - Oracle Identity Governance 12c (con el parche de paquete 12.2.1.4.210428) con la auditoría de identidad activada. Consulte Activación de la auditoría de identidades en Realización de tareas de autoservicio con Oracle Identity Governance para obtener más información sobre cómo activar la auditoría de identidades.
- Existe una ubicación de montaje de NFS que se puede utilizar para crear un volumen persistente que se utilizará en los nodos de cluster de Kubernetes. Para este tutorial, se asume que es
/nfs
.
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.
- Usuario de cuenta de servicio de OIRI: este usuario activa el servicio para realizar la autenticación entre OIRI y OIG, y se utiliza para publicar roles en OIG.
- Usuario de la aplicación OIRI: este usuario se utiliza para conectarse a la aplicación OIRI.
- Rol OrclOIRIRoleEngineer: este rol se debe asignar al usuario de la aplicación OIRI para permitir el acceso a la aplicación OIRI. Solo un usuario con el rol
OrclOIRIRoleEngineer
puede conectarse a la aplicación OIRI.
-
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. -
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 rolOrclOIRIRoleEngineer
. Consulte Creación de roles en Realización de tareas de autoservicio con Oracle Identity Governance. Solo un usuario con el rolOrclOIRIRoleEngineer
puede conectarse a la aplicación OIRI -
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
yOrganization
comoTop
.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:
oiri
: servicio oirioiri-cli
: interfaz de línea de comandosoiri-ding
: ingestión de datosoiri-ui
: interfaz de usuario
Estas imágenes se pueden descargar de uno de los dos orígenes:
- Oracle Software Delivery Cloud
- Oracle Container Registry
Instalar imagen OIRI desde My Oracle Support
-
Conexión a My Oracle Support
-
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
-
Navegue hasta el archivo creado desde el archivo zip.
cd oiri-12.2.1.4.<TAG>
-
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
-
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.
-
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>
-
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:
-
Cree directorios.
mkdir /nfs/ding
mkdir /nfs/oiri
mkdir -p /local/k8s/
-
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
-
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
-
Cree espacios de nombres para OIRI y DING.
kubectl create namespace oirins namespace/oirins created kubectl create namespace dingns namespace/dingns created
-
Cree
oiri-service-account.yaml
con el siguiente contenido. Sustituyapor 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
-
Ejecute los siguientes comandos
kubectl
como administrador del cluster de Kubernetes. Sustituyapor 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
-
Comparta
ca.crt
yTOKEN
con el administrador de instalación de OIRI copiandoca.crt
en el directorio local de Kubernetes y enumerando laTOKEN
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
-
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.
-
Conéctese al contenedor
oiri-cli
.docker exec -it oiri-cli bash
-
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
-
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. -
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.
-
Conéctese al contenedor
oiri-cli
.docker exec -it oiri-cli bash
-
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"
-
Verifique que se ha creado el archivo
values.yaml
.ls /app/k8s/
La salida debe ser la misma que la siguiente.
values.yaml
-
Salir del contenedor
Generación de un almacén de claves
-
Conéctese al contenedor
oiri-cli
.docker exec -it oiri-cli bash
-
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
-
Salga del contenedor.
-
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
-
Conéctese al contenedor
oiri-cli
.docker exec -it oiri-cli bash
-
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
-
Conéctese al contenedor OIRI.
docker exec -it oiri-cli bash
-
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.
-
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
-
Conéctese al contenedor
oiri-cli
.docker exec -it oiri-cli bash
-
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
-
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
-
Conéctese al contenedor OIRI.
docker exec -it oiri-cli bash
-
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
-
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>
-
Opcionalmente, si ha seleccionado
-ssl
/--sslenabled
comotrue
al ejecutarsetupValuesYaml.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
-
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.
-
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
-
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.
-
Elimine el contenedor
oiri-cli
existente.Del host:
docker rm -f oiri-cli
-
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
-
Elimine el contenedor
ding-cli
existente.Del host:
docker rm -f ding-cli
-
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
-
Conéctese al contenedor
oiri-cli
.docker exec -it oiri-cli bash
-
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
-
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
-
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
-
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.
-
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
-
Suprimir espacios de nombres de Kubernetes.
Conectado al contenedor
oiri-cli
, ejecute los siguientes comandos.kubectl delete namespace oiri kubectl delete namespace ding
-
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
-
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
Enlaces relacionados
Proporcione enlaces a recursos adicionales. Esta sección es opcional; suprima si no es necesario.
- https://docs-uat.us.oracle.com/en/middleware/idm/identity-role-intelligence/amiri/index.html
- Activación de la auditoría de identidades
Agradecimientos
- Authors: Mike Howlett
- Contribuyentes - Anup Gautam, Gaurav Kumar, Rishi Agarwal, Tanmay Garg
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.
Deploy Oracle Identity Role Intelligence on Kubernetes
F50984-01
November 2021
Copyright © 2021, Oracle and/or its affiliates.