UiPath Documentation
automation-suite
2.2510
true
Guía de instalación de Automation Suite en OpenShift
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Conceder permisos de instalación sin roles de clúster

Concede al instalador de Automation Suite permisos de ámbito de espacio de nombres en OpenShift y compensa los roles de ámbito de clúster que faltan con recursos creados previamente.

Importante:

Esta página solo se aplica cuando tu política de seguridad prohíbe conceder cualquier permiso de ámbito de clúster (ClusterRole o ClusterRoleBinding) a la cuenta de servicio del instalador de Automation Suite (uipathadmin). Si puedes conceder los permisos del clúster, consulta Conceder permisos de instalación con roles de clúster .

Si instalas varias instancias de Automation Suite en el mismo clúster, debes conceder permisos para los demás espacios de nombres en los que instales Automation Suite.

En esta página se describe cómo conceder al instalador de Automation Suite los permisos que necesita sin asignar ningún permiso de ámbito de clúster.

Mantienes la cuenta de servicio uipathadmin estrictamente de ámbito de espacio de nombres: omites los dos recursos ClusterRole de ámbito de clúster y el ClusterRoleBinding utilizado en el flujo estándar, y compensas las lecturas de ámbito de clúster que faltan con un conjunto de pre recursos creados y marcadores uipathctl.

Nota:

Debes ejecutar los comandos a los que se hace referencia en esta sección desde una máquina Linux, Windows o macOS que tenga acceso al servidor de la API de OpenShift Kubernetes.

Los comandos que realizan acciones de administración (crear el certificado Secret) deben ser ejecutados por un administrador del clúster. Los comandos que realizan acciones uipathadmin utilizan el kubeconfig que generas en el paso 4.

Para conceder permisos de instalación sin roles de clúster, realiza los siguientes pasos:

  1. Crear una cuenta de servicio
  2. Crear los roles de espacio de nombres necesarios
  3. Vinculación de los roles
  4. Generar el archivo kubeconfig
  5. Configurar input.json para la operación en modo restringido
  6. Precrear el secreto del certificado TLS
  7. Instalar y configurar la herramienta Service Mesh y GitOps

Paso 1: crear una cuenta de servicio​

Para crear una cuenta de servicio, sigue los siguientes pasos:

  1. Crea el espacio de nombres y el proyecto <uipath> :

    oc get namespace <uipath> || oc new-project <uipath>
    oc get namespace <uipath> || oc new-project <uipath>
    
  2. Establece el espacio de nombres y el proyecto predeterminados en <uipath>:

    oc project <uipath>
    oc project <uipath>
    

    Todos los comandos oc posteriores operarán dentro del espacio de nombres <uipath> .

  3. Crea una cuenta de servicio llamada uipathadmin:

    oc create serviceaccount uipathadmin
    oc create serviceaccount uipathadmin
    
  4. Utiliza el rol de clúster admin existente para conceder permisos de administrador a la cuenta de servicio uipathadmin en el espacio de nombres <uipath> :

    oc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin
    oc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin
    
    Nota:

    Se trata de un RoleBinding de ámbito de espacio de nombres que hace referencia al rol de clúster admin integrado. Otorga permisos de administrador uipathadmin solo dentro del espacio de nombres <uipath>, no en todo el clúster. No se ha creado ClusterRoleBinding.

Paso 2: crear los roles de espacio de nombres necesarios​

La cuenta de servicio uipathadmin requiere ciertos permisos durante la instalación de Automation Suite. En el flujo sin roles de clúster, proporcionas estos permisos solo a través de roles de espacio de nombres .

Para crear cada rol, guarda su configuración como un archivo YAML y ejecuta el siguiente comando, reemplazando el marcador de posición <file_name.yaml> por el nombre real del archivo YAML:

oc apply -f <file_name.yaml>
oc apply -f <file_name.yaml>

Puedes crear el archivo YAML para cada rol copiando la configuración de las siguientes secciones.

