- Vue d'ensemble (Overview)
- Prérequis
- Pré-installation
- Préparation de l'installation
- Téléchargement des packages d'installation
- Configuration du registre conforme à OCI
- Octroi d'autorisations d'installation avec des rôles de cluster
- Octroi d'autorisations d'installation sans rôles de cluster
- Installation et configuration du service Mesh
- Installer et configurer l'outil GitOps
- Installation de l'opérateur de clés secrètes externes
- Déploiement de Redis via OperatorHub
- Application de diverses configurations
- Exécution de uipathctl
- Installation
- Post-installation
- Migration et mise à niveau
- Surveillance et alerte
- Administration du cluster
- Configuration spécifique au produit
- Configuration avancée d'Orchestrator
- Configuration des paramètres d'Orchestrator
- Configuration des paramètres d'application
- Configuration de la taille maximale de la requête
- Remplacement de la configuration du stockage au niveau du cluster
- Configuration de NLog
- Enregistrement des journaux du robot dans Elasticsearch
- Configuration des magasins d'informations d'identification
- Configuration de la clé de chiffrement par locataire
- Nettoyer la base de données Orchestrator
- Ignorer l’installation de la bibliothèque hôte
- Rotation des informations d’identification de stockage d’objets blob
- Désactivation de l'utilisation d'URL pré-signées lors du téléchargement de données vers le stockage Amazon S3
- Configuration de la sécurité de l'application de processus
- Configurer une authentification Kerberos avec l’authentification MSSQL de base pour Process Mining
- AI Trust Layer
- Résolution des problèmes
- Comment désinstaller Automation Suite
- Comment résoudre l'échec de la vérification de la connectivité préalable sur OpenShift 4.16–4.18
- Comment déployer Insights dans un cluster compatible FIPS
- Comment désactiver l’activation automatique CDI dans l’opérateur GPU Nvidia
- Comment encoder en URL un mot de passe de chaîne de connexion SQL
- 500 erreurs et limitation de débit sur les requêtes S3 dans ODF
- Résolution des problèmes de clés secrètes externes
- Configuration des tolérances des pilotes CSI pour ODF 4.20
- Résolution des problèmes de Temporel en tant que service
- Les pods AI Center et Document Understanding ne démarrent pas avec la vérification du certificat TLS activée
- Studio Desktop ne peut pas charger les connecteurs et activités Integration Service
- Erreurs de validation du certificat TLS
- Atténuation manuelle de la politique réseau ArgoCD
- Configurer les requêtes et les limites de ressources pour les charges de travail créées par uipathctl
Octroi d'autorisations d'installation sans rôles de cluster
Accordez l'autorisation du programme d'installation d'Automation Suite à l'échelle de l'espace de noms sur OpenShift et disponible l'absence de rôles au niveau du cluster avec des ressources pré-créées.
Cette page s'applique uniquement lorsque votre stratégie de sécurité interdit d'accorder des autorisations à l'échelle du cluster (ClusterRole ou ClusterRoleBinding) au compte de service d'installation d'Automation Suite (uipathadmin). Si vous pouvez accorder les autorisations à l'échelle du cluster, reportez-vous à la section Octroi d'autorisations d'installation avec des rôles de cluster .
Si vous installez plusieurs instances d'Automation Suite sur le même cluster, vous devez accorder des autorisations pour les autres espaces de noms dans lesquels vous installez Automation Suite.
Cette page explique comment accorder au programme d'installation d'Automation Suite les autorisations dont il a besoin sans attribuer d'autorisations à l'échelle du cluster.
Vous conservez le compte de service uipathadmin strictement à l'échelle de l'espace de noms: vous ignorez les deux ressources ClusterRole au niveau du cluster et le flux standard ClusterRoleBinding, et vous compensationz les lectures manquantes au niveau du cluster avec un ensemble de prérequis - ressources créées et indicateurs uipathctl.
Vous devez exécuter les commandes référencées dans cette section à partir d'une machine Linux, Windows ou macOS qui a accès au serveur d'API OpenShift Kubernetes.
Les commandes qui effectuent des actions d'administration (création du certificat Secret) doivent être exécutées par un administrateur de cluster. Les commandes qui effectuent des actions uipathadmin utilisent les actions kubeconfig que vous générez à l'étape 4.
Pour accorder des autorisations d’installation sans rôles de cluster, effectuez les étapes suivantes:
- Création d'un compte de service
- Créer les rôles d'étendue de l'espace de noms requis
- Liaison des rôles
- Générer le fichier kubeconfig
- Configuration de
input.jsonpour un fonctionnement en mode restreint - Pré-créer la clé secrète du certificat TLS
- Installer et configurer l'outil Service Mesh et GitOps
Étape 1 : création d'un compte de service
Pour créer un compte de service, procédez comme suit :
-
Créez l'espace de noms et le projet
<uipath>:oc get namespace <uipath> || oc new-project <uipath>oc get namespace <uipath> || oc new-project <uipath> -
Définissez l'espace de noms et le projet par défaut sur
<uipath>:oc project <uipath>oc project <uipath>Toutes les commandes
ocultérieures fonctionneront dans l'espace de noms<uipath>. -
Créez un compte de service nommé
uipathadmin:oc create serviceaccount uipathadminoc create serviceaccount uipathadmin -
Utilisez le rôle de cluster
adminexistant pour accorder des autorisations d'administrateur au compte de serviceuipathadmindans l'espace de noms<uipath>:oc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadminoc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadminRemarque :Il s'agit d'une
RoleBindingétendue de l'espace de noms qui fait référence au rôle de clusteradminintégré. Il accorde des autorisations d'administrateuruipathadminuniquement dans l'espace de noms<uipath>, et non à l'échelle du cluster. AucunClusterRoleBindingn’est créé.
Étape 2: Créer les rôles d'étendue de l'espace de noms requis
Le compte de service uipathadmin nécessite certaines autorisations lors de l’installation d’Automation Suite. Dans le flux de rôles sans cluster, vous fournissez ces autorisations via des rôles à l'échelle de l'espace de noms uniquement.
Pour créer chaque rôle, enregistrez sa configuration sous forme de fichier YAML et exécutez la commande suivante, en remplaçant l'espace réservé <file_name.yaml> par le nom réel du fichier YAML:
oc apply -f <file_name.yaml>
oc apply -f <file_name.yaml>
Vous pouvez créer le fichier YAML pour chaque rôle en copiant la configuration à partir des sections suivantes.
Les rôles suivants au niveau de l'espace de noms sont les seuls rôles dont uipathadmin a besoin dans ce flux. Les vérifications des prérequis qui reposeraient autrement sur des lectures au niveau du cluster sont exclues et validées hors du groupe, comme décrit dans Exécution de vérifications des prérequis sans rôles de cluster.
Autorisations d'installation dans le <uipath> espace de noms
La plupart des installations d'Automation Suite s'exécutent via ArgoCD, mais certains composants sont installés directement via les graphiques Helm. L'outil uipathctl exécute une tâche d'installation qui effectue ces installations Helm dans l'espace de noms <uipath>. Pour ce faire, uipathadmin a besoin d'un rôle à l'échelle de l'espace de noms qui peut créer et gérer des rôles, des liaisons de rôle, des secrets et des cartes de configuration.
L'exemple suivant présente la configuration 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"]
Autorisations de certificat et de validation dans le <istio-system> espace de noms
Les opérations suivantes sont effectuées dans l'espace de noms <istio-system> :
- L'outil de vérification des prérequis Automation Suite lit les pods et les services dans l'espace de noms
<istio-system>pour vérifier qu'Istio est installé et configuré correctement. - L'autorisation
get secretsest requise pour copier le fichier de certificat depuis l'espace de noms<istio-system>vers l'espace de noms<uipath>.
Étant donné que uipathadmin ne configure pas Istio et n'installe pas le plug-in WebAssembly dans le flux de rôles sans cluster, vous utilisez la variante en lecture seule de ce rôle. Un administrateur de cluster effectue ces opérations à la place (se référer à l'étape 7).
L'exemple suivant présente la configuration 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"]
Étape 3 : Liaison des rôles
Liez les rôles d'étendue de l'espace de noms que vous avez créés à l'étape précédente au compte de service uipathadmin en exécutant les commandes suivantes:
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
Étape 4 : génération du fichier kubeconfig
Après avoir attribué toutes les autorisations au compte de service, vous devez créer un fichier kubeconfig à transmettre à l'outil uipathctl pour l'installation.
Génération du fichier kubeconfig sur Linux ou Mac
Pour générer le fichier kubeconfig sur Linux ou Mac, exécutez les commandes suivantes :
# 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 l'opération a réussi, vous devriez voir un fichier kubeconfig nommé uipathadminkubeconfig.
Génération du fichier kubeconfig sur Windows
Vous devez effectuer cette étape à l'aide de Windows Powershell.
Pour générer le fichier kubeconfig sur Windows, exécutez les commandes suivantes :
# 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 l'opération a réussi, vous devriez voir un fichier kubeconfig nommé uipathadminkubeconfig.
Étape 5: configuration de input.json pour le fonctionnement en mode restreint
Dans le flux sans rôle de cluster, vous devez ajouter quelques clés à votre input.json afin que uipathctl et les graphiques de service UiPath évitent les opérations qui nécessitent des lectures ou des ressources au niveau du cluster. Les sections suivantes expliquent chaque clé.
5.1 Classes de priorité
Définissez ignore_priority_class sur true:
{
"ignore_priority_class": true
}
{
"ignore_priority_class": true
}
Ce paramètre effectue les opérations suivantes:
- Il indique à
uipathctld’ignorer sa propre recherchepriorityclasses.scheduling.k8s.io, ce qui nécessiterait autrement une lecture au niveau du cluster. - Il le propage à tous les graphiques de service UiPath, qui omettent ensuite
priorityClassNamede leurs charges de travail.
Par conséquent, aucun pod Automation Suite ne référence une PriorityClass, donc aucun PriorityClass ne doit exister sur le cluster et aucun ne doit être pré-créé.
5.2 Certificats et entrées
Ajoutez les clés de certificat et d'entrée. Pour de plus amples informations sur les clés liées aux certificats, consultez la section Exigences relatives aux certificats.
{
"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 clé additional_ca_certs est requise uniquement lorsque votre certificat TLS est signé par une autorité de certification privée ou auto-signée. Il propage le bundle d'autorité de certification au magasin approuvé de tous les pods Automation Suite.
5.3 Limite de simultanéité des Robots AS
Cette étape est requise uniquement si vous activez AS Robots (asrobots).
Si vous activez AS Robots, définissez une concurrency_limit explicite:
{
"asrobots": {
"enabled": true,
"concurrency_limit": 2
}
}
{
"asrobots": {
"enabled": true,
"concurrency_limit": 2
}
}
Lorsque concurrency_limit n'est pas défini, le graphique AS Robots déploie une ClusterRole et une ClusterRoleBinding pour lire automatiquement la capacité des nœuds et calculer la simultanéité des robots. Une instance ArgoCD disposant d'un espace de noms ne peut pas gérer ces ressources à l'échelle du cluster, de sorte que l'application asrobots ne parvient pas à synchroniser:
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
Avec une concurrency_limit explicite, le graphique ne déploie aucune ressource à l'échelle du cluster.
5.4 Apportez vos propres composants
Étant donné que uipathadmin ne dispose pas d'autorisations à l'échelle du cluster dans ce flux, le programme d'installation ne peut pas déployer les composants de plateforme qui créent des ressources à l'échelle du cluster (Istio, OPA Gatekeeper, cert-manager et les stratégies réseau). Vous devez enregistrer ces composants vous-même et les répertorier dans exclude_components afin que le programme d'installation les ignore.
Répertoriez les composants que vous vous fournissez dans exclude_components et définissez telemetry_optout sur true, car la télémétrie ne peut pas être activée dans ce flux. Pour obtenir la liste et les détails des composants, consultez la section Sans rôles de cluster.
Étape 6: pré-créer la clé secrète du certificat TLS
Étant donné que uipathadmin est uniquement spécifique à l'espace de noms, un administrateur de cluster doit créer le istio-ingressgateway-certs Secret dans l'espace de noms <istio-system> avant l'installation. Cela n’accorde à uipathadmin aucun privilège supplémentaire; elle remplace le travail que uipathadmin aurait effectué s'il disposait des autorisations au niveau du cluster. (Aucun PriorityClass ne doit être créé - cette dépendance est supprimée par ignore_priority_class à l’ étape 5.1.)
Le istio-ingressgateway-certs Secret est créé dans le cadre de la configuration du service Mesh. Pour le créer, reportez-vous à Configuration d'Istio et installation du plug-in WASM pour le routage.
Étant donné que uipathadmin contient uniquement le fichier istio-system-automationsuite-role en lecture seule, il peut lire ce fichier Secret mais ne peut pas le créer; un administrateur de cluster doit la créer.
Assurez-vous que Secret contient les trois clés - tls.crt, tls.key et ca.crt - car la clé ca.crt est requise lorsque votre certificat TLS est signé par une autorité de certification privée ou auto-signée.
Étape 7: installation et configuration du service Mesh et de l’outil GitOps
Suivez les procédures standard pour l’outil Service Mesh et GitOps. Ces procédures créent des rôles et des liaisons supplémentaires à l’échelle de l’espace de noms pour uipathadmin dans l’espace de noms <argocd>; aucun d'eux ne nécessite des autorisations à l'échelle du cluster sur uipathadmin.
- Installation et configuration du service Mesh - installez OpenShift Service Mesh. Étant donné que
uipathadmins'exécute avec le rôle<istio-system>en lecture seule, il ne peut pas configurer Istio ou installer le plug-in WASM lui-même; un administrateur de cluster doit configureristio-configureavant l'installation d'Automation Suite. - Installation et configuration de l'outil GitOps - enregistrez l'instance ArgoCD dédiée et effectuez toutes les étapes.
Pour les istio-configure étapes de configuration, reportez-vous à Configuration d'Istio et installation du plug-in WASM pour le routage.
- Étape 1 : création d'un compte de service
- Étape 2: Créer les rôles d'étendue de l'espace de noms requis
- Autorisations d'installation dans le
<uipath>espace de noms - Autorisations de certificat et de validation dans le
<istio-system>espace de noms - Étape 3 : Liaison des rôles
- Étape 4 : génération du fichier kubeconfig
- Génération du fichier kubeconfig sur Linux ou Mac
- Génération du fichier kubeconfig sur Windows
- Étape 5: configuration de
input.jsonpour le fonctionnement en mode restreint - 5.1 Classes de priorité
- 5.2 Certificats et entrées
- 5.3 Limite de simultanéité des Robots AS
- 5.4 Apportez vos propres composants
- Étape 6: pré-créer la clé secrète du certificat TLS
- Étape 7: installation et configuration du service Mesh et de l’outil GitOps