- Überblick
- Anforderungen
- Vor der Installation
- Vorbereiten der Installation
- Herunterladen der Installationspakete
- Konfigurieren der OCI-konformen Registrierung
- Erteilen von Installationsberechtigungen
- Disaster Recovery: Aktiv-/Passiv-Konfigurationen
- Generieren der Konfigurationsdatei mit einem Assistenten
- input.json-Beispiel
- Konfigurieren eines Kubernetes-Geheimnisses als Geheimnisspeicher
- Konfigurieren von Azure Key Vault als Geheimnisspeicher
- 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
- 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
- Fehlersuche und ‑behebung

Automation Suite in OpenShift – Installationsanleitung
Sie können Azure Key Vault als Secretstore mithilfe der Dienstprinzipal-Authentifizierungsmethode konfigurieren.
Standardmäßig werden alle vertraulichen Daten in input.json definiert. Sie können diese Daten in zwei Teile aufteilen:
input.json– enthält nur Konfigurationsdaten.- Azure Key Vault – Speichert Anmeldeinformationen sicher.
Stellen Sie sicher, dass alle Anmeldeinformationen als Geheimnisse im Azure Key Vault erstellt werden, bevor Sie den Geheimnisspeicher konfigurieren.
Führen Sie die folgenden Schritte aus, um Azure Key Vault als Geheimnisspeicher mithilfe der Dienstprinzipal-Authentifizierung zu konfigurieren:.
- Damit
uipathctlidentifiziert, dass die Anmeldeinformationen im Azure Key Vault gespeichert sind, müssen Sie den Abschnitt Secretstore zuinput.jsonhinzufügen, wie im folgenden Beispiel gezeigt:"secret_store": { "enabled": true, "provider_configs": [ { "type": "azure", "credentials_secret_name": "azure-service-principal-secret", "refresh_interval": "5m", "name": "azure-secret-store", "azure_kv": { "vault_url": "https://eso-azure-kv.vault.azure.net/", "tenant_id": "d8353d2a-b153-4d17-8827-902c51f72357" } } ] }"secret_store": { "enabled": true, "provider_configs": [ { "type": "azure", "credentials_secret_name": "azure-service-principal-secret", "refresh_interval": "5m", "name": "azure-secret-store", "azure_kv": { "vault_url": "https://eso-azure-kv.vault.azure.net/", "tenant_id": "d8353d2a-b153-4d17-8827-902c51f72357" } } ] } - Erstellen Sie ein Kubernetes-Geheimnis, in dem die Anmeldeinformationen des Azure-Dienstprinzipals gespeichert werden, wie im folgenden Beispiel gezeigt:
apiVersion: v1 kind: Secret metadata: name: azure-service-principal-secret type: Opaque stringData: clientId: <client-id> clientSecret: <client-secret>apiVersion: v1 kind: Secret metadata: name: azure-service-principal-secret type: Opaque stringData: clientId: <client-id> clientSecret: <client-secret> - Stellen Sie das Geheimnis im Namespace
uipathmit dem folgenden Befehl bereit:kubectl apply -f azure-service-principal-secret -n uipathkubectl apply -f azure-service-principal-secret -n uipath - Aktualisieren Sie die Anmeldeinformationswerte in
input.json, um auf Geheimnisse zu verweisen, die in Azure Key Vault gespeichert sind, und verwenden Sie das folgende Format:Wo:vault/<vault-name>/<key-stored-in-the-vault>vault/<vault-name>/<key-stored-in-the-vault>vault– statisches Schlüsselwort.vault-name– der Wert vonsecret_store.provider_configs[i].name(z. B.azure-secret-store).key-stored-in-the-vault– Der Name des Geheimnisses, wie es im Azure Key Vault gespeichert ist.
Nachdem sie aktualisiert wurden, um auf Azure Key Vault zu verweisen, sollten sie folgendermaßen aussehen:"admin_username": "admin", "admin_password": "password","admin_username": "admin", "admin_password": "password",Die folgende Abbildung zeigt die in Azure Key Vault gespeicherten Geheimnisse."admin_username": "vault/azure-secret-store/admin-username-1234", "admin_password": "vault/azure-secret-store/admin-password-1234","admin_username": "vault/azure-secret-store/admin-username-1234", "admin_password": "vault/azure-secret-store/admin-password-1234",
Im folgenden Beispiel wird eine input.json -Konfiguration mit in Azure Key Vault gespeicherten Anmeldeinformationen angezeigt.
{
"action_center": {
"enabled": true
},
"admin_password": "vault/azure-secret-store/admin-password-1234",
"admin_username": "vault/azure-secret-store/admin-username-1234",
"aicenter": {
"enabled": true
},
"apps": {
"enabled": true
},
"argocd": {
"application_namespace": "uipath",
"project": "uipath"
},
"automation_hub": {
"enabled": true
},
"automation_ops": {
"enabled": true
},
"dataservice": {
"enabled": true
},
"documentunderstanding": {
"enabled": true
},
"exclude_components": [
"argocd",
"monitoring",
"istio",
"logging",
"gatekeeper",
"network-policies",
"velero",
"alerts",
"cert-manager",
"dapr",
"external-secrets"
],
"external_object_storage": {
"access_key": "vault/azure-secret-store/external-object-storage-access-key-1234",
"enabled": true,
"fqdn": "s3storage.mycompany.com",
"port": 443,
"region": "us-east-2",
"secret_key": "vault/azure-secret-store/external-object-storage-secret-key-1234",
"storage_type": "s3"
},
"fabric": {
"redis": {
"hostname": "redis.mycompany.com",
"password": "vault/azure-secret-store/fabric-redis-password-1234",
"port": 6380,
"tls": true
}
},
"fqdn": "automationsuite.mycompany.com",
"ingress": {
"gateway_selector": {
"istio": "ingressgateway"
},
"ingress_gateway_secret": "istio-ingressgateway-certs",
"namespace": "\u003cistio-system\u003e"
},
"insights": {
"enabled": true
},
"istioMinProtocolVersion": "TLSV1_3",
"kubernetes_distribution": "openshift",
"namespace": "uipath",
"orchestrator": {
"enabled": true
},
"platform": {
"enabled": true
},
"postgresql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/postgresql-connection-string-template-sqlalchemy-pyodbc-1234",
"processmining": {
"enabled": true
},
"profile": "default",
"registries": {
"docker": {
"password": "",
"pull_secret_name": "registry-credentials",
"pull_secret_value": "",
"url": "registry.mycompany.com",
"username": ""
},
"helm": {
"password": "",
"url": "registry.mycompany.com",
"username": ""
}
},
"secret_store": {
"enabled": true,
"secret_name": "",
"provider_configs": [
{
"type": "azure",
"credentials_secret_name": "azure-service-principal-secret",
"refresh_interval": "5m",
"name": "azure-secret-store",
"azure_kv": {
"vault_url": "https://eso-azure-kv.vault.azure.net/",
"tenant_id": "d8353d2a-b153-4d17-8827-902c51f72357"
}
}
]
},
"sql": {
"create_db": true,
"password": "vault/azure-secret-store/sql-password-1234",
"port": "1433",
"server_url": "sql.mycompany.com",
"username": "vault/azure-secret-store/sql-username-1234"
},
"sql_connection_string_template": "vault/azure-secret-store/sql-connection-string-template-1234",
"sql_connection_string_template_jdbc": "vault/azure-secret-store/sql-connection-string-template-jdbc-1234",
"sql_connection_string_template_odbc": "vault/azure-secret-store/sql-connection-string-template-odbc-1234",
"sql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/sql-connection-string-template-sqlalchemy-pyodbc-1234",
"storage_class": "managed-premium",
"storage_class_single_replica": "managed-premium",
"telemetry_optout": true,
"test_manager": {
"enabled": true
}
}{
"action_center": {
"enabled": true
},
"admin_password": "vault/azure-secret-store/admin-password-1234",
"admin_username": "vault/azure-secret-store/admin-username-1234",
"aicenter": {
"enabled": true
},
"apps": {
"enabled": true
},
"argocd": {
"application_namespace": "uipath",
"project": "uipath"
},
"automation_hub": {
"enabled": true
},
"automation_ops": {
"enabled": true
},
"dataservice": {
"enabled": true
},
"documentunderstanding": {
"enabled": true
},
"exclude_components": [
"argocd",
"monitoring",
"istio",
"logging",
"gatekeeper",
"network-policies",
"velero",
"alerts",
"cert-manager",
"dapr",
"external-secrets"
],
"external_object_storage": {
"access_key": "vault/azure-secret-store/external-object-storage-access-key-1234",
"enabled": true,
"fqdn": "s3storage.mycompany.com",
"port": 443,
"region": "us-east-2",
"secret_key": "vault/azure-secret-store/external-object-storage-secret-key-1234",
"storage_type": "s3"
},
"fabric": {
"redis": {
"hostname": "redis.mycompany.com",
"password": "vault/azure-secret-store/fabric-redis-password-1234",
"port": 6380,
"tls": true
}
},
"fqdn": "automationsuite.mycompany.com",
"ingress": {
"gateway_selector": {
"istio": "ingressgateway"
},
"ingress_gateway_secret": "istio-ingressgateway-certs",
"namespace": "\u003cistio-system\u003e"
},
"insights": {
"enabled": true
},
"istioMinProtocolVersion": "TLSV1_3",
"kubernetes_distribution": "openshift",
"namespace": "uipath",
"orchestrator": {
"enabled": true
},
"platform": {
"enabled": true
},
"postgresql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/postgresql-connection-string-template-sqlalchemy-pyodbc-1234",
"processmining": {
"enabled": true
},
"profile": "default",
"registries": {
"docker": {
"password": "",
"pull_secret_name": "registry-credentials",
"pull_secret_value": "",
"url": "registry.mycompany.com",
"username": ""
},
"helm": {
"password": "",
"url": "registry.mycompany.com",
"username": ""
}
},
"secret_store": {
"enabled": true,
"secret_name": "",
"provider_configs": [
{
"type": "azure",
"credentials_secret_name": "azure-service-principal-secret",
"refresh_interval": "5m",
"name": "azure-secret-store",
"azure_kv": {
"vault_url": "https://eso-azure-kv.vault.azure.net/",
"tenant_id": "d8353d2a-b153-4d17-8827-902c51f72357"
}
}
]
},
"sql": {
"create_db": true,
"password": "vault/azure-secret-store/sql-password-1234",
"port": "1433",
"server_url": "sql.mycompany.com",
"username": "vault/azure-secret-store/sql-username-1234"
},
"sql_connection_string_template": "vault/azure-secret-store/sql-connection-string-template-1234",
"sql_connection_string_template_jdbc": "vault/azure-secret-store/sql-connection-string-template-jdbc-1234",
"sql_connection_string_template_odbc": "vault/azure-secret-store/sql-connection-string-template-odbc-1234",
"sql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/sql-connection-string-template-sqlalchemy-pyodbc-1234",
"storage_class": "managed-premium",
"storage_class_single_replica": "managed-premium",
"telemetry_optout": true,
"test_manager": {
"enabled": true
}
}Wenn Sie eine private Registrierung verwenden und die Registrierungsanmeldeinformationen nicht in input.json konfigurieren möchten, können Sie sie stattdessen als Kubernetes-Geheimnis angeben, wie im folgenden Beispiel gezeigt:
"registries": {
"docker": {
"pull_secret_name": "registry-credentials",
"url": "sfbrdevhelmweacr.azurecr.io"
}
}
"registries": {
"docker": {
"pull_secret_name": "registry-credentials",
"url": "sfbrdevhelmweacr.azurecr.io"
}
}
Erstellen Sie das Kubernetes-Geheimnis, in dem die Registrierungsanmeldeinformationen gespeichert werden, wie im folgenden Beispiel gezeigt:
apiVersion: v1
kind: Secret
metadata:
name: registry-credentials
type: Opaque
data:
url: base64Encode(sfbrdevhelmweacr.azurecr.io)
username: base64Encode(<registry-username>)
password: base64Encode(<registry-password>)
apiVersion: v1
kind: Secret
metadata:
name: registry-credentials
type: Opaque
data:
url: base64Encode(sfbrdevhelmweacr.azurecr.io)
username: base64Encode(<registry-username>)
password: base64Encode(<registry-password>)
uipath mit dem folgenden Befehl an:
kubectl apply -f registry-credentials.yaml -n uipathkubectl apply -f registry-credentials.yaml -n uipath