Los siguientes roles con ámbito de espacio de nombres son los únicos roles que uipathadmin necesita en este flujo. Las comprobaciones de requisitos previos que de otro modo dependerían de las lecturas del ámbito del clúster se excluyen y validan fuera de banda, como se describe en Ejecutar comprobaciones de requisitos previos sin roles de clúster.

Permisos de instalación en el espacio de nombres <uipath> ​

La mayor parte de la instalación de Automation Suite se ejecuta a través de ArgoCD, pero algunos componentes se instalan directamente a través de diagramas de Helm. La herramienta uipathctl ejecuta un trabajo de instalación que realiza estas instalaciones de Helm en el espacio de nombres <uipath>. Para ello, uipathadmin necesita un rol con ámbito de espacio de nombres que pueda crear y gestionar roles, vinculaciones de roles, secretos y mapas de configuración.

El siguiente ejemplo muestra la configuración uipath-automationsuite-role:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: uipath-automationsuite-role
  namespace: <uipath>
rules:
  - apiGroups: ["rbac.authorization.k8s.io"]
    resources: ["roles", "rolebindings"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
  - apiGroups: [""]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
  - apiGroups: ["security.istio.io", "networking.istio.io"]
    resources: ["*"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: uipath-automationsuite-role
  namespace: <uipath>
rules:
  - apiGroups: ["rbac.authorization.k8s.io"]
    resources: ["roles", "rolebindings"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
  - apiGroups: [""]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]
  - apiGroups: ["security.istio.io", "networking.istio.io"]
    resources: ["*"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]

Permisos de certificado y validación en el espacio de nombres <istio-system> ​

Nota:

El espacio de nombres puede no existir en tu clúster si aún no has instalado Istio. Puedes crear el espacio de nombres y el rol antes de instalar Istio, o puedes crear el rol después de instalar Istio.

Las siguientes operaciones se realizan en el espacio de nombres <istio-system> :

  1. La herramienta de comprobación de requisitos previos de Automation Suite lee los pods y servicios en el espacio de nombres <istio-system> para validar que Istio está instalado y configurado correctamente.
  2. Se requiere el permiso get secrets para copiar el archivo de certificado del espacio de nombres <istio-system> al espacio de nombres <uipath> .

Como uipathadmin no configura Istio ni instala el complemento WebAssembly (WASM) en el flujo sin roles de clúster, utilizas la variante de solo lectura de este rol. Un administrador de clústeres realiza esas operaciones en su lugar (consulta el Paso 7).

El siguiente ejemplo muestra la configuración istio-system-automationsuite-role:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: istio-system-automationsuite-role
  namespace: <istio-system>
rules:
  - apiGroups: [""]
    resources: ["services", "pods"]
    verbs: ["list"]
  - apiGroups: [""]
    resources: ["secrets"]
    resourceNames: ["istio-ingressgateway-certs"]
    verbs: ["get"]
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: istio-system-automationsuite-role
  namespace: <istio-system>
rules:
  - apiGroups: [""]
    resources: ["services", "pods"]
    verbs: ["list"]
  - apiGroups: [""]
    resources: ["secrets"]
    resourceNames: ["istio-ingressgateway-certs"]
    verbs: ["get"]

Paso 3: vincular los roles​

Vincula los roles de espacio de nombres que creaste en el paso anterior a la cuenta de servicio uipathadmin ejecutando los siguientes comandos:

oc project <istio-system>
oc create rolebinding istio-system-automationsuite-rolebinding \
  --role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
oc project <uipath>
oc create rolebinding uipath-automationsuite-rolebinding \
  --role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin
oc project <istio-system>
oc create rolebinding istio-system-automationsuite-rolebinding \
  --role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
oc project <uipath>
oc create rolebinding uipath-automationsuite-rolebinding \
  --role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin

Paso 4: generar el archivo kubeconfig​

Después de asignar todos los permisos a la cuenta de servicio, debes crear un archivo kubeconfig para pasar a la herramienta uipathctl para la instalación.

Generar el archivo kubeconfig en Linux o Mac​

Para generar el archivo kubeconfig en Linux o Mac, ejecuta los siguientes comandos:

# For generating kubeconfig
# Creates the token for uipathadmin service account
token=$(oc -n <uipath> create token uipathadmin --duration=8760h)
# Getting api-server details
server=$(oc config view -o jsonpath="{.clusters[]..server}")
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true
# For generating kubeconfig
# Creates the token for uipathadmin service account
token=$(oc -n <uipath> create token uipathadmin --duration=8760h)
# Getting api-server details
server=$(oc config view -o jsonpath="{.clusters[]..server}")
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true

Si la operación se ha realizado correctamente, deberías ver un archivo kubeconfig llamado uipathadminkubeconfig.

Generar el archivo kubeconfig en Windows​

Nota:

Debes realizar este paso utilizando Windows Powershell.

Para generar el archivo kubeconfig en Windows, ejecuta los siguientes comandos:

# For generating kubeconfig
# Creates the token for uipathadmin service account
$token = oc -n <uipath> create token uipathadmin --duration=8760h
# Getting api-server details
$server = oc config view -o jsonpath="{.clusters[]..server}"
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true
# For generating kubeconfig
# Creates the token for uipathadmin service account
$token = oc -n <uipath> create token uipathadmin --duration=8760h
# Getting api-server details
$server = oc config view -o jsonpath="{.clusters[]..server}"
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true

Si la operación se ha realizado correctamente, deberías ver un archivo kubeconfig llamado uipathadminkubeconfig.

Paso 5: configurar input.json para la operación en modo restringido​

En el flujo sin roles de clúster, debes añadir algunas claves a tu input.json para que uipathctl y los gráficos de servicio de UiPath eviten operaciones que requieren lecturas o recursos en el ámbito del clúster. Las siguientes secciones explican cada tecla.

5.1 Clases de prioridad​

Establecer ignore_priority_class en true:

{
  "ignore_priority_class": true
}
{
  "ignore_priority_class": true
}

Esta configuración hace lo siguiente:

  • Indica a uipathctl que omita su propia búsqueda de priorityclasses.scheduling.k8s.io, que de lo contrario requeriría una lectura en el ámbito del clúster.
  • Se propaga a todos los diagramas de servicio de UiPath, que luego omiten priorityClassName de sus cargas de trabajo.

Como resultado, ningún pod de Automation Suite hace referencia a PriorityClass, por lo que no es necesario que exista PriorityClass en el clúster y no se debe crear ninguno previamente.

5.2 Certificados e entrada​

Añade el certificado y las claves de entrada. Para obtener más información sobre las claves relacionadas con los certificados, consulta Requisitos del certificado.

{
  "server_certificate": {
    "tls_cert_file": "<path-to-tls.crt>",
    "tls_key_file":  "<path-to-tls.key>",
    "ca_cert_file":  "<path-to-ca.crt>"
  },

  "ingress": {
    "namespace": "<istio-system>",
    "gateway_selector": { "istio": "ingressgateway" },
    "ingress_gateway_secret": "istio-ingressgateway-certs"
  },

  "additional_ca_certs": "<path-to-ca.crt>"
}
{
  "server_certificate": {
    "tls_cert_file": "<path-to-tls.crt>",
    "tls_key_file":  "<path-to-tls.key>",
    "ca_cert_file":  "<path-to-ca.crt>"
  },

  "ingress": {
    "namespace": "<istio-system>",
    "gateway_selector": { "istio": "ingressgateway" },
    "ingress_gateway_secret": "istio-ingressgateway-certs"
  },

  "additional_ca_certs": "<path-to-ca.crt>"
}

La clave additional_ca_certs solo es necesaria cuando tu certificado TLS está firmado por una autoridad de certificación privada o autofirmada. Propaga el paquete de CA al almacén de confianza de todos los pods de Automation Suite.

5.3 Límite de concurrencia de AS Robots​

Importante:

Este paso solo es necesario si habilitas AS Robots (asrobots).

Si habilitas AS Robots, establece un concurrency_limit explícito:

{
  "asrobots": {
    "enabled": true,
    "concurrency_limit": 2
  }
}
{
  "asrobots": {
    "enabled": true,
    "concurrency_limit": 2
  }
}

Cuando concurrency_limit no está establecido, el gráfico AS Robots implementa un ClusterRole y ClusterRoleBinding para leer automáticamente la capacidad del nodo y calcular la concurrencia de los robots. Una instancia de ArgoCD con espacio de nombres no puede gestionar estos recursos del ámbito del clúster, por lo que la aplicación asrobots no se sincroniza:

ComparisonError: cluster level ClusterRoleBinding "<uipath>-asrobots-robot-resources-crb" can not be managed when in namespaced mode
ComparisonError: cluster level ClusterRoleBinding "<uipath>-asrobots-robot-resources-crb" can not be managed when in namespaced mode

Con un concurrency_limit explícito, el gráfico no implementa recursos del ámbito del clúster.

5.4 Trae tus propios componentes​

Como uipathadmin no tiene permisos de ámbito de clúster en este flujo, el instalador no puede implementar los componentes de la plataforma que crean recursos de ámbito de clúster, como Istio, OPA Gatekeeper, cert-manager y políticas de red. Debes aprovisionar estos componentes tú mismo y enumerarlos en exclude_components para que el instalador los omita.

Enumere los componentes que usted mismo proporciona en exclude_components y establezca telemetry_optout en true porque la telemetría no se puede habilitar en este flujo. Para obtener la lista de componentes y los detalles, consulta Sin roles de clúster.

Paso 6: crear previamente el secreto del certificado TLS​

Como uipathadmin solo tiene ámbito de espacio de nombres, un administrador del clúster debe crear istio-ingressgateway-certs Secret en el espacio de nombres <istio-system> antes de la instalación. Esto no otorga a uipathadmin ningún privilegio adicional; sustituye el trabajo que uipathadmin habría realizado si tuviera los permisos de ámbito del clúster. (No es necesario crear PriorityClass ; esa dependencia se elimina mediante ignore_priority_class en el paso 5.1).

El istio-ingressgateway-certs Secret se crea como parte de la configuración de la malla de servicios. Para crearlo, consulta Configurar Istio e instalar el complemento WASM para el enrutamiento.

Como uipathadmin solo contiene el istio-system-automationsuite-role de solo lectura, puede leer este Secret pero no puede crearlo; un administrador del clúster debe crearlo.

Asegúrate de que Secret contenga las tres claves: tls.crt, tls.key y ca.crt, porque la clave ca.crt es necesaria cuando tu certificado TLS está firmado por una autoridad de certificación privada o autofirmada.

Paso 7: instalar y configurar la malla de servicios y la herramienta GitOps​

Sigue los procedimientos estándar para la malla de servicios y la herramienta GitOps. Estos procedimientos crean roles y enlaces adicionales con ámbito de espacio de nombres para uipathadmin en el espacio de nombres <argocd>; ninguno de ellos requiere permisos de ámbito de clúster en uipathadmin.

  • Instalar y configurar la malla de servicio : instala OpenShift Service Mesh. Como uipathadmin se ejecuta con el rol de solo lectura <istio-system>, no puede configurar Istio ni instalar el propio complemento WASM; un administrador del clúster debe configurar istio-configure antes de la instalación de Automation Suite.
  • Instalar y configurar la herramienta GitOps : aprovisiona la instancia de ArgoCD dedicada y completa todos los pasos.

Para istio-configure los pasos de configuración, consulta Configurar Istio e instalar el complemento WASM para el enrutamiento.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado