- Vue d'ensemble (Overview)
- Prérequis
- Pré-installation
- Installation
- Post-installation
- Migration et mise à niveau
- Mettre à niveau Automation Suite
- Migration de produits autonomes vers Automation Suite
- Étape 1 : Restauration de la base de données du produit autonome
- Étape 2 : Mise à jour du schéma de la base de données de produits restaurée
- Étape 3 : Déplacement des données d’organisation depuis une version autonome d’Identity vers Automation Suite
- Étape 4 : Sauvegarder la base de données de la plate-forme dans Automation Suite
- Étape 5 : Fusion des organisations dans Automation Suite
- Étape 6 : Mise à jour des chaînes de connexion du produit migré
- Étape 7 : migration de la version autonome d'Orchestrator
- Étape 8 : migration de la version autonome d’Insights
- Étape 9 : Migration de Test Manager en version autonome
- Étape 10 : suppression du locataire par défaut
- Exécution d'une seule migration de locataire
- Migration entre les clusters Automation Suite
- Migration d' Automation Suite sur EKS/AKS vers Automation Suite sur OpenShift
- Surveillance et alerte
- Administration du cluster
- Configuration spécifique au produit
- Configuration avancée d'Orchestrator
- Configuration des paramètres d'Orchestrator
- Configuration des paramètres d'application
- Configuration de la taille maximale de la requête
- Remplacement de la configuration du stockage au niveau du cluster
- Configuration de NLog
- Enregistrement des journaux du robot dans Elasticsearch
- Configuration des magasins d'informations d'identification
- Configuration de la clé de chiffrement par locataire
- Nettoyer la base de données Orchestrator
- Ignorer l’installation de la bibliothèque hôte
- Rotation des informations d’identification de stockage d’objets blob
- Désactivation de l'utilisation d'URL pré-signées lors du téléchargement de données vers le stockage Amazon S3
- Configuration de la sécurité de l'application de processus
- Configurer une authentification Kerberos avec l’authentification MSSQL de base pour Process Mining
- Résolution des problèmes
- Impossible d’accéder à Automation Hub après la mise à niveau vers Automation Suite 2024.10.0
- Échec de l’enregistrement d’AI Center après la mise à niveau vers la version 2023.10 ou une version ultérieure
- Volumes Insights créés dans deux zones différentes après la migration
- La mise à niveau échoue en raison du remplacement des tailles de PVC Insights
- La configuration de sauvegarde ne fonctionne pas en raison d’un échec de connexion à Azure Government
- Pods dans l'espace de noms uipath bloqués lors de l'activation des rejets de nœuds personnalisés
- Impossible de lancer Automation Hub et Apps avec la configuration proxy
- Le Robot ne peut pas se connecter à une instance Automation Suite Orchestrator
- La diffusion des journaux ne fonctionne pas dans les configurations proxy
- La sauvegarde de Velero échoue avec l'erreur FailedValidation
- L'accès au nom de domaine complet renvoie RBAC : erreur d'accès refusé
Guide d'installation d'Automation Suite sur EKS/AKS
Vous pouvez effectuer la migration depuis Automation Suite déployé sur EKS/AKS vers Automation Suite sur OpenShift. Pour ce faire, vous devez déplacer vos ressources Kubernetes et, le cas échéant, migrer vos données et Insights.
Étape 1 : Migration des ressources Kubernetes
Pour migrer vos ressources Kubernetes depuis EKS/AKS vers OpenShift, procédez comme suit :
-
Exportez vos ressources Kubernetes depuis le cluster EKS/AKS :
uipathctl cluster migration export ~/Downloads/aksinput.json --output-dir ~/Migrate --kubeconfig ~/Downloads/akskubeconfig --log-level debuguipathctl cluster migration export ~/Downloads/aksinput.json --output-dir ~/Migrate --kubeconfig ~/Downloads/akskubeconfig --log-level debug -
Mettez à jour les valeurs de
namespace,resourceVersionetuiddans le fichier généré dans le répertoire de sortie. Assurez-vous de remplacer <uipath> par l'espace de noms que vous prévoyez d'utiliser.sed -i '' 's/namespace: uipath/namespace: <uipath>/g' source-cluster-223902721 sed -i '' 's/namespace: airflow/namespace: <uipath>/g' source-cluster-223902721 sed -i '' '/ resourceVersion:/d' source-cluster-223902721 sed -i '' '/ uid:/d' source-cluster-223902721sed -i '' 's/namespace: uipath/namespace: <uipath>/g' source-cluster-223902721 sed -i '' 's/namespace: airflow/namespace: <uipath>/g' source-cluster-223902721 sed -i '' '/ resourceVersion:/d' source-cluster-223902721 sed -i '' '/ uid:/d' source-cluster-223902721 -
Créez les manifestes dans le cluster cible à l'aide de son kubeconfigr :
kubectl apply -f source-cluster-223902721 --namespace=<namespace>kubectl apply -f source-cluster-223902721 --namespace=<namespace> -
Après avoir terminé la migration des données et d'Insights (étape 2 et étape 3), terminez l'installation d'Automation Suite sur le cluster cible en exécutant la commande suivante :
uipathctl manifest apply input-target.json --kubeconfig kubeconfig.target --versions versions-target.jsonuipathctl manifest apply input-target.json --kubeconfig kubeconfig.target --versions versions-target.json
Étape 2 : Migration des données
Pour migrer vos données d' Automation Suite sur EKS/AKS vers Automation Suite sur OpenShift, procédez comme suit :
- Copiez toutes les données du magasin d’objets source dans le magasin d’objets de destination. Ignorez cette étape si vous prévoyez d'utiliser le même magasin d'objets dans le cluster cible.
- Copiez les données SQL du serveur SQL source vers le serveur SQL cible. Ignorez cette étape si vous prévoyez d'utiliser le même serveur SQL dans le cluster cible.
Étape 3 : Migration d'Insights
À propos de la migration d'Insights
Pour migrer Insights, vous devez migrer les PVC suivants :
insights-looker-lookerdir-pvc(taille du PVC : 500 Mi)insights-looker-datadir-pvc(taille du PVC : 10 Go)
Comment migrer Insights
Pour migrer les PVC Insights, procédez comme suit :
-
Créez la clé secrète de stockage externe en exécutant l'une des commandes suivantes.
-
Si vous utilisez un stockage compatible S3, exécutez la commande suivante :
kubectl create secret -n <namespace> generic export-externalobjects-secret \ --from-literal=ACCESSKEY=<accesskey> \ --from-literal=SECRETKEY=<secretkey> \ --from-literal=REGION=<region> \ --from-literal=FQDN=<fqdn> \ --from-literal=BUCKET=<bucket> \ --from-literal=USE_INSTANCE_PROFILE=<use_instance_profile> \ --from-literal=CREATE_BUCKET=<create_bucket> \ --from-literal=STORAGE_TYPE=s3 \ --from-literal=PORT=<port>kubectl create secret -n <namespace> generic export-externalobjects-secret \ --from-literal=ACCESSKEY=<accesskey> \ --from-literal=SECRETKEY=<secretkey> \ --from-literal=REGION=<region> \ --from-literal=FQDN=<fqdn> \ --from-literal=BUCKET=<bucket> \ --from-literal=USE_INSTANCE_PROFILE=<use_instance_profile> \ --from-literal=CREATE_BUCKET=<create_bucket> \ --from-literal=STORAGE_TYPE=s3 \ --from-literal=PORT=<port> -
Si vous utilisez le stockage AWS S3, exécutez la commande suivante :
kubectl create secret -n <namespace> generic export-externalobjects-secret \ --from-literal=ACCOUNTKEY=<accountkey> \ --from-literal=ACCOUNTNAME=<accountname> \ --from-literal=CLIENT_ID=<client_id> \ --from-literal=AZURE_FQDN_SUFFIX=<fqdn> \ --from-literal=BUCKET=<bucket> \ --from-literal=USE_MANAGED_IDENTITY=<use_managed_profile> \ --from-literal=CREATE_CONTAINER=<create_container> \ --from-literal=STORAGE_TYPE=azure \ --from-literal=USE_WORKLOAD_IDENTITY=<use_workload_identity>kubectl create secret -n <namespace> generic export-externalobjects-secret \ --from-literal=ACCOUNTKEY=<accountkey> \ --from-literal=ACCOUNTNAME=<accountname> \ --from-literal=CLIENT_ID=<client_id> \ --from-literal=AZURE_FQDN_SUFFIX=<fqdn> \ --from-literal=BUCKET=<bucket> \ --from-literal=USE_MANAGED_IDENTITY=<use_managed_profile> \ --from-literal=CREATE_CONTAINER=<create_container> \ --from-literal=STORAGE_TYPE=azure \ --from-literal=USE_WORKLOAD_IDENTITY=<use_workload_identity>
-
-
Créez le PVC
insights-looker-lookerdir-pvc:apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app.kubernetes.io/component: insightslooker app.kubernetes.io/instance: insights app.kubernetes.io/part-by: cloud-rpa argocd.argoproj.io/instance: insights name: insights-looker-lookerdir-pvc namespace: <namespace> spec: accessModes: - ReadWriteOnce resources: requests: storage: 500Mi storageClassName: <storage-class-name>apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app.kubernetes.io/component: insightslooker app.kubernetes.io/instance: insights app.kubernetes.io/part-by: cloud-rpa argocd.argoproj.io/instance: insights name: insights-looker-lookerdir-pvc namespace: <namespace> spec: accessModes: - ReadWriteOnce resources: requests: storage: 500Mi storageClassName: <storage-class-name> -
Créez le RBAC :
--- apiVersion: v1 kind: ServiceAccount metadata: name: migration-sa namespace: <uipath> --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: migration-role namespace: <namespace> rules: - apiGroups: [""] resources: ["configmaps", "secrets"] verbs: ["get", "list", "watch", "create", "patch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: migration-rolebinding namespace: <namespace> roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: migration-role subjects: - kind: ServiceAccount name: migration-sa namespace: <namespace>--- apiVersion: v1 kind: ServiceAccount metadata: name: migration-sa namespace: <uipath> --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: migration-role namespace: <namespace> rules: - apiGroups: [""] resources: ["configmaps", "secrets"] verbs: ["get", "list", "watch", "create", "patch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: migration-rolebinding namespace: <namespace> roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: migration-role subjects: - kind: ServiceAccount name: migration-sa namespace: <namespace> -
Créez le pod pour la migration
insights-looker-lookerdir-pvc:apiVersion: v1 kind: Pod metadata: name: inbound-migrator namespace: <namespace> spec: containers: - command: - /uipathcore - data - migrate - --source-secret - export-externalobjects-secret - --source-path - insights/mnt/lookerfiles - --destination-path - /mnt/lookerfiles - --namespace - <namespace> - --log-level - debug image: sfbrdevhelmweacr.azurecr.io/uipath/uipathcore:0.0.0-dev6628693 imagePullPolicy: IfNotPresent name: pvc-migrator securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL - MKNOD runAsNonRoot: true volumeMounts: - mountPath: /mnt/lookerfiles name: insights-looker-lookerdir serviceAccountName: migration-sa imagePullSecrets: - name: uipathpullsecret securityContext: runAsNonRoot: true volumes: - name: insights-looker-lookerdir persistentVolumeClaim: claimName: insights-looker-lookerdir-pvcapiVersion: v1 kind: Pod metadata: name: inbound-migrator namespace: <namespace> spec: containers: - command: - /uipathcore - data - migrate - --source-secret - export-externalobjects-secret - --source-path - insights/mnt/lookerfiles - --destination-path - /mnt/lookerfiles - --namespace - <namespace> - --log-level - debug image: sfbrdevhelmweacr.azurecr.io/uipath/uipathcore:0.0.0-dev6628693 imagePullPolicy: IfNotPresent name: pvc-migrator securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL - MKNOD runAsNonRoot: true volumeMounts: - mountPath: /mnt/lookerfiles name: insights-looker-lookerdir serviceAccountName: migration-sa imagePullSecrets: - name: uipathpullsecret securityContext: runAsNonRoot: true volumes: - name: insights-looker-lookerdir persistentVolumeClaim: claimName: insights-looker-lookerdir-pvc -
Créez le PVC
insights-looker-datadir-pvc:apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app.kubernetes.io/component: insightslooker app.kubernetes.io/instance: insights app.kubernetes.io/part-by: cloud-rpa argocd.argoproj.io/instance: insights name: insights-looker-datadir-pvc namespace: <namespace> spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: <storage-class-name>apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app.kubernetes.io/component: insightslooker app.kubernetes.io/instance: insights app.kubernetes.io/part-by: cloud-rpa argocd.argoproj.io/instance: insights name: insights-looker-datadir-pvc namespace: <namespace> spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: <storage-class-name> -
Créez le pod pour la migration
insights-looker-datadir-pvc:apiVersion: v1 kind: Pod metadata: name: inbound-migrator-data namespace: <namespace> spec: containers: - command: - /uipathcore - data - migrate - --source-secret - export-externalobjects-secret - --source-path - insights/app/workdir - --destination-path - /mnt/lookerfiles - --namespace - <namespace> - --log-level - debug image: sfbrdevhelmweacr.azurecr.io/uipath/uipathcore:0.0.0-dev6628693 imagePullPolicy: IfNotPresent name: pvc-migrator securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL - MKNOD runAsNonRoot: true volumeMounts: - mountPath: /mnt/lookerfiles name: insights-looker-datadir serviceAccountName: migration-sa imagePullSecrets: - name: uipathpullsecret securityContext: runAsUser: 1000700000 runAsNonRoot: true volumes: - name: insights-looker-datadir persistentVolumeClaim: claimName: insights-looker-datadir-pvcapiVersion: v1 kind: Pod metadata: name: inbound-migrator-data namespace: <namespace> spec: containers: - command: - /uipathcore - data - migrate - --source-secret - export-externalobjects-secret - --source-path - insights/app/workdir - --destination-path - /mnt/lookerfiles - --namespace - <namespace> - --log-level - debug image: sfbrdevhelmweacr.azurecr.io/uipath/uipathcore:0.0.0-dev6628693 imagePullPolicy: IfNotPresent name: pvc-migrator securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL - MKNOD runAsNonRoot: true volumeMounts: - mountPath: /mnt/lookerfiles name: insights-looker-datadir serviceAccountName: migration-sa imagePullSecrets: - name: uipathpullsecret securityContext: runAsUser: 1000700000 runAsNonRoot: true volumes: - name: insights-looker-datadir persistentVolumeClaim: claimName: insights-looker-datadir-pvc -
Supprimez le compte de service, le rôle et la liaison de rôle précédemment créés à l'étape 3 :
kubectl -n <namespace> delete sa migration-sa kubectl -n <namespace> delete role migration-role kubectl -n <namespace> delete rolebinding migration-rolebindingkubectl -n <namespace> delete sa migration-sa kubectl -n <namespace> delete role migration-role kubectl -n <namespace> delete rolebinding migration-rolebinding