UiPath Documentation
automation-suite
2.2510
true
Guide d'installation d'Automation Suite sur EKS/AKS
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

Accordez les autorisations nécessaires à l'installation d'Automation Suite sur EKS/AKS.

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.

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.

É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 <uipath> :
    kubectl create namespace <uipath>
    kubectl create namespace <uipath>
    
  2. Créez un compte de service nommé uipathadmin:
     kubectl create serviceaccount uipathadmin -n <uipath>
     kubectl create serviceaccount uipathadmin -n <uipath>
    
  3. 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> :
    kubectl create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin -n <uipath>
    kubectl create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin -n <uipath>
    

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

Le compte de service uipathadmin requiert 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 en tant que 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 :

kubectl apply -f <file_name.yaml>
kubectl 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 montre la configuration de namespace-reader-clusterrole 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]​

La vérification des prérequis et l’outil de vérification de l’état de diagnostic nécessitent cette autorisation pour effectuer des validations de nœud, comme la capacité disponible sur le nœud.

L'exemple suivant montre la configuration de list-nodes-and-crd-clusterrole 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.

Obtenir des classes de stockage [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.

L'exemple suivant montre la configuration de storage-class-reader ClusterRole:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: storage-class-reader
rules:
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: storage-class-reader
rules:
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get"]

uipath rôles [écriture]​

La majeure partie de l'installation d'Automation Suite est effectuée via ArgoCD ; cependant, certains composants sont installés via des graphiques Helm.

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

L’exemple suivant vous présente la configuration du rôle 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: ["*"]
  - apiGroups: ["*"]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create"]
  - apiGroups: ["security.istio.io", "networking.istio.io"]
    resources: ["*"]
    verbs: ["*"]
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: ["*"]
  - apiGroups: ["*"]
    resources: ["secrets", "configmaps"]
    verbs: ["get", "watch", "list", "patch", "update", "create"]
  - apiGroups: ["security.istio.io", "networking.istio.io"]
    resources: ["*"]
    verbs: ["*"]

<istio-system> rôles [écriture]​

Remarque :

Fournissez ces autorisations uniquement si vous souhaitez que le programme d'installation configure le plug-in WASM. 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 pour vérifier qu'Istio est installé et configuré correctement.
  2. Automation Suite installe le plug-in WASM pour configurer les règles de routage basées sur les chemins. Cela nécessite la création d’une clé secrète d’extraction d’image et d’autorisations de créateur de rôles au niveau de l’espace de noms.

L’exemple suivant vous présente la configuration du rôle 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 :

Fournissez ces autorisations si Istio et le plug-in WASM ont déjà été configurés.

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

  1. Lisez les pods et les services pour valider l'installation d'Istio.
  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 vous présente la configuration du rôle 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 :

kubectl -n <istio-system> create rolebinding istio-system-automationsuite-rolebinding \
  --role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
  
kubectl -n <istio-system> create rolebinding namespace-reader-rolebinding \
  --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
  
kubectl -n <uipath> create clusterrolebinding list-nodes-and-crd-rolebinding \
  --clusterrole=list-nodes-and-crd-clusterrole --serviceaccount=<uipath>:uipathadmin
  
kubectl -n <uipath> create rolebinding uipath-automationsuite-rolebinding \
  --role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin
  
kubectl -n <uipath> create clusterrolebinding storage-class-reader-binding \
  --clusterrole=storage-class-reader --serviceaccount=<uipath>:uipathadmin

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

# This step is needed only if you want installer to configure the WASM Plugin. Otherwise skip it.
kubectl -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 :

# Create a token
token="$(kubectl -n <uipath> create token uipathadmin --duration=8760h)"
# copy current kubeconfig to a temp file
mkdir temp
cp ~/.kube/config temp/kubeconfig.tmp
# Find the user name and unset it in the temp file
kube_user_name="$(kubectl config view -o jsonpath="{.users[0].name}")"
kubectl -n <uipath> config unset users."${kube_user_name}" --kubeconfig="temp/kubeconfig.tmp"
# Update the credentials in the temp file
kubectl -n <uipath> --kubeconfig="temp/kubeconfig.tmp" config set-credentials uipathadmin --token="$token"
# Set the context and the namespace
kubectl --kubeconfig="temp/kubeconfig.tmp" config set-context --current --namespace=<uipath> --user=uipathadmin
mv temp/kubeconfig.tmp temp/uipathadminkubeconfig
# Create a token
token="$(kubectl -n <uipath> create token uipathadmin --duration=8760h)"
# copy current kubeconfig to a temp file
mkdir temp
cp ~/.kube/config temp/kubeconfig.tmp
# Find the user name and unset it in the temp file
kube_user_name="$(kubectl config view -o jsonpath="{.users[0].name}")"
kubectl -n <uipath> config unset users."${kube_user_name}" --kubeconfig="temp/kubeconfig.tmp"
# Update the credentials in the temp file
kubectl -n <uipath> --kubeconfig="temp/kubeconfig.tmp" config set-credentials uipathadmin --token="$token"
# Set the context and the namespace
kubectl --kubeconfig="temp/kubeconfig.tmp" config set-context --current --namespace=<uipath> --user=uipathadmin
mv temp/kubeconfig.tmp temp/uipathadminkubeconfig

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 :

# Create a token
$token = kubectl -n <uipath> create token uipathadmin --duration=8760h
# copy current kubeconfig to a temp file
mkdir temp
cp ~/.kube/config temp/kubeconfig.tmp
# Find the user name and unset it in the temp file
$kube_user_name = kubectl config view -o jsonpath="{.users[0].name}"
kubectl -n <uipath> config unset users."${kube_user_name}" --kubeconfig="temp/kubeconfig.tmp"
# Update the credentials in the temp file
kubectl -n <uipath> --kubeconfig="temp/kubeconfig.tmp" config set-credentials uipathadmin --token="$token"
# Set the context and the namespace
kubectl --kubeconfig="temp/kubeconfig.tmp" config set-context --current --namespace=<uipath> --user=uipathadmin
mv temp/kubeconfig.tmp temp/uipathadminkubeconfig
# Create a token
$token = kubectl -n <uipath> create token uipathadmin --duration=8760h
# copy current kubeconfig to a temp file
mkdir temp
cp ~/.kube/config temp/kubeconfig.tmp
# Find the user name and unset it in the temp file
$kube_user_name = kubectl config view -o jsonpath="{.users[0].name}"
kubectl -n <uipath> config unset users."${kube_user_name}" --kubeconfig="temp/kubeconfig.tmp"
# Update the credentials in the temp file
kubectl -n <uipath> --kubeconfig="temp/kubeconfig.tmp" config set-credentials uipathadmin --token="$token"
# Set the context and the namespace
kubectl --kubeconfig="temp/kubeconfig.tmp" config set-context --current --namespace=<uipath> --user=uipathadmin
mv temp/kubeconfig.tmp temp/uipathadminkubeconfig

Si l'opération a réussi, vous devriez voir un fichier kubeconfig nommé uipathadminkubeconfig dans le dossier temp .

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