UiPath Documentation
automation-suite
2.2510
true
Automation Suite in der EKS/AKS-Installationsanleitung
Wichtig :
Bitte beachten Sie, dass dieser Inhalt teilweise mithilfe von maschineller Übersetzung lokalisiert wurde. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

Erteilen von Installationsberechtigungen

Gewähren Sie die erforderlichen Berechtigungen für die Automation Suite-Installation auf EKS/AKS.

Wichtig:

Installationsberechtigungen sind nur relevant, wenn Sie dem Automation Suite-Installationsprogramm keine Administratorrechte zur Verfügung stellen können. Wenn Sie dem Installationsprogramm die erforderlichen Administratorrechte zur Verfügung stellen können, müssen Sie die Anweisungen in diesem Abschnitt nicht befolgen.

Die Automation Suite benötigt während der Installation bestimmte Berechtigungen. Diese Berechtigungen werden dem Dienstkonto zugewiesen, das eine wichtige Rolle bei der Installation der verschiedenen Automation Suite-Komponenten spielt.

Um alle für die Installation erforderlichen Berechtigungen zu konfigurieren, führen Sie die Schritte in diesem Abschnitt aus.

Schritt 1: Erstellen eines Dienstkontos​

Führen Sie die folgenden Schritte aus, um ein Dienstkonto zu erstellen:

  1. Erstellen Sie den Namespace <uipath>:
    kubectl create namespace <uipath>
    kubectl create namespace <uipath>
    
  2. Erstellen Sie ein Dienstkonto mit dem Namen uipathadmin:
     kubectl create serviceaccount uipathadmin -n <uipath>
     kubectl create serviceaccount uipathadmin -n <uipath>
    
  3. Verwenden Sie die vorhandene admin , um dem Dienstkonto uipathadmin im Namespace <uipath> Administratorberechtigungen zu gewähren:
    kubectl create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin -n <uipath>
    kubectl create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin -n <uipath>
    

Schritt 2: Erstellen der erforderlichen Rollen​

Das Dienstkonto uipathadmin benötigt während der Installation der Automation Suite bestimmte Berechtigungen. Sie stellen die erforderlichen Berechtigungen bereit, indem Sie Rollen erstellen. Um jede Rolle zu erstellen, speichern Sie deren Konfiguration als YAML-Datei und führen Sie den folgenden Befehl aus, wobei Sie den Platzhalter <file_name.yaml> durch den tatsächlichen Namen der YAML-Datei ersetzen:

kubectl apply -f <file_name.yaml>
kubectl apply -f <file_name.yaml>

Sie können die YAML-Datei für jede Rolle erstellen, indem Sie die Konfiguration aus den folgenden Abschnitten kopieren.

Namespace abfragen [schreibgeschützt]​

Erforderlich, um zu überprüfen, ob die Namespaces, z. B. der Namespace <istio-system> , verfügbar sind oder nicht.

Das folgende Beispiel zeigt die namespace-reader-clusterrole ClusterRole-Konfiguration:

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"]

Knoten und CRDs auflisten [schreibgeschützt]​

Das Tool zur Voraussetzungsprüfung und zur Diagnosezustandsprüfung erfordert diese Berechtigung, um Knotenvalidierungen durchzuführen, z. B. die auf dem Knoten verfügbare Kapazität.

Das folgende Beispiel zeigt die list-nodes-and-crd-clusterrole ClusterRole-Konfiguration:

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"]
Hinweis:

Wenn diese Berechtigungen in Ihrem Cluster nicht verfügbar sind, können Automation Suite Robots die maximale Anzahl gleichzeitiger Aufträge nicht automatisch bestimmen. Um den Grenzwert explizit zu definieren, konfigurieren Sie concurrency_limit im Abschnitt asrobots von input.json. Weitere Informationen finden Sie unter Spezifische Konfiguration für Automation Suite Robots.

Speicherklassen abrufen [schreibgeschützt]​

Das Tool zur Voraussetzungsprüfung und zur Diagnose des Zustands benötigt diese Berechtigung, um die Validierungen durchzuführen.

Das folgende Beispiel zeigt die storage-class-reader ClusterRole-Konfiguration:

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 Rollen [schreiben]​

Der größte Teil der Automation Suite-Installation wird über ArgoCD ausgeführt. Einige Komponenten werden jedoch über Helm-Charts installiert.

Das uipathctl -Tool führt einen Installationsauftrag aus, der die Helm-Chart-Installation ausführt. Das Herstellen einer Verbindung mit dem kube-api-server und das Installieren des Helm-Charts im <uipath> -Namespace erfordert eine Rollenerstellerrolle auf Namespace-Ebene.

Das folgende Beispiel zeigt die Konfiguration der Rolle 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> Rollen [schreiben]​

Hinweis:

Stellen Sie diese Berechtigungen nur bereit, wenn das Installationsprogramm das WASM-Plugin konfigurieren soll. Andernfalls stellen Sie die Berechtigungen nicht bereit.

Die folgenden Vorgänge werden im Namespace <istio-system> ausgeführt:

  1. Das Voraussetzungsüberprüfungstool der Automation Suite liest Pods und Dienste, um zu überprüfen, ob Istio installiert und ordnungsgemäß konfiguriert ist.
  2. Die Automation Suite installiert das WASM-Plugin, um pfadbasierte Routing-Regeln zu konfigurieren. Dies erfordert das Erstellen eines Image-Pull-Geheimnisses und Berechtigungen für die Erstellung von Rollen auf Namespace-Ebene.

Das folgende Beispiel zeigt die Konfiguration der Rolle 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> Rollen [schreibgeschützt]​

Hinweis:

Stellen Sie diese Berechtigungen bereit, wenn Istio und das WASM-Plugin bereits konfiguriert sind.

Die folgenden Vorgänge werden im Namespace <istio-system> ausgeführt:

  1. Lesen Sie Pods und Dienste, um die Istio-Installation zu validieren.
  2. Die Berechtigung get secrets ist erforderlich, um die Zertifikatsdatei aus dem Namespace <istio-system> in den Namespace <uipath> zu kopieren.

Das folgende Beispiel zeigt die Konfiguration der Rolle 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"]

Schritt 3: Binden der Rollen​

Sie müssen die Rollen, die Sie im vorherigen Schritt erstellt haben, an das uipathadmin -Dienstkonto binden, indem Sie die folgenden Befehle ausführen:

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

Schritt 4: Generieren der kubeconfig-Datei​

Nachdem Sie dem Dienstkonto alle Berechtigungen zugewiesen haben, müssen Sie eine kubeconfig -Datei erstellen, um sie an das uipathctl -Tool für die Installation zu übergeben.

Generieren der kubeconfig-Datei unter Linux oder Mac​

Um die kubeconfig -Datei unter Linux oder Mac zu generieren, führen Sie die folgenden Befehle aus:

# 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

Wenn der Vorgang erfolgreich war, sollten Sie eine kubeconfig -Datei mit dem Namen uipathadminkubeconfig sehen.

Generieren der kubeconfig-Datei unter Windows​

Hinweis:

Sie müssen diesen Schritt mit Windows Powershell ausführen.

Um die kubeconfig-Datei unter Windows zu generieren, führen Sie die folgenden Befehle aus:

# 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

Wenn der Vorgang erfolgreich war, sollten Sie eine kubeconfig -Datei mit dem Namen uipathadminkubeconfig im Ordner temp sehen.

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben