- Überblick
- Anforderungen
- Vor der Installation
- Vorbereiten der Installation
- Herunterladen der Installationspakete
- Konfigurieren der OCI-konformen Registrierung
- Gewährung von Installationsberechtigungen mit Clusterrollen
- Gewährung von Installationsberechtigungen ohne Clusterrollen
- Installieren und Konfigurieren des Dienstgeflechts
- Installieren und Konfigurieren des GitOps-Tools
- Installieren des Operators für externe Geheimnisse
- Bereitstellen von Redis über OperatorHub
- Anwenden verschiedener Konfigurationen
- Ausführen von uipathctl
- Installation
- Nach der Installation
- Migration und Upgrade
- Überwachung und Warnungen
- Clusterverwaltung
- Produktspezifische Konfiguration
- Erweiterte Orchestrator-Konfiguration
- Konfigurieren von Orchestrator-Parametern
- Konfigurieren von AppSettings
- Konfigurieren der maximalen Anforderungsgröße
- Überschreiben der Speicherkonfiguration auf Clusterebene
- Konfigurieren von NLog
- Speichern von Roboterprotokollen in Elasticsearch
- Konfigurieren von Anmeldeinformationsspeichern
- Konfigurieren der Verwendung von einem Verschlüsselungsschlüssel pro Mandant
- Bereinigen der Orchestrator-Datenbank
- Installation der Hostbibliothek überspringen
- AI Trust Layer
- Fehlersuche und ‑behebung
- Deinstallieren der Automation Suite
- So beheben Sie einen Fehler bei der Überprüfung der Prereq-Konnektivität unter OpenShift 4.16–4.18
- So stellen Sie Insights in einem FIPS-fähigen Cluster bereit
- So deaktivieren Sie die automatische CDI-Aktivierung im Nvidia GPU-Operator
- So codieren Sie ein PostgreSQL-Verbindungszeichenfolgenkennwort für eine URL
- 500 Fehler und Ratenbegrenzung für S3-Anforderungen in ODF
- Fehlerbehebung bei externen Geheimnissen
- Konfigurieren von CSI-Treibertoleranzen für ODF 4.20
- Temporär als Dienst-Fehlerbehebung
- AI Center und Document Understanding Pods können bei aktivierter TLS-Zertifikatsverifizierung nicht gestartet werden
- Studio Desktop kann keine Integration Service-Connectors und -Aktivitäten laden
- Validierungsfehler beim TLS-Zertifikat
- Manuelle Schadensbegrenzung bei ArgoCD NetworkPolicy (GHSA-47m3-95c7-g2g8)
- Konfigurieren von Ressourcenanforderungen und Limits für von uipathctl erstellte Workloads
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.
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.
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:
- Erstellen eines Dienstkontos
- Erstellen der erforderlichen Namespace-Rollen
- Binden der Rollen
- Generieren der kubeconfig-Datei
- Konfigurieren von
input.jsonfür den Betrieb im eingeschränkten Modus - Vorab erstellen des TLS-Zertifikatsgeheimnisses
- 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:
-
Erstellen Sie den Namespace und das Projekt
<uipath>:oc get namespace <uipath> || oc new-project <uipath>oc get namespace <uipath> || oc new-project <uipath> -
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. -
Erstellen Sie ein Dienstkonto mit dem Namen
uipathadmin:oc create serviceaccount uipathadminoc create serviceaccount uipathadmin -
Verwenden Sie die vorhandene
admin, um dem Dienstkontouipathadminim Namespace<uipath>Administratorberechtigungen zu gewähren:oc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadminoc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadminHinweis:Dies ist eine
RoleBindingmit Namespace-Scope, die auf die integrierte Clusterrolleadminverweist. Gewährtuipathadmin-Administratorberechtigungen nur innerhalb des<uipath>-Namespace, nicht clusterweit. Es wird keinClusterRoleBindingerstellt.
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
Die folgenden Vorgänge werden im Namespace <istio-system> ausgeführt:
- 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. - Die Berechtigung
get secretsist 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
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
uipathctlan, seine eigenepriorityclasses.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
priorityClassNameaus 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
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
uipathadminmit der schreibgeschützten Rolle<istio-system>ausgeführt wird, kann Istio nicht konfiguriert oder das WASM-Plugin selbst installiert werden; Ein Clusteradministrator mussistio-configurevor 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.
- Schritt 1: Erstellen eines Dienstkontos
- Schritt 2: Erstellen der erforderlichen Namespace-Scope-Rollen
- Installationsberechtigungen im
<uipath>-Namespace - Zertifikat- und Validierungsberechtigungen im
<istio-system>-Namespace - Schritt 3: Binden der Rollen
- Schritt 4: Generieren der kubeconfig-Datei
- Generieren der kubeconfig-Datei unter Linux oder Mac
- Generieren der kubeconfig-Datei unter Windows
- Schritt 5: Konfigurieren von
input.jsonfür den eingeschränkten Modus - 5.1 Prioritätsklassen
- 5.2 Zertifikate und Ingress
- 5.3 Gleichzeitigkeitsgrenze für AS-Roboter
- 5.4 Einbringen Ihrer eigenen Komponenten
- Schritt 6: Vorerstellen des TLS-Zertifikatsgeheimnisses
- Schritt 7: Installieren und Konfigurieren des Service Mesh und GitOps-Tools