UiPath Documentation
automation-suite
2.2510
true
Automation Suite in OpenShift – 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.

Gewährung von Installationsberechtigungen ohne Clusterrollen

Gewähren Sie dem Automation Suite-Installationsprogramm Namespace-Scope-Berechtigungen für OpenShift und kompensieren Sie fehlende Cluster-Scope-Rollen mit vorgefertigten Ressourcen.

Wichtig:

Diese Seite gilt nur, wenn Ihre Sicherheitsrichtlinie die Gewährung von clusterbezogenen Berechtigungen (ClusterRole oder ClusterRoleBinding) für das Konto des Automation Suite-Installationsprogrammdiensts (uipathadmin) verbiet. Wenn Sie die clusterbezogenen Berechtigungen erteilen können, lesen Sie stattdessen Erteilen von Installationsberechtigungen mit Clusterrollen .

Wenn Sie mehrere Automation Suite-Instanzen auf demselben Cluster installieren, müssen Sie Berechtigungen für die anderen Namespaces erteilen, in denen Sie die Automation Suite installieren.

Auf dieser Seite wird beschrieben, wie Sie dem Automation Suite-Installationsprogramm die erforderlichen Berechtigungen erteilen , ohne clusterbezogene Berechtigungen zuzuweisen.

Sie halten das uipathadmin -Dienstkonto streng auf Namespace-Scopes: Sie überspringen die beiden Cluster-Scope-Ressourcen ClusterRole und das ClusterRoleBinding, die im Standardflow verwendet werden, und kompensieren die fehlenden Cluster-Scope-Lesevorgänge mit einer Reihe von Vor- – erstellte Ressourcen und uipathctl -Flags.

Hinweis:

Sie müssen die Befehle, auf die in diesem Abschnitt verwiesen wird, von einer Linux-, Windows- oder macOS-Maschine aus ausführen, die Zugriff auf den OpenShift Kubernetes API-Server hat.

Befehle, die Administratoraktionen ausführen (erstellen des Zertifikats Secret), müssen von einem Clusteradministrator ausgeführt werden. Befehle, die uipathadmin -Aktionen ausführen, verwenden das kubeconfig das Sie in Schritt 4 generieren.

Um Installationsberechtigungen ohne Clusterrollen zu erteilen, führen Sie die folgenden Schritte aus:

  1. Erstellen eines Dienstkontos
  2. Erstellen der erforderlichen Namespace-Rollen
  3. Binden der Rollen
  4. Generieren der kubeconfig-Datei
  5. Konfigurieren von input.json für den Betrieb im eingeschränkten Modus
  6. Vorab erstellen des TLS-Zertifikatsgeheimnisses
  7. Installieren und Konfigurieren des Service Mesh und GitOps-Tools

Schritt 1: Erstellen eines Dienstkontos​

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

  1. Erstellen Sie den Namespace und das Projekt <uipath> :

    oc get namespace <uipath> || oc new-project <uipath>
    oc get namespace <uipath> || oc new-project <uipath>
    
  2. Legen Sie den Standard-Namespace und das Projekt auf <uipath>:

    oc project <uipath>
    oc project <uipath>
    

    Alle nachfolgenden oc -Befehle werden innerhalb des <uipath> -Namespace ausgeführt.

  3. Erstellen Sie ein Dienstkonto mit dem Namen uipathadmin:

    oc create serviceaccount uipathadmin
    oc create serviceaccount uipathadmin
    
  4. Verwenden Sie die vorhandene admin , um dem Dienstkonto uipathadmin im Namespace <uipath> Administratorberechtigungen zu gewähren:

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

    Dies ist eine RoleBinding mit Namespace-Scope, die auf die integrierte Clusterrolle admin verweist. Gewährt uipathadmin -Administratorberechtigungen nur innerhalb des <uipath> -Namespace, nicht clusterweit. Es wird kein ClusterRoleBinding erstellt.

Schritt 2: Erstellen der erforderlichen Namespace-Scope-Rollen​

Das Dienstkonto uipathadmin erfordert bestimmte Berechtigungen während der Automation Suite-Installation. Im Flow ohne Clusterrollen stellen Sie diese Berechtigungen nur über Rollen mit Namespace-Scope bereit.

