- Vue d'ensemble (Overview)
- Prérequis
- Installation
- Post-installation
- Migration et mise à niveau
- Mise à niveau d'Automation Suite sur EKS/AKS
- Étape 1 : Déplacement des données d'organisation Identity d'installation autonome vers Automation Suite
- Étape 2 : Restauration de la base de données du produit autonome
- Étape 3 : Sauvegarder la base de données de la plate-forme dans Automation Suite
- Étape 4 : Fusion des organisations dans Automation Suite
- Étape 5 : Mise à jour des chaînes de connexion du produit migré
- Étape 6 : migration de la version autonome d'Orchestrator
- Étape 7 : Migration d’Insights en version autonome
- Étape 8 : Migration de Test Manager autonome
- Étape 9 : suppression du locataire par défaut
- Exécution d'une seule migration de locataire
- Migration d'Automation Suite sur Linux vers Automation Suite sur EKS/AKS
- Surveillance et alerte
- Administration du cluster
- Configuration spécifique au produit
- Configuration des paramètres d'Orchestrator
- Paramètres de l'application 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 des magasins d'informations d'identification
- Configuration de la clé de chiffrement par locataire
- Nettoyer la base de données Orchestrator
- 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
- 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
- Les pods ne peuvent pas communiquer avec le nom de domaine complet dans un environnement proxy
- La chaîne de connexion SQL de l’automatisation de test est ignorée
- Échec de la sauvegarde EKS en raison de la version de Velero
- La sauvegarde de Velero échoue avec l'erreur FailedValidation
- L'accès au nom de domaine complet renvoie une erreur d'accès refusé RBAC
- Atténuation manuelle de la politique réseau ArgoCD
Migration d'Automation Suite sur Linux vers Automation Suite sur EKS/AKS
Effectuez la migration depuis Automation Suite sur Linux vers Automation Suite sur EKS/AKS en déplaçant les données à l'aide de uipathctl.
Vous pouvez effectuer la migration depuis Automation Suite déployé sur une machine Linux vers Automation Suite sur EKS/AKS. Pour ce faire, vous devez déplacer vos données depuis une version d'Automation Suite vers une autre à l'aide de uipathctl.
L'un des avantages de ce processus de migration est que vous pouvez essayer de l'effectuer plusieurs fois sans avoir d'impact sur votre cluster existant.
Cette option de migration vous permet de passer d' Automation Suite sur Linux à une nouvelle installation d' Automation Suite sur EKS/AKS.
Les scénarios de migration suivants ne sont pas pris en charge :
- La migration d’Automation Suite sur Linux vers une installation existante d’Automation Suite sur EKS/AKS n’est actuellement pas prise en charge.
- La migration d’un cluster Automation Suite sur EKS/AKS vers un autre cluster Automation Suite sur EKS/AKS n’est actuellement pas prise en charge.
Prérequis
Pour migrer d'Automation Suite sur Linux vers Automation Suite sur EKS/AKS, vous devez répondre aux exigences suivantes :
- Vous devez établir la connectivité entre les deux environnements.
- Un magasin d'objets externe doit être configuré dans votre cluster source. Si vous utilisez le stockage intégré au cluster, reportez-vous à Migration du magasin d'objets du cluster vers un magasin d'objets externe.
- Vous devez accorder les autorisations de lecture/écriture du cluster source au magasin d'objets de destination. Lorsque les volumes persistants (PV) sont copiés, le cluster source écrit ses données dans le magasin d'objets de destination, puis le cluster de destination extrait les données du magasin d'objets et crée les PV correspondants.
- La version de votre Automation Suite sur Linux doit être 2022.10 ou une version plus récente.
- Exigences pour le mode hors ligne uniquement : vous devez hydrater le cluster cible.
Vue d'ensemble du processus
| # | Étape de migration |
|---|---|
| 1. | Obligatoire. Téléchargez uipathctl. Pour obtenir des instructions de téléchargement, consultez la section uipathctl. |
| 2. | Obligatoire. Téléchargez versions.json. Pour obtenir des instructions de téléchargement, consultez versions.json . |
| 3. | Préparez les images Docker pour le cluster source et cible. Facultatif. Si votre déploiement est hors ligne ou si vous utilisez un registre OCI privé, assurez-vous que les images requises sont disponibles. |
| 4. | Préparez le cluster cible :
|
| 5. | Exécutez la migration et déplacez les données. La migration exécute des pods sur les clusters source et cible. Le stockage d'objets externe configuré pour le cluster source, en particulier le compartiment Platform, est utilisé comme emplacement de stockage de migration intermédiaire. Cluster source :
Cluster cible :
|
| 6. |
|
Migration de données et responsabilités
| Données | Mécanisme de migration | |
|---|---|---|
| État (Status) | Responsabilité | |
| SQL | Retained (Conservé) Vous avez deux options :
| Client |
| Registre Docker | Non migré registry.uipath.com pour le cluster cible, aucune autre étape n'est nécessaire.) | Client |
| Nom de domaine complet | Requis Vous devez choisir un nouveau nom de domaine complet pour le nouveau cluster. Vous pouvez éventuellement revenir au nom de domaine complet précédent si nécessaire. | Client |
| Certificats | Non migré Vous devez apporter des certificats dans le cadre de la nouvelle installation de cluster. | Client |
| Configuration du cluster | Non migré input.json applicable au type de cluster cible (AKS ou EKS). | Client |
| Alertes et tableaux de bord personnalisés créés par les utilisateurs | Non migré Après la migration, vous devez reconfigurer toutes les alertes personnalisées dans le gestionnaire d'alertes et les tableaux de bord Grafana. | Client |
| Journaux d'application/configuration du flux Prometheus créés par les utilisateurs | Non migré Vous devez reconfigurer le journal des applications et le flux Prometheus. | Client |
| Charges de travail dynamiques | Dépend de l'application Les tâches d'entraînement AI Center sont perdues ; les compétences sont conservées. | Compétences (script nécessaire pour une exécution après la mise à niveau) : UiPath® Tâches d'entraînement : Client |
| Magasin d'objets | Magasin d'objets externe : Conservé (Retained) Pour le magasin d'objets externe, vous avez deux options :
Attention : si vous utilisez un magasin d'objets intégré au cluster, vous devez effectuer une migration ceph vers un système externe avant la mise à niveau. | Migration d'un magasin d'objets intégré au cluster vers un magasin externe : Client (Customer) Magasin d’objets externe : UiPath® |
| Insights | Retained (Conservé) | UiPath® |
| Données MongoDB | Retained (Conservé) Les données MongoDB sont déplacées vers le serveur SQL cible. | UiPath® |
| RabbitMQ | Non nécessaire | UiPath® |
| Surveillance (données) | Non nécessaire Les données de surveillance ne s'appliquent pas au nouveau cluster. | S/O |
Préparation
Préparation du fichier cluster_config.json
Ne modifiez pas le cluster source après le démarrage du processus de migration.
Pour préparer le fichier cluster_config.json, procédez comme suit :
-
Téléchargez la version ciblée de
uipathctlsur le cluster source et générez le fichierinput.jsonen exécutantuipathctl manifest get-revision. Pour plus de détails, consultez le schéma suivant : -
Sur la base du fichier
input.jsongénéré précédemment, modifiez le fichierinput.jsondu cluster cible. Pour obtenir des instructions, consultez la section Configuration de input.json.Vous devez transférer la configuration spécifique à Orchestrator qui inclut la clé de chiffrement par locataire et les paramètres des compartiments de stockage Azure/Amazon S3.
Remarque :La base de données Microsoft SQL Server et PostgreSQL pour Process Mining Airflow dédiée est l’option recommandée pour la version 2023.10.9 ou une version plus récente.
Si vous migrez à partir d'une version antérieure à 2023.10.9, le fichier
input.jsongénéré pour le cluster cible ne contient pas la chaîne de connexion de la base de données Airflow PostgreSQL. Pour utiliser la dernière version de Airflow, qui nécessite PostgreSQL, vous devrez ajouter manuellement le modèle de chaîne de connexionsqlalchemypour PostgreSQL au fichierinput.jsonpour le cluster cible avant la migration.Postgresql_connection_string_template_sqlalchemy_pyodbcpostgresql+psycopg2://<user>:<password>@<postgresql host>:<postgresql port>/DB_NAME_PLACEHOLDERpostgresql+psycopg2://<user>:<password>@<postgresql host>:<postgresql port>/DB_NAME_PLACEHOLDER -
Validez les prérequis dans le cluster cible en exécutant la commande suivante :
uipathctl prereq run input-target.json --kubeconfig kubeconfig.target --versions versions.jsonuipathctl prereq run input-target.json --kubeconfig kubeconfig.target --versions versions.json -
Clonez les bases de données SQL du déploiement source vers le déploiement cible.
Registre privé sans conditions d'accès à Internet
Le processus de migration nécessite que la dernière balise d'image Docker uipathcore soit disponible à la fois pour les clusters source et cible. Si votre cluster source est hors ligne, rendez l'image disponible en procédant comme suit :
- Suivez les étapes pour hydrater le registre utilisé par le cluster cible avec le bundle hors ligne décrites dans Option B : Hydratation du registre avec le bundle hors ligne.
- Copiez le binaire
uipathctlet le fichierversions.jsonsur une machine virtuelle avec accès au cluster source. - Exécutez la commande suivante :
jq -r '.[][] | select(.name=="uipath/uipathcore") | .ref + ":" + .version' "/path/to/versions.json" > images.txtjq -r '.[][] | select(.name=="uipath/uipathcore") | .ref + ":" + .version' "/path/to/versions.json" > images.txt - Ajoutez l'image
uipathcoreà votre registre privé à l'aide du binaireuipathctl:./uipathctl registry seed --tag-file ./images.txt \ --source-registry "target.registry.fqdn.com" \ --source-password "target-registry-username" \ --source-username "target-registry-password" \ --dest-registry "<source.registry.fqdn.com>" \ --dest-username "<source-registry-username>" \ --dest-password "<source-registry-password>"./uipathctl registry seed --tag-file ./images.txt \ --source-registry "target.registry.fqdn.com" \ --source-password "target-registry-username" \ --source-username "target-registry-password" \ --dest-registry "<source.registry.fqdn.com>" \ --dest-username "<source-registry-username>" \ --dest-password "<source-registry-password>"Remarque :Assurez-vous de remplacer
registry.fqdn,registry-usernameetregistry-passwordpar les valeurs appropriées pour le registre privé utilisé par votre installation hors ligne source.
Registre privé avec conditions d'accès à Internet
Si vous utilisez un registre privé, vous devez le référencer. Pour obtenir des instructions, consultez la section Configuration du registre compatible OCI.
Exécution
Pour migrer vers Automation Suite sur EKS/AKS, procédez comme suit :
- Effectuez la migration en exécutant la commande suivante :
uipathctl cluster migration run input-target.json --kubeconfig kubeconfig.source --target-kubeconfig kubeconfig.target --versions versions-target.jsonuipathctl cluster migration run input-target.json --kubeconfig kubeconfig.source --target-kubeconfig kubeconfig.target --versions versions-target.json - Terminez l'installation d'Automation Suite sur AKS/EKS 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
Migration de la compétence AI Center
Les étapes de cette section ne s'appliquent que si vous avez activé AI Center sur les clusters source et cible. Notez que les instructions supposent que AI Center au niveau du cluster cible pointe vers la base de données contenant les données de compétence pour exécuter les compétences.
Une fois la migration terminée, vous devez synchroniser les compétences AI Center afin de pouvoir les utiliser à nouveau.
Vérification du statut de la migration des compétences
Pour récupérer le statut des compétences sur le système Automation Suite cible sur EKS/AKS, procédez comme suit :
- Configurez les variables pour l'exécution des commandes suivantes.
aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['aicenter/aicenter-jobs:v23.10-10.15-rc02']}") podName="skillstatuspod"aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['aicenter/aicenter-jobs:v23.10-10.15-rc02']}") podName="skillstatuspod" - Nettoyez tout pod
skillstatuspodqui pourrait être en cours d'exécution avant de récupérer à nouveau le statut de la compétence. Utilisez la commande suivante avec précaution, car elle supprime le pod de l'itération précédente.kubectl -n uipath delete pod "$podName" --force.kubectl -n uipath delete pod "$podName" --force. - Créez le pod
skillstatuspodpour obtenir le statut de la compétence. Le pod peut prendre un certain temps pour extraire l'image et s'exécuter, généralement moins de 30 secondes.skill_arr="[]" kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-status' -d \"$skill_arr\" | jq -r '([\"SKILL_ID\",\"SKILL_NAME\", \"STATUS\"] | (., map(length*\"-\"))), (.data[] | [.skillId, .skillName, .syncStatus]) | @tsv' | column -ts $'\t'; exit"skill_arr="[]" kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-status' -d \"$skill_arr\" | jq -r '([\"SKILL_ID\",\"SKILL_NAME\", \"STATUS\"] | (., map(length*\"-\"))), (.data[] | [.skillId, .skillName, .syncStatus]) | @tsv' | column -ts $'\t'; exit"Remarque :- Remplacez
$skill_arrpar[]pour exécuter toutes les compétences, ou['abcd', 'efgh']pour exécuter uniquement les deux compétences mentionnées. - La sortie
skills idest nécessaire pour les prochaines commandes.
- Remplacez
- Vérifiez la sortie du statut de la compétence.
kubectl -n uipath logs -f "$podName" -c "$podName"kubectl -n uipath logs -f "$podName" -c "$podName"
Exécution de la migration des compétences
Pour exécuter la migration des compétences, procédez comme suit :
-
Configurez les variables pour l'exécution des commandes suivantes.
aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['AIC_JOBS_IMAGE']}") podName="skillsyncpod"aicJobsImage=$(kubectl -n uipath get configmap aic-jobs-config -o "jsonpath={.data['AIC_JOBS_IMAGE']}") podName="skillsyncpod" -
Nettoyez tout pod
skillsyncpodqui pourrait être en cours d'exécution avant de récupérer à nouveau le statut de la compétence. Utilisez la commande suivante avec précaution, car elle supprime le pod de l'itération précédente.kubectl -n uipath delete pod "$podName" --forcekubectl -n uipath delete pod "$podName" --force -
Lancez la synchronisation des compétences. Le pod peut prendre un certain temps pour extraire l'image et s'exécuter, généralement moins de 30 secondes.
kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-all' -d \"[\"skill_id1\", \"skill_id2\", .... ]\"; exit"kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c "curl -sSL -XPOST -H 'Content-Type: application/json' 'ai-deployer-svc.uipath.svc.cluster.local/ai-deployer/v1/system/mlskills:restore-all' -d \"[\"skill_id1\", \"skill_id2\", .... ]\"; exit"Remarque :Remplacez
skill idspar les valeurs copiées lors de la procédure Vérification du statut de la migration de compétences .Consultez l'exemple ci-dessous pour déclarer la variable
skill_arr:skill_arr='[\"fb14154a-ce63-43ab-yyyy-xxxxxxxxxxxxxx\", \"ad58942d-e038-4d38-yyyy-xxxxxxxxxxxx\"]' # Replace them with ML skill ids in your environment kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c -x "curl -sSL -XPOST -H 'Content-Type: application/json' '/ai-deployer/v1/system/mlskills:restore-all' -d \"$skill_arr\"; exit"skill_arr='[\"fb14154a-ce63-43ab-yyyy-xxxxxxxxxxxxxx\", \"ad58942d-e038-4d38-yyyy-xxxxxxxxxxxx\"]' # Replace them with ML skill ids in your environment kubectl -n uipath run "$podName" --image="$aicJobsImage" --restart=Never --labels="app.kubernetes.io/component=aicenter" --overrides='{ "metadata": { "annotations": {"sidecar.istio.io/inject": "false"}}}' --command -- /bin/bash -c -x "curl -sSL -XPOST -H 'Content-Type: application/json' '/ai-deployer/v1/system/mlskills:restore-all' -d \"$skill_arr\"; exit" -
Vérifiez la sortie du statut de synchronisation des compétences.
kubectl -n uipath logs -f "$podName" -c "$podName"kubectl -n uipath logs -f "$podName" -c "$podName" -
L'opération peut prendre beaucoup de temps selon le nombre de compétences à synchroniser, vous pouvez donc vérifier régulièrement le statut de migration des compétences jusqu'à ce qu'il n'y en ait plus à l'état
IN_PROGRESS.Remarque :Lors de la vérification du statut de la migration des compétences ou de l'exécution de la migration des compétences, vous couvrez toutes les compétences en même temps. Vous pouvez également effectuer ces opérations uniquement pour certaines compétences en ajoutant
-d "[skill_id1, skill_id2, .... ]"comme argument supplémentaire pourcurlà l'étape 3.
- Prérequis
- Vue d'ensemble du processus
- Migration de données et responsabilités
- Préparation
- Préparation du fichier cluster_config.json
- Registre privé sans conditions d'accès à Internet
- Registre privé avec conditions d'accès à Internet
- Exécution
- Migration des compétences AI Center
- Vérification du statut de la migration des compétences
- Exécution de la migration des compétences