UiPath Documentation
automation-suite
2.2510
true
Guide d'installation d'Automation Suite sur OpenShift
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Octroi d'autorisations d'installation avec des rôles de cluster

Accordez des autorisations ClusterRole et ClusterRoleBinding à l'échelle du cluster au compte du service d'installation d'Automation Suite et aux utilisateurs administrateurs de cluster pour les installations OpenShift.

Important :

Les autorisations d'installation ne sont pertinentes que si vous ne pouvez pas fournir de privilèges d'administrateur au programme d'installation d'Automation Suite. Si vous pouvez fournir les privilèges d'administrateur requis au programme d'installation, vous n'avez pas besoin de suivre les instructions de cette section.

Cette page suppose que vous pouvez accorder au compte du service d'installation d'Automation Suite (uipathadmin) des autorisations à l'échelle du cluster (ClusterRole et ClusterRoleBinding). Si votre politique de sécurité interdit l'octroi d'autorisations à l'échelle du cluster, reportez-vous à l'octroi d'autorisations d'installation sans rôles de cluster à la place.

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.

Automation Suite repose sur des autorisations spécifiques lors de l'installation. Ces autorisations sont attribuées au compte de service, qui joue un rôle essentiel dans l'installation des différents composants Automation Suite.

Pour configurer toutes les autorisations requises pour l'installation, effectuez les étapes décrites dans cette section.

Remarque :

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.

Étape 1 : création d'un compte de service​

Pour créer un compte de service, procédez comme suit :

  1. 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>
    
  2. Définissez l'espace de noms et le projet par défaut sur <uipath>:

    oc project <uipath>
    oc project <uipath>
    

    Toutes les commandes oc ultérieures fonctionneront dans l'espace de noms <uipath> .

  3. Créez un compte de service nommé uipathadmin:

    oc create serviceaccount uipathadmin
    oc create serviceaccount uipathadmin
    
  4. Utilisez le rôle de cluster admin existant pour accorder des autorisations d'administrateur au compte de service uipathadmin dans l'espace de noms <uipath> :

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

Étape 2 : création des rôles requis​

Le compte de service uipathadmin nécessite certaines autorisations lors de l’installation d’Automation Suite. Vous fournissez les autorisations nécessaires en créant des rôles.

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.

Interroger l'espace de noms [lecture seule]​

Requis pour vérifier si les espaces de noms, tels que l'espace de noms <istio-system> , sont disponibles ou non.

L'exemple suivant présente la configuration 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"]

Répertorier les nœuds et les CRD [lecture seule]​

L'outil de vérification des prérequis et de vérification de l'intégrité de diagnostic nécessite cette autorisation pour effectuer les validations de nœud, telles que la capacité disponible sur le nœud.

L'exemple suivant présente la configuration 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"]
Remarque :

Si ces autorisations ne sont pas disponibles dans votre cluster, Automation Suite Robots ne peut pas déterminer automatiquement le nombre maximal de tâches simultanées. Pour définir explicitement la limite, configurez concurrency_limit dans la section asrobots de input.json. Pour plus de détails, consultez la section Configuration spécifique aux Automation Suite Robots.

uipath rôles [écriture]​

La majeure partie de l'installation d'Automation Suite est effectuée via ArgoCD ; cependant, l'installation de certains composants est effectuée via le graphique Helm.

L'outil uipathctl exécute une tâche d'installation qui exécute l'installation du graphique Helm. La connexion à kube-api-server et l'installation du graphique Helm dans l'espace de noms <uipath> nécessitent un rôle de créateur de rôles au niveau de l'espace de noms.

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"]
  - 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> rôles [écriture]​

Remarque :

Fournissez ces autorisations uniquement si vous souhaitez que le programme d'installation configure le plug-in WebAssembly. Sinon, ne fournissez pas les autorisations.

Les opérations suivantes sont effectuées dans l'espace de noms <istio-system> :

  1. 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.
  2. Automation Suite installe le plug-in WASM dans l'espace de noms <istio-system> pour configurer les règles de routage basées sur le chemin, en utilisant uipathctl pour exécuter une tâche d'installation basée sur Helm. Cela nécessite de créer une instance de imagepullsecret pour extraire l'image du registre et un créateur de rôle pour l'espace de noms <istio-system>.

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: ["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> rôles [lecture seule]​

Remarque :

Accordez ces autorisations si vous avez déjà configuré Istio et installé le plug-in WASM.

Les opérations suivantes sont effectuées dans l'espace de noms <istio-system> :

  1. 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.
  2. L'autorisation get secrets est requise pour copier le fichier de certificat depuis l'espace de noms <istio-system> vers l'espace de noms <uipath> .

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​

Vous devez lier les rôles 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 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

É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​

Remarque :

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 dans le dossier temp .

Étape 5: utilisation du fichier kubeconfig généré​

Vous devez utiliser le fichier uipathadminkubeconfig pour toutes les commandes uipathctl ultérieures de ce workflow, y compris les vérifications des prérequis, l'installation et les vérifications de l'état. Si vous ne le faites pas, uipathctl revient au fichier kubeconfig par défaut, qui peut s'authentifier avec des privilèges d'administrateur de cluster au lieu du compte de service uipathadmin restreint.

Pour plus de détails sur la façon de spécifier le fichier kubeconfig, reportez-vous à Spécification du fichier kubeconfig.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour