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 con roles de clúster

Otorga permisos ClusterRole y ClusterRoleBinding de ámbito de clúster a la cuenta de servicio del instalador de Automation Suite y a los usuarios administradores del clúster para las instalaciones de OpenShift.

Importante:

Los permisos de instalación son relevantes solo si no puedes proporcionar privilegios de administrador al instalador de Automation Suite. Si puedes proporcionar los privilegios de administrador necesarios al instalador, no es necesario que sigas las instrucciones de esta sección.

Esta página supone que puedes conceder a la cuenta de servicio del instalador de Automation Suite (uipathadmin) permisos de ámbito de clúster (ClusterRole y ClusterRoleBinding). Si tu política de seguridad prohíbe conceder permisos de ámbito de clúster, consulta Conceder permisos de instalación sin 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.

Automation Suite depende de permisos específicos durante la instalación. Estos permisos se asignan a la cuenta de servicio, que desempeña un papel fundamental en la instalación de los distintos componentes de Automation Suite.

Para configurar todos los permisos necesarios para la instalación, realiza los pasos de esta sección.

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.

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
    

Paso 2: crear los roles necesarios​

La cuenta de servicio uipathadmin requiere ciertos permisos durante la instalación de Automation Suite. Los permisos necesarios se proporcionan creando roles.

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.

Consultar el espacio de nombres [solo lectura]​

Necesario para comprobar si los espacios de nombres, como el espacio de nombres <istio-system> , están disponibles o no.

El siguiente ejemplo muestra la configuración namespace-reader-clusterrole:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: namespace-reader-clusterrole
rules:
  - apiGroups: [""]
    resources: ["namespaces"]
    verbs: ["get"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: namespace-reader-clusterrole
rules:
  - apiGroups: [""]
    resources: ["namespaces"]
    verbs: ["get"]

Enumerar nodos y CRD [solo lectura]​

La herramienta de comprobación de requisitos previos y comprobación de estado de diagnóstico requiere este permiso para realizar las validaciones de nodo, como la capacidad disponible en el nodo.

El siguiente ejemplo muestra la configuración list-nodes-and-crd-clusterrole:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: list-nodes-and-crd-clusterrole
rules:
  - apiGroups: [""]
    resources: ["nodes"]
    verbs: ["list", "get"]
  - apiGroups: ["apiextensions.k8s.io"]
    resources: ["customresourcedefinitions"]
    verbs: ["list"]
  - apiGroups: ["metrics.k8s.io"]
    resources: ["nodes"]
    verbs: ["list", "get"]
  - apiGroups: ["scheduling.k8s.io"]
    resources: ["priorityclasses"]
    verbs: ["get"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: list-nodes-and-crd-clusterrole
rules:
  - apiGroups: [""]
    resources: ["nodes"]
    verbs: ["list", "get"]
  - apiGroups: ["apiextensions.k8s.io"]
    resources: ["customresourcedefinitions"]
    verbs: ["list"]
  - apiGroups: ["metrics.k8s.io"]
    resources: ["nodes"]
    verbs: ["list", "get"]
  - apiGroups: ["scheduling.k8s.io"]
    resources: ["priorityclasses"]
    verbs: ["get"]
Nota:

Si estos permisos no están disponibles en su clúster, Automation Suite Robots no puede determinar automáticamente el número máximo de trabajos simultáneos. Para definir el límite explícitamente, configura concurrency_limit en la sección asrobots de input.json. Para obtener más información, consulta Configuración específica de Automation Suite Robots.

uipath roles [escribir]​

La mayor parte de la instalación de Automation Suite se realiza a través de ArgoCD; sin embargo, la instalación de algunos componentes se realiza a través del diagrama de Helm.

La herramienta uipathctl ejecuta un trabajo de instalación que ejecuta la instalación del diagrama de Helm. Conectarse a kube-api-server e instalar el diagrama de Helm en el espacio de nombres <uipath> requiere un rol de creador de roles a nivel de espacio de nombres.

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"]
  - apiGroups: [""]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create"]
  - 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"]
  - apiGroups: [""]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create"]
  - apiGroups: ["security.istio.io", "networking.istio.io"]
    resources: ["*"]
    verbs: ["get", "watch", "list", "patch", "update", "create", "delete"]

<istio-system> roles [escribir]​

Nota:

Proporciona estos permisos solo si quieres que el instalador configure el complemento WebAssembly (WASM). De lo contrario, no proporcione los permisos.

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. Automation Suite instala el complemento WASM en el espacio de nombres <istio-system> para configurar las reglas de enrutamiento basadas en la ruta, utilizando uipathctl para ejecutar un trabajo de instalación basado en Helm. Esto requiere crear un imagepullsecret para extraer la imagen del registro y un creador de roles para el espacio de nombres <istio-system>.

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: ["rbac.authorization.k8s.io"]
    resources: ["roles", "rolebindings"]
    verbs: ["*"]
  - apiGroups: ["*"]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create"]
  - apiGroups: ["networking.istio.io", "extensions.istio.io"]
    resources: ["*"]
    verbs: ["*"]
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: ["rbac.authorization.k8s.io"]
    resources: ["roles", "rolebindings"]
    verbs: ["*"]
  - apiGroups: ["*"]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create"]
  - apiGroups: ["networking.istio.io", "extensions.istio.io"]
    resources: ["*"]
    verbs: ["*"]

<istio-system> roles [solo lectura]​

Nota:

Proporciona estos permisos si ya has configurado Istio e instalado el complemento WASM.

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

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​

Debes vincular los roles 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 create rolebinding namespace-reader-rolebinding \
  --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
oc project <uipath>
oc create clusterrolebinding list-nodes-and-crd-rolebinding \
  --clusterrole=list-nodes-and-crd-clusterrole --serviceaccount=<uipath>:uipathadmin
oc create rolebinding uipath-automationsuite-rolebinding \
  --role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin

# This step is needed only if you want the installer to configure the WASM Plugin. Otherwise skip it.
oc -n <istio-system> create rolebinding uipadmin-istio-system \
  --clusterrole=admin --serviceaccount=<uipath>:uipathadmin
oc project <istio-system>
oc create rolebinding istio-system-automationsuite-rolebinding \
  --role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
oc create rolebinding namespace-reader-rolebinding \
  --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
oc project <uipath>
oc create clusterrolebinding list-nodes-and-crd-rolebinding \
  --clusterrole=list-nodes-and-crd-clusterrole --serviceaccount=<uipath>:uipathadmin
oc create rolebinding uipath-automationsuite-rolebinding \
  --role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin

# This step is needed only if you want the installer to configure the WASM Plugin. Otherwise skip it.
oc -n <istio-system> create rolebinding uipadmin-istio-system \
  --clusterrole=admin --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 en la carpeta temp .

Paso 5: utilizar el archivo kubeconfig generado​

Debes utilizar el archivo uipathadminkubeconfig para todos los comandos uipathctl posteriores en este flujo de trabajo, incluidas las comprobaciones de requisitos previos, la instalación y las comprobaciones de estado. Si no lo haces, uipathctl recurre al archivo kubeconfig predeterminado, que puede autenticarse con privilegios de administrador del clúster en lugar de la cuenta de servicio restringida uipathadmin.

Para obtener más información sobre cómo especificar el archivo kubeconfig, consulta Especificar el archivo kubeconfig.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado