automation-suite
2024.10
true
UiPath logo, featuring letters U and I in white
Guia de instalação do Automation Suite no Linux
Last updated 14 de nov de 2024

Migrating between Automation Suite clusters

About the cluster migration

You can migrate from one Automation Suite cluster to another if you use the uipath namespace instead of a custom namespace and want to move from one Automation Suite flavor to another. We support the following scenarios:
  • Migrate from Automation Suite on Linux to a new installation of Automation Suite on EKS/AKS or Automation Suite on OpenShift;

  • Migrate from Automation Suite on EKS/AKS to a new installation of Automation Suite on OpenShift;

  • Migrate from Automation Suite on OpenShift to a new installation of Automation Suite on EKS/AKS;

  • Migrate from Automation Suite on EKS to Automation Suite on AKS or from Automation Suite on AKS to Automation Suite on EKS.

Note that you can attempt to perform the migration operation multiple times with no impact on your existing cluster.

Os seguintes cenários de migração não são compatíveis:

  • Migrating from Automation Suite on Linux to an existing installation of Automation on EKS/AKS or Automation Suite on OpenShift;

  • Migrating an Automation Suite on OpenShift cluster to Automation Suite on Linux cluster.

Visão geral do processo

Etapa

Description

1.

Mandatory. Make sure you meet the migration requirements.

2.

Mandatory. Prepare the target cluster and the docker images for both source and target cluster.

Opcional. Se sua implantação estiver offline ou se você usar um registro de OCI privado, certifique-se de que as imagens necessárias estejam disponíveis.

3.

Mandatory. Start the migration, move the data, and run the Automation Suite installation.

4.

Optional. If AI Center is enabled on both the source and target clusters, migrate the skills.

Requisitos

To migrate from an Automation Suite cluster to another, you must meet the following requirements:

  • Download the following artifacts:

  • Você deve estabelecer conectividade entre os dois ambientes.

  • Você deve ter um objectstore externo configurado em seu cluster de origem. Se você usa armazenamento em cluster, consulte Migrando objectstore no cluster para objectstore externo.

  • If you migrate from Automation Suite on Linux, the version of your source cluster must be 2022.10 or newer.

  • If you migrate to Automation Suite on OpenShift, the version of your source cluster must be 2023.10 or newer.

  • Offline-only requirements: You must hydrate the target cluster.

Migração de dados e responsabilidades

Dados

Mecanismo de migração

StatusResponsabilidade

Sql

Mantido

Você tem duas opções:

  1. Reutilize os mesmos bancos de dados para a nova instalação. Aponte as strings de conexão do SQL da configuração do cluster para o servidor de banco de dados existente.

  2. Clone seus bancos de dados e use os clones.

Cliente

Registro do Docker

Não migrado

Se você usar um registro privado, você deve hidratar o registro de destino. Se você usar registry.uipath.com para o cluster de destino, nenhuma etapa adicional será necessária.)

Cliente

FQDN

Opcional

Você deve escolher um novo FQDN para o novo cluster. Opcionalmente, você pode reverter para o FQDN anterior se necessário.

Cliente
Certificados

Não migrado

Você deve trazer certificados como parte da nova instalação do cluster.

Cliente
Configuração de cluster

Não migrado

Você deve gerar o novo input.json aplicável ao tipo de cluster de destino (AKS ou EKS).
Cliente
Alertas e painéis personalizados criados pelos usuários

Não migrado

Você deve reconfigurar os alertas e painéis personalizados após a migração.

Cliente
Logs do aplicativo/configuração de streaming do Prometheus criada por usuários

Não migrado

Você deve reconfigurar o log do aplicativo e o streaming do Prometheus.

Cliente
Cargas de trabalho dinâmicas

Depende do aplicativo

Os trabalhos de treinamento do AI Center são perdidos; As habilidades são mantidas.

Habilidades (o script precisava ser executado após a atualização): UiPath®

Trabalhos de treinamento: cliente

Armazenamento de objeto

Objectstore externo: Retido

Para o Objectstore externo, você tem duas opções:

  1. Reutilize o armazenamento de objetos externo existente e conecte-o ao novo ambiente.

  2. Crie uma réplica do seu armazenamento de objetos atual e use-a para a nova configuração.

Importante: se você estiver usando um armazenamento de objetos no cluster, você deve executar uma migração do Ceph-para-externo antes da atualização.

Migração de no cluster para o Objectstore externo: Cliente

Objectstore externo: UiPath®

Insights

Mantido

UiPath®

Dados do MongoDB

Mantido

Os dados do MongoDB são movidos para o SQL de destino.

UiPath®

RabbitMQ

Não é necessário

UiPath®

Monitoramento (dados)

Não é necessário

Os dados de monitoramento não se aplicam ao novo cluster.

N/A

Preparing the cluster migration

Preparing the target cluster

Observação:

Não modifique o cluster de origem após iniciar o processo de migração.