Um die einzelnen Rollen zu erstellen, speichern Sie deren Konfiguration als YAML-Datei, führen Sie den folgenden Befehl aus und ersetzen Sie den Platzhalter <file_name.yaml> durch den tatsächlichen Namen der YAML-Datei:

oc apply -f <file_name.yaml>
oc 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.

Die folgenden Rollen mit Namespace-Scope sind die einzigen Rollen, die uipathadmin in diesem Flow benötigt. Die Voraussetzungsprüfungen, die andernfalls auf clusterbezogenen Lesevorgängen basieren würden, werden ausgeschlossen und out-of-band validiert, wie unter Ausführen von Voraussetzungsprüfungen ohne Clusterrollen beschrieben.

Installationsberechtigungen im <uipath> -Namespace​

Der Großteil der Automation Suite-Installation läuft über ArgoCD, aber einige Komponenten werden direkt über Helm-Charts installiert. Das uipathctl -Tool führt einen Installationsauftrag aus, der diese Helm-Installationen im Namespace <uipath> durchführt. Dazu benötigt uipathadmin eine Rolle im Namespace-Scope, die Rollen, Rollenbindungen, Geheimnisse und Konfigurationspläne erstellen und verwalten kann.

Das folgende Beispiel zeigt die uipath-automationsuite-role -Konfiguration:

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

Zertifikat- und Validierungsberechtigungen im <istio-system> -Namespace​

Hinweis:

-Namespace in Ihrem Cluster möglicherweise nicht vorhanden, wenn Sie Istio noch nicht installiert haben. Sie können den Namespace und die Rolle erstellen, bevor Sie Istio installieren, oder Sie können die Rolle nach der Installation von Istio erstellen.

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

  1. Das Automation Suite-Voraussetzungsüberprüfungstool liest die Pods und Dienste im <istio-system> -Namespace, um zu überprüfen, ob Istio ordnungsgemäß installiert und konfiguriert ist.
  2. Die Berechtigung get secrets ist erforderlich, um die Zertifikatsdatei aus dem Namespace <istio-system> in den Namespace <uipath> zu kopieren.

Da uipathadmin Istio nicht konfiguriert oder das WebAssembly-Plugin (WASM) im Flow ohne Cluster-Rollen installiert, verwenden Sie die schreibgeschützte Variante dieser Rolle. Ein Clusteradministrator führt diese Vorgänge stattdessen aus (siehe Schritt 7).

Das folgende Beispiel zeigt die istio-system-automationsuite-role -Konfiguration:

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​

Binden Sie die Namespace-Scope-Rollen, die Sie im vorherigen Schritt erstellt haben, an das uipathadmin -Dienstkonto, indem Sie die folgenden Befehle ausführen:

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

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:

# 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

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:

# 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

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

Schritt 5: Konfigurieren von input.json für den eingeschränkten Modus​

Im Flow ohne Clusterrollen müssen Sie einige Schlüssel zu Ihrem input.json hinzufügen, damit uipathctl und die UiPath-Dienstdiagramme Vorgänge vermeiden, die clusterbezogene Lesevorgänge oder Ressourcen erfordern. In den folgenden Abschnitten wird jeder Schlüssel erläutert.

5.1 Prioritätsklassen​

Legen Sie ignore_priority_class auf true fest:

{
  "ignore_priority_class": true
}
{
  "ignore_priority_class": true
}

Diese Einstellung bewirkt Folgendes:

  • Er weist uipathctl an, seine eigene priorityclasses.scheduling.k8s.io -Suche zu überspringen, für die andernfalls ein clusterbezogener Lesevorgang erforderlich wäre.
  • Es wird auf alle UiPath-Dienstdiagramme übertragen, die dann priorityClassName aus ihren Workloads weglassen.

Infolgedessen verweist kein Automation Suite-Pod auf einen PriorityClass, sodass auf dem Cluster kein PriorityClass vorhanden und keines vorab erstellt werden muss.

5.2 Zertifikate und Ingress​

Fügen Sie die Zertifikats- und Ingress-Schlüssel hinzu. Weitere Informationen zu den zertifikatbezogenen Schlüsseln finden Sie unter Zertifikatanforderungen.

{
  "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>"
}

Der Schlüssel additional_ca_certs ist nur erforderlich, wenn Ihr TLS-Zertifikat von einer privaten oder selbstsignierten Zertifizierungsstelle signiert wurde. Das Zertifizierungsstellenpaket wird an den Vertrauensspeicher aller Automation Suite-Pods weitergegeben.

5.3 Gleichzeitigkeitsgrenze für AS-Roboter​

Wichtig:

Dieser Schritt ist nur erforderlich, wenn Sie AS-Roboter (asrobots) aktivieren.

Wenn Sie AS-Roboter aktivieren, legen Sie eine explizite concurrency_limit fest:

{
  "asrobots": {
    "enabled": true,
    "concurrency_limit": 2
  }
}
{
  "asrobots": {
    "enabled": true,
    "concurrency_limit": 2
  }
}

Wenn concurrency_limit nicht festgelegt ist, stellt das AS-Roboterdiagramm ClusterRole und ClusterRoleBinding bereit, um die Knotenkapazität automatisch zu lesen und die Robotergleichzeit zu berechnen. Eine ArgoCD-Instanz mit Namespace kann diese clusterbezogenen Ressourcen nicht verwalten, sodass die asrobots -Anwendung nicht synchronisiert werden kann:

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

Mit einem expliziten concurrency_limit stellt das Diagramm keine clusterbezogenen Ressourcen bereit.

5.4 Einbringen Ihrer eigenen Komponenten​

Da uipathadmin in diesem Flow keine clusterbezogenen Berechtigungen hat, kann das Installationsprogramm die Plattformkomponenten nicht bereitstellen, die clusterbezogene Ressourcen erstellen – wie Istio, OPA Gatekeeper, cert-manager und Netzwerkrichtlinien. Sie müssen diese Komponenten selbst bereitstellen und in exclude_components auflisten, damit das Installationsprogramm sie überspringt.

Listen Sie die von Ihnen selbst bereitgestellten Komponenten in exclude_components auf und legen Sie telemetry_optout auf true fest, da die Telemetrie in diesem Flow nicht aktiviert werden kann. Die Komponentenliste und Details finden Sie unter Ohne Clusterrollen.

Schritt 6: Vorerstellen des TLS-Zertifikatsgeheimnisses​

Da uipathadmin nur einen Namespace-Scope hat, muss ein Clusteradministrator vor der Installation den istio-ingressgateway-certs Secret im Namespace <istio-system> erstellen. Dadurch wird uipathadmin keine zusätzliche Berechtigung gewährt; es ersetzt die Arbeit, die uipathadmin ausgeführt hätte, wenn es die Berechtigungen im Cluster-Scope hätte. (Es muss kein PriorityClass erstellt werden – diese Abhängigkeit wird von ignore_priority_class in Schritt 5.1 entfernt.)

istio-ingressgateway-certs Secret wird als Teil der Konfiguration des Service Mesh erstellt. Informationen zur Erstellung finden Sie unter Konfigurieren von Istio und Installieren des WASM-Plugins für das Routing.

Da uipathadmin nur das schreibgeschützte istio-system-automationsuite-role enthält, kann es dieses Secret lesen, aber nicht erstellen; Ein Clusteradministrator muss ihn erstellen.

Stellen Sie sicher, dass Secret alle drei Schlüssel enthält – tls.crt, tls.key und ca.crt – da der Schlüssel ca.crt erforderlich ist, wenn Ihr TLS-Zertifikat von einer privaten oder selbstsignierten Zertifizierungsstelle signiert wird.

Schritt 7: Installieren und Konfigurieren des Service Mesh und GitOps-Tools​

Befolgen Sie die Standardverfahren für das Service Mesh und das GitOps-Tool. Diese Verfahren erstellen zusätzliche Namespace-Scope-Rollen und Bindungen für uipathadmin im <argocd> -Namespace; keines von ihnen erfordert clusterbezogene Berechtigungen für uipathadmin.

  • Installieren und Konfigurieren des Dienst Mesh – Installieren Sie das OpenShift Service Mesh. Da uipathadmin mit der schreibgeschützten Rolle <istio-system> ausgeführt wird, kann Istio nicht konfiguriert oder das WASM-Plugin selbst installiert werden; Ein Clusteradministrator muss istio-configure vor der Installation der Automation Suite einrichten.
  • Installieren und Konfigurieren des GitOps-Tools – Bereitstellen der dedizierten ArgoCD-Instanz und Abschließen aller Schritte.

Die istio-configure -Einrichtungsschritte finden Sie unter Konfigurieren von Istio und Installieren des WASM-Plugins für das Routing.

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