- Información general
- Requisitos
- Preinstalación
- Preparar la instalación
- Descarga de los paquetes de instalación
- Configurar el registro compatible con OCI
- Conceder permisos de instalación con roles de clúster
- Conceder permisos de instalación sin roles de clúster
- Instalar y configurar la malla de servicio
- Instalar y configurar la herramienta GitOps
- Instalar el operador de secretos externos
- Implementar Redis a través de OperatorHub
- Aplicar configuraciones varias
- Ejecutar uipathctl
- Instalación
- Después de la instalación
- Migración y actualización
- Supervisión y alertas
- Administración de clústeres
- Configuración específica del producto
- Configuración avanzada de Orchestrator
- Configurar parámetros de Orchestrator
- Configurar AppSettings
- Configurar el tamaño máximo de la solicitud
- Anular la configuración de almacenamiento a nivel de clúster
- Configurar NLog
- Guardar los registros del robot en Elasticsearch
- Configurar almacenes de credenciales
- Configurar clave de cifrado por tenant
- Limpiar la base de datos de Orchestrator
- Omitir la instalación de la biblioteca de host
- Ai Trust Layer
- Solución de problemas
- Cómo desinstalar Automation Suite
- Cómo resolver el fallo de comprobación de conectividad prerrequisito en OpenShift 4.16–4.18
- Cómo implementar Insights en un clúster habilitado para FIPS
- Cómo deshabilitar la habilitación automática de CDI en el operador de GPU de Nvidia
- Cómo codificar la URL de una contraseña de cadena de conexión de PostgreSQL
- 500 errores y limitación de tasa en solicitudes S3 en ODF
- Solución de problemas de secretos externos
- Configurar las tolerancias del controlador CSI para ODF 4.20
- Solución de problemas de Temporal como servicio
- Los pods de AI Center y Document Understanding no se inician con la verificación del certificado TLS habilitada
- Studio Desktop no puede cargar conectores y actividades de Integration Service
- Errores de validación del certificado TLS
- Mitigación manual de Política de red de ArgoCD (GHSA-47m3-95c7-g2g8)
- Configurar solicitudes de recursos y límites para cargas de trabajo creadas por uipathctl
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.
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.
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:
- Crear una cuenta de servicio
- Crear los roles de espacio de nombres necesarios
- Vinculación de los roles
- Generar el archivo kubeconfig
- Configurar
input.jsonpara la operación en modo restringido - Precrear el secreto del certificado TLS
- 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:
-
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> -
Establece el espacio de nombres y el proyecto predeterminados en
<uipath>:oc project <uipath>oc project <uipath>Todos los comandos
ocposteriores operarán dentro del espacio de nombres<uipath>. -
Crea una cuenta de servicio llamada
uipathadmin:oc create serviceaccount uipathadminoc create serviceaccount uipathadmin -
Utiliza el rol de clúster
adminexistente para conceder permisos de administrador a la cuenta de serviciouipathadminen el espacio de nombres<uipath>:oc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadminoc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadminNota:Se trata de un
RoleBindingde ámbito de espacio de nombres que hace referencia al rol de clústeradminintegrado. Otorga permisos de administradoruipathadminsolo dentro del espacio de nombres<uipath>, no en todo el clúster. No se ha creadoClusterRoleBinding.
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>
Las siguientes operaciones se realizan en el espacio de nombres <istio-system> :
- 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. - Se requiere el permiso
get secretspara 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
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
uipathctlque omita su propia búsqueda depriorityclasses.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
priorityClassNamede 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
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
uipathadminse 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 configuraristio-configureantes 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.
- Paso 1: crear una cuenta de servicio
- Paso 2: crear los roles de espacio de nombres necesarios
- Permisos de instalación en el espacio de nombres
<uipath> - Permisos de certificado y validación en el espacio de nombres
<istio-system> - Paso 3: vincular los roles
- Paso 4: generar el archivo kubeconfig
- Generar el archivo kubeconfig en Linux o Mac
- Generar el archivo kubeconfig en Windows
- Paso 5: configurar
input.jsonpara la operación en modo restringido - 5.1 Clases de prioridad
- 5.2 Certificados e entrada
- 5.3 Límite de concurrencia de AS Robots
- 5.4 Trae tus propios componentes
- Paso 6: crear previamente el secreto del certificado TLS
- Paso 7: instalar y configurar la malla de servicios y la herramienta GitOps