To prepare the target cluster, take the following steps:

  1. Download the targeted version of cluster_config.json on the source cluster and generate the cluster_config.json file by running the following command:
    uipathctl manifest get-revisionuipathctl manifest get-revision
    For details, refer to the following diagram:
    docs image
  2. Based on the previously generated input.json file, modify the input.json file of the target cluster.

    Você deve transferir a configuração específica do Orchestrator que inclui e as configurações.

  3. Valide os pré-requisitos no cluster de destino executando o seguinte comando:
    uipathctl prereq run input-target.json --kubeconfig kubeconfig.target --versions versions.jsonuipathctl prereq run input-target.json --kubeconfig kubeconfig.target --versions versions.json
    Observação:
    input-target.json is the input.json file corresponding to the target cluster.
  4. Clone os bancos de dados SQL da implantação de origem para a implantação de destino.

Hydrating the OCI-compliant registry registry without internet access

O processo de migração requer que a tag de imagem uipathcore Docker mais recente esteja disponível para os clusters de origem e destino. Se seu cluster de origem estiver offline, disponibilize a imagem executando as seguintes etapas:
  1. Siga as etapas para hidratar o registro usado pelo cluster de destino com o pacote offline na Opção B: Hidratar o registro com o pacote offline.
  2. Copie o binário uipathctl e o arquivo versions.json em uma VM com acesso ao cluster de origem.
  3. Execute o seguinte comando:
    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
  4. Seed the uipathcore image from the registry of the target cluster to the registry of source cluster:
    ./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"
    Note: Make sure to update the command as follows:
    • Replace target.registry.fqdn.com, target.registry.fqdn.com, and target-registry-password with the proper values that correspond to the registry associated with the target cluster;
    • Replace source.registry.fqdn.com, source.registry.fqdn.com, and source-registry-password with the proper values that correspond to the registry associated with the source cluster.

Hydrating the OCI-compliant registry with internet access

If you use a private registry, you must seed it. For instructions, see .

Running the cluster migration

To migrate to the target Automation Suite cluster, take the following steps:

  1. Execute a migração executando o seguinte comando:
    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
  2. Complete the Automation Suite installation on the target cluster by running the following command:
    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

Migrating the AI Center skills

As etapas nesta seção serão aplicáveis apenas se você tiver habilitado o AI Center nos clusters de origem e de destino. Observe que as instruções presumem que o AI Center no cluster de destino aponta para o banco de dados que contém os dados de habilidades para executar as habilidades.

Depois de concluir a migração, você deve sincronizar as habilidades do AI Center para que você possa usá-las novamente.

Verificação do status da migração de habilidades

Para recuperar o status das habilidades no Automation Suite de destino no cluster EKS/AKS, siga as seguintes etapas:
  1. Configure as variáveis para executar os próximos comandos.
    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"
  2. Limpe qualquer skillstatuspod que possa estar em execução antes de recuperar o status das habilidades novamente. O seguinte comando exclui o pod da iteração anterior; portanto, use-o com cautela.
    kubectl -n <uipath> delete pod "$podName" --force.kubectl -n <uipath> delete pod "$podName" --force. 
  3. Crie o skillstatuspod para obter o status das habilidades. O pod pode levar algum tempo para puxar a imagem e ser executado, normalmente menos de 30 segundos.
    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"
    Observação:
    • Substitua $skill_arr por [] para executar todas as habilidades ou ['abcd', 'efgh'] para executar apenas as duas habilidades mencionadas.
    • A saída skills id é necessária para os próximos comandos.
  4. Verifique a saída do status das habilidades.
    kubectl -n <uipath> logs -f "$podName" -c "$podName"kubectl -n <uipath> logs -f "$podName" -c "$podName"

Execução da migração de habilidades

Para executar a migração de habilidades, siga as seguintes etapas:

  1. Configure as variáveis para executar os próximos comandos.
    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"
  2. Limpe qualquer skillsyncpod que possa estar em execução antes de recuperar o status das habilidades novamente. O seguinte comando exclui o pod da iteração anterior; portanto, use-o com cautela.
    kubectl -n uipath delete pod "$podName" --forcekubectl -n uipath delete pod "$podName" --force
  3. Inicie a sincronização de habilidades. O pod pode levar algum tempo para puxar a imagem e ser executado, normalmente menos de 30 segundos.
    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"
    Observação: Substitua skill ids pelos valores copiados durante o procedimento de Verificação do status de migração de habilidades .
    Check the example below for declaring the skill_arr variable:
    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"
  4. Verifique a saída do status da sincronização de habilidades.
    kubectl -n uipath logs -f "$podName" -c "$podName"kubectl -n uipath logs -f "$podName" -c "$podName"
  5. A operação pode levar um longo tempo, dependendo do número de habilidades a serem sincronizadas; portanto, você pode confiar no status da migração de habilidades para verificá-lo periodicamente até que não haja nenhuma habilidade no estado IN_PROGRESS.
Observação:
Ao verificar o status da migração de habilidades ou executar a migração de habilidades, você cobre todas as habilidades ao mesmo tempo. Ou então, você pode executar essas operações apenas para habilidades selecionadas passando -d "[skill_id1, skill_id2, .... ]" como um argumento extra para curl na etapa 3.

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White
Confiança e segurança
© 2005-2024 UiPath. Todos os direitos reservados.