- Visão geral
- Requisitos
- Pré-instalação
- Preparação da instalação
- Instalação e configuração do service mesh
- Baixando os pacotes de instalação
- Configuração do registro compatível com OCI
- Concessão de permissões de instalação
- Instalando e configurando a ferramenta GitOps
- Atendendo aos pré-requisitos do Process Mining
- Atendendo aos requisitos do Integration Service
- Aplicação de configurações diversas
- Executando o uipathctl
- Instalação
- Pós-instalação
- Migração e atualização
- Atualizando o Automação Suite
- Migração de produtos independentes para o Automation Suite
- Etapa 1: restauração do banco de dados de produtos independente
- Etapa 2: atualizar o esquema do banco de dados de produtos restaurado
- Etapa 3: migração dos dados da organização do Identity de independente para o Automation Suite
- Etapa 4: backup do banco de dados da plataforma no Automation Suite
- Etapa 5: mesclando organizações no Automation Suite
- Etapa 6: atualização das strings de conexão do produto migradas
- Etapa 7: migração do Orchestrator independente
- Etapa 8: migração do Insights independente
- Etapa 9: migração do Test Manager independente
- Etapa 10: exclusão do tenant padrão
- Executando uma migração de único tenant
- Migração entre clusters do Automation Suite
- Migração do Automation Suite no EKS/AKS para o Automation Suite no OpenShift
- Monitoramento e alertas
- Administração de cluster
- Configuração específica do produto
- Configuração avançada do Orchestrator
- Configuração de parâmetros do Orchestrator
- Configuração do AppSettings
- Configuração do tamanho máximo da solicitação
- Substituição da configuração de armazenamento no nível do cluster
- Configuração do NLog
- Salvando logs do robô no Elasticsearch
- Configuração dos repositórios de credenciais
- Configuração da chave de criptografia por tenant
- Limpeza do banco de dados do Orchestrator
- Ignorar a instalação da biblioteca do host
- Solução de problemas
- Não é possível acessar o Automation Hub após a atualização para o Automation Suite 2024.10.0
- Falha no provisionamento do AI Center após a atualização para a 2023.10 ou posterior
- Volumes do Insights criados em duas zonas diferentes após a migração
- Falha de atualização devido aos tamanhos de PVC do Insights substituídos
- A configuração de backup não funciona devido a uma falha na conexão com o Azure Government
- Pods no namespace uipath travaram ao habilitar taints de nó personalizado
- Não é possível iniciar o Automation Hub e o Apps com configuração de proxy
- O Robot não pode se conectar a uma instância do Automation Suite Orchestrator
- O streaming de logs não funciona em configurações de proxy
- O backup do Velero falha com o erro FailedValidation
- O acesso ao FQDN retorna RBAC: erro de acesso negado
Guia de instalação do Automation Suite no EKS/AKS
Você deve seguir as etapas nesta seção apenas se executar o instalador do Automation Suite com privilégios reduzidos. Se você puder executar o instalador com privilégios de administrador, não precisará seguir as instruções nesta seção.
Dapr e cert-manager não são mais requisitos para o Process Mining a partir do Automation Suite 2024.10.3.
Instalação do cert-manager
A instalação Dapr para o Process Mining requer cert-manager.
Você pode instalar o cert-manager por meio do Helm. Para obter instruções de instalação, consulte a documentação do cert-manager.
Desinstalando o Gerenciador de certificados
Você não deve remover esse recurso se o Task Mining estiver habilitado. O Task Mining depende do Cert Manager.
Pré-requisitos
- CLI do Kubectl (
kubectl) instalado e configurado. - Permissões apropriadas para excluir recursos nos namespaces de destino.
Informação necessária
Antes de prosseguir, você deve reunir as seguintes informações:
- Namespace UiPath onde os recursos do cert-manager estão sendo usados.
Processo de desinstalação passo a passo
- Exclua as associações de função para o cert-manager:
# Verify if the role binding exists kubectl get rolebinding -n <uipath_namespace> | grep cert-manager # If it exists, delete it kubectl delete rolebinding <role-binding-name> -n <uipath_namespace># Verify if the role binding exists kubectl get rolebinding -n <uipath_namespace> | grep cert-manager # If it exists, delete it kubectl delete rolebinding <role-binding-name> -n <uipath_namespace> - Exclua a função cert-manager:
# Check if the role exists kubectl get role cert-manager -n <uipath_namespace> | grep cert-manager # If it exists, delete it kubectl delete role <cert-manamger-role> -n <uipath_namespace># Check if the role exists kubectl get role cert-manager -n <uipath_namespace> | grep cert-manager # If it exists, delete it kubectl delete role <cert-manamger-role> -n <uipath_namespace> - Limpe os recursos cert-manager no namespace:
# Delete all certificates kubectl delete certificates.cert-manager.io --all -n <uipath_namespace> # Delete all issuers kubectl delete issuers.cert-manager.io --all -n <uipath_namespace> # Delete all clusterissuers if you created any kubectl delete clusterissuers.cert-manager.io --all# Delete all certificates kubectl delete certificates.cert-manager.io --all -n <uipath_namespace> # Delete all issuers kubectl delete issuers.cert-manager.io --all -n <uipath_namespace> # Delete all clusterissuers if you created any kubectl delete clusterissuers.cert-manager.io --all - Desinstale o cert-manager do cluster, exclua o namespace ou qualquer recurso de certificado restante seguindo as etapas 1, 2 e 3 para outros namespaces. Além disso, verifique se cert-manager não é usado por qualquer outro componente.
- Verifique os recursos restantes:
# Check for any remaining cert-manager resources kubectl get all -n <uipath_namespace> | grep cert-manager kubectl get crd | grep cert-manager# Check for any remaining cert-manager resources kubectl get all -n <uipath_namespace> | grep cert-manager kubectl get crd | grep cert-manager
Solução de problemas
Se alguns recursos não puderem ser excluídos:
- Certifique-se de que você tenha as permissões necessárias.
- Verifique se os recursos estão sendo usados por outros aplicativos.
- Para recursos que estão presos no estado Encerrando , você pode precisar remover os finalizadores.
Observações
- Desinstale o cert-manager apenas se ele não estiver sendo usado por outros aplicativos no seu cluster.
- Se vários aplicativos dependerem de cert-manager, considere apenas remover os recursos específicos da UiPath.
- Substitua
<uipath_namespace>por seu namespace UiPath real.
Instalando o Dapr
Para instalar o Dapr, execute os seguintes passos:
- Crie um segredo de extração de imagem no namespace.
<uipath>Para criar o segredo de extração de imagem, você pode usar seu fluxo de trabalho típico ou seguir as seguintes etapas:registry= <registry_url> #provide the registry where the UiPath images are hosted username= <user_name> #provide the username which will be used for the authentication password= <password> #provide the password which will be used for the authentication namespace= <namespace> #namespace where you want to create a secret kubectl create secret docker-registry uipathpullsecret --namespace=${namespace} \ --docker-server=${registry} --docker-username=${username} \ --docker-password=${password} --dry-run=client -o yaml \ | kubectl apply -f -registry= <registry_url> #provide the registry where the UiPath images are hosted username= <user_name> #provide the username which will be used for the authentication password= <password> #provide the password which will be used for the authentication namespace= <namespace> #namespace where you want to create a secret kubectl create secret docker-registry uipathpullsecret --namespace=${namespace} \ --docker-server=${registry} --docker-username=${username} \ --docker-password=${password} --dry-run=client -o yaml \ | kubectl apply -f - - Crie o aplicativo Argo usando o seguinte arquivo YAML:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: dapr namespace: <argo_namespace> spec: destination: namespace: <uipath_namespace> server: https://kubernetes.default.svc ignoreDifferences: - jsonPointers: - /data - /stringData - /metadata kind: Secret - group: apiextensions.k8s.io jsonPointers: - /spec/conversion kind: CustomResourceDefinition - group: admissionregistration.k8s.io jsonPointers: - /webhooks kind: MutatingWebhookConfiguration project: <project_name> source: chart: helm/dapr helm: valueFiles: - values.yaml values: | global: registry: <target-registry>/daprio imagePullSecrets: uipathpullsecret mtls: enabled: true prometheus: enabled: false logAsJson: true actors: enabled: false ha: enabled: false replicaCount: 1 rbac: namespaced: true seccompProfile: RuntimeDefault dapr_dashboard: enabled: false dapr_operator: watchInterval: 1m resources: requests: cpu: 100m memory: 100Mi limits: cpu: "1" memory: 200Mi watchNamespace: <uipath_namespace> deploymentAnnotations: sidecar.istio.io/inject: "false" dapr_sidecar_injector: allowedServiceAccounts: <uipath_namespace>:default resources: requests: cpu: 100m memory: 30Mi limits: cpu: "1" memory: 100Mi sidecarDropALLCapabilities: true deploymentAnnotations: sidecar.istio.io/inject: "false" dapr_sentry: resources: requests: cpu: 100m memory: 30Mi limits: cpu: "1" memory: 100Mi deploymentAnnotations: sidecar.istio.io/inject: "false" dapr_rbac: secretReader: enabled: false createClusterScopedObjects: true repoURL: <target-registry> targetRevision: <dapr-version> syncPolicy: automated: prune: true selfHeal: true retry: backoff: duration: 10s factor: 2 maxDuration: 1m limit: 1000 syncOptions: - CreateNamespace=true - RespectIgnoreDifferences=trueapiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: dapr namespace: <argo_namespace> spec: destination: namespace: <uipath_namespace> server: https://kubernetes.default.svc ignoreDifferences: - jsonPointers: - /data - /stringData - /metadata kind: Secret - group: apiextensions.k8s.io jsonPointers: - /spec/conversion kind: CustomResourceDefinition - group: admissionregistration.k8s.io jsonPointers: - /webhooks kind: MutatingWebhookConfiguration project: <project_name> source: chart: helm/dapr helm: valueFiles: - values.yaml values: | global: registry: <target-registry>/daprio imagePullSecrets: uipathpullsecret mtls: enabled: true prometheus: enabled: false logAsJson: true actors: enabled: false ha: enabled: false replicaCount: 1 rbac: namespaced: true seccompProfile: RuntimeDefault dapr_dashboard: enabled: false dapr_operator: watchInterval: 1m resources: requests: cpu: 100m memory: 100Mi limits: cpu: "1" memory: 200Mi watchNamespace: <uipath_namespace> deploymentAnnotations: sidecar.istio.io/inject: "false" dapr_sidecar_injector: allowedServiceAccounts: <uipath_namespace>:default resources: requests: cpu: 100m memory: 30Mi limits: cpu: "1" memory: 100Mi sidecarDropALLCapabilities: true deploymentAnnotations: sidecar.istio.io/inject: "false" dapr_sentry: resources: requests: cpu: 100m memory: 30Mi limits: cpu: "1" memory: 100Mi deploymentAnnotations: sidecar.istio.io/inject: "false" dapr_rbac: secretReader: enabled: false createClusterScopedObjects: true repoURL: <target-registry> targetRevision: <dapr-version> syncPolicy: automated: prune: true selfHeal: true retry: backoff: duration: 10s factor: 2 maxDuration: 1m limit: 1000 syncOptions: - CreateNamespace=true - RespectIgnoreDifferences=true
A tabela a seguir fornece mais informações sobre como substituir os espaços reservados no arquivo YAML por valores adequados para os respectivos parâmetros:
| Parâmetro | Espaço reservado | Description |
|---|---|---|
namespace |
|
|
|
|
| Namespace para o Automation Suite |
project |
|
|
|
|
| Registro do gráfico do Helm |
targetRevision |
| Versão do gráfico Dapr Helm do arquivo versions.json |
Se você instalar o Automation Suite em um cluster compartilhado e atualizar o FQDN após a instalação, você deve excluir e recriar o aplicativo Dapr executando as seguintes etapas:
- Na interface gráfica do ArgoCD, navegue até Dapr > Excluir.
- Instale o Dapr novamente seguindo todas as etapas nesta seção.
Geração do arquivo YAML do aplicativo por meio do script Bash
Você também pode usar o seguinte script do Bash para gerar o arquivo YAML do aplicativo:
#!/bin/bas
echo "Enter the namespace of argocd applications"
read argocd_namespace
echo "Enter the name of uipath namespace"
read uipath_namespace
if [[ "${argocd_namespace}" == "openshift-gitops" ]]; then
echo "Enter the argocd project name"
read project
else
project="default"
fi
echo "Enter the registry fqdn"
read registry_fqdn
echo "Enter the DAPR helm chart version"
read dapr_version
echo "-------------------- SUMMARY --------------------"
echo "Argocd Application namespace : $argocd_namespace"
echo "Uipath namespace : $uipath_namespace"
echo "Argocd Project name : $project"
echo "Helm registry FQDN : $registry_fqdn"
echo "DAPR Version : $dapr_version"
echo "------------- Application yaml file-------------"
echo -n "apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: dapr
namespace: $argocd_namespace
spec:
destination:
namespace: $uipath_namespace
server: https://kubernetes.default.svc
ignoreDifferences:
- jsonPointers:
- /data
- /stringData
- /metadata
kind: Secret
- group: apiextensions.k8s.io
jsonPointers:
- /spec/conversion
kind: CustomResourceDefinition
- group: admissionregistration.k8s.io
jsonPointers:
- /webhooks
kind: MutatingWebhookConfiguration
project: $project
source:
chart: helm/dapr
helm:
valueFiles:
- values.yaml
values: |
global:
registry: $registry_fqdn/daprio
imagePullSecrets: uipathpullsecret
mtls:
enabled: true
prometheus:
enabled: false
logAsJson: true
actors:
enabled: false
ha:
enabled: false
replicaCount: 1
rbac:
namespaced: true
seccompProfile: RuntimeDefault
dapr_dashboard:
enabled: false
dapr_operator:
watchInterval: 1m
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: "1"
memory: 200Mi
watchNamespace: $uipath_namespace
deploymentAnnotations:
sidecar.istio.io/inject: "false"
dapr_sidecar_injector:
allowedServiceAccounts: $uipath_namespace:default
resources:
requests:
cpu: 100m
memory: 30Mi
limits:
cpu: "1"
memory: 100Mi
sidecarDropALLCapabilities: true
deploymentAnnotations:
sidecar.istio.io/inject: "false"
dapr_sentry:
resources:
requests:
cpu: 100m
memory: 30Mi
limits:
cpu: "1"
memory: 100Mi
deploymentAnnotations:
sidecar.istio.io/inject: "false"
dapr_rbac:
secretReader:
enabled: false
createClusterScopedObjects: true
repoURL: $registry_fqdn
targetRevision: $dapr_version
syncPolicy:
automated:
prune: true
selfHeal: true
retry:
backoff:
duration: 10s
factor: 2
maxDuration: 1m
limit: 1000
syncOptions:
- CreateNamespace=true
- RespectIgnoreDifferences=true"
#!/bin/bas
echo "Enter the namespace of argocd applications"
read argocd_namespace
echo "Enter the name of uipath namespace"
read uipath_namespace
if [[ "${argocd_namespace}" == "openshift-gitops" ]]; then
echo "Enter the argocd project name"
read project
else
project="default"
fi
echo "Enter the registry fqdn"
read registry_fqdn
echo "Enter the DAPR helm chart version"
read dapr_version
echo "-------------------- SUMMARY --------------------"
echo "Argocd Application namespace : $argocd_namespace"
echo "Uipath namespace : $uipath_namespace"
echo "Argocd Project name : $project"
echo "Helm registry FQDN : $registry_fqdn"
echo "DAPR Version : $dapr_version"
echo "------------- Application yaml file-------------"
echo -n "apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: dapr
namespace: $argocd_namespace
spec:
destination:
namespace: $uipath_namespace
server: https://kubernetes.default.svc
ignoreDifferences:
- jsonPointers:
- /data
- /stringData
- /metadata
kind: Secret
- group: apiextensions.k8s.io
jsonPointers:
- /spec/conversion
kind: CustomResourceDefinition
- group: admissionregistration.k8s.io
jsonPointers:
- /webhooks
kind: MutatingWebhookConfiguration
project: $project
source:
chart: helm/dapr
helm:
valueFiles:
- values.yaml
values: |
global:
registry: $registry_fqdn/daprio
imagePullSecrets: uipathpullsecret
mtls:
enabled: true
prometheus:
enabled: false
logAsJson: true
actors:
enabled: false
ha:
enabled: false
replicaCount: 1
rbac:
namespaced: true
seccompProfile: RuntimeDefault
dapr_dashboard:
enabled: false
dapr_operator:
watchInterval: 1m
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: "1"
memory: 200Mi
watchNamespace: $uipath_namespace
deploymentAnnotations:
sidecar.istio.io/inject: "false"
dapr_sidecar_injector:
allowedServiceAccounts: $uipath_namespace:default
resources:
requests:
cpu: 100m
memory: 30Mi
limits:
cpu: "1"
memory: 100Mi
sidecarDropALLCapabilities: true
deploymentAnnotations:
sidecar.istio.io/inject: "false"
dapr_sentry:
resources:
requests:
cpu: 100m
memory: 30Mi
limits:
cpu: "1"
memory: 100Mi
deploymentAnnotations:
sidecar.istio.io/inject: "false"
dapr_rbac:
secretReader:
enabled: false
createClusterScopedObjects: true
repoURL: $registry_fqdn
targetRevision: $dapr_version
syncPolicy:
automated:
prune: true
selfHeal: true
retry:
backoff:
duration: 10s
factor: 2
maxDuration: 1m
limit: 1000
syncOptions:
- CreateNamespace=true
- RespectIgnoreDifferences=true"
Desinstalando o Dapr
Você não deve remover esse recurso se o Task Mining estiver habilitado. O Task Mining depende do Dapr.
Pré-requisitos
- CLI do Kubectl (
kubectl) instalado e configurado. - Permissões apropriadas para excluir recursos nos namespaces de destino.
Informação necessária
Antes de prosseguir, você deve reunir as seguintes informações:
- Namespace UiPath onde o Dapr é instalado.
- Namespace ArgoCD (normalmente
argocdouopenshift-gitops).
Processo de desinstalação passo a passo
-
Exclua o aplicativo Dapr do ArgoCD:
# Verify the application exists first kubectl get application.argoproj.io dapr -n <argocd_namespace> # If it exists, delete it kubectl delete application.argoproj.io dapr -n <argocd_namespace># Verify the application exists first kubectl get application.argoproj.io dapr -n <argocd_namespace> # If it exists, delete it kubectl delete application.argoproj.io dapr -n <argocd_namespace>Aguarde a exclusão dos recursos.
-
Excluir recursos personalizados Dapr:
# Delete all Dapr components in the UiPath namespace kubectl delete components.dapr.io --all -n <uipath_namespace> # Delete all Dapr configurations in the UiPath namespace kubectl delete configurations.dapr.io --all -n <uipath_namespace> # Delete all Dapr resiliencies in the UiPath namespace kubectl delete resiliencies.dapr.io --all -n <uipath_namespace> # Delete all Dapr subscriptions in the UiPath namespace kubectl delete subscriptions.dapr.io --all -n <uipath_namespace># Delete all Dapr components in the UiPath namespace kubectl delete components.dapr.io --all -n <uipath_namespace> # Delete all Dapr configurations in the UiPath namespace kubectl delete configurations.dapr.io --all -n <uipath_namespace> # Delete all Dapr resiliencies in the UiPath namespace kubectl delete resiliencies.dapr.io --all -n <uipath_namespace> # Delete all Dapr subscriptions in the UiPath namespace kubectl delete subscriptions.dapr.io --all -n <uipath_namespace> -
Excluir as definições de recursos personalizados (CRDs) do Dapr:
# Delete Dapr CRDs kubectl delete crd components.dapr.io kubectl delete crd configurations.dapr.io kubectl delete crd resiliencies.dapr.io kubectl delete crd subscriptions.dapr.io# Delete Dapr CRDs kubectl delete crd components.dapr.io kubectl delete crd configurations.dapr.io kubectl delete crd resiliencies.dapr.io kubectl delete crd subscriptions.dapr.io -
Remova as configurações do webhook do Dapr:
# Delete the Dapr sidecar injector webhook kubectl delete mutatingwebhookconfigurations dapr-sidecar-injector# Delete the Dapr sidecar injector webhook kubectl delete mutatingwebhookconfigurations dapr-sidecar-injector -
Remover associações de função específicas de Dapr
# Verify if the role binding exists kubectl get rolebinding -n <uipath_namespace> | grep dapr # If it exists, delete dapr specific role binding kubectl delete rolebinding <dapr-role-binding> -n <uipath_namespace># Verify if the role binding exists kubectl get rolebinding -n <uipath_namespace> | grep dapr # If it exists, delete dapr specific role binding kubectl delete rolebinding <dapr-role-binding> -n <uipath_namespace> -
Remova funções específicas de Dapr:
# Check if the dapr-creator role exists kubectl get role -n <uipath_namespace> | grep dapr # If it exists, delete dapr specific rolekubectl delete role <dapr-role> -n <uipath_namespace># Check if the dapr-creator role exists kubectl get role -n <uipath_namespace> | grep dapr # If it exists, delete dapr specific rolekubectl delete role <dapr-role> -n <uipath_namespace> -
Limpar recursos restantes do Dapr
- Pods:
# List all Dapr-related pods kubectl get pods -n <uipath_namespace> | grep dapr # Delete each Dapr pod if any kubectl delete pod <pod_name> -n <uipath_namespace># List all Dapr-related pods kubectl get pods -n <uipath_namespace> | grep dapr # Delete each Dapr pod if any kubectl delete pod <pod_name> -n <uipath_namespace> - Serviços:
# List all Dapr-related services kubectl get svc -n <uipath_namespace> | grep dapr # Delete each Dapr service if any kubectl delete svc <service_name> -n <uipath_namespace># List all Dapr-related services kubectl get svc -n <uipath_namespace> | grep dapr # Delete each Dapr service if any kubectl delete svc <service_name> -n <uipath_namespace> - Implantações:
# List all Dapr-related deployments kubectl get deployments -n <uipath_namespace> | grep dapr # Delete each Dapr deployment kubectl delete deployment <deployment_name> -n <uipath_namespace># List all Dapr-related deployments kubectl get deployments -n <uipath_namespace> | grep dapr # Delete each Dapr deployment kubectl delete deployment <deployment_name> -n <uipath_namespace>
- Pods:
Verificação
Após concluir todas as etapas de desinstalação, verifique se todos os componentes Dapr foram removidos:
# Check for any remaining Dapr resources
kubectl get pods -n <uipath_namespace> | grep dapr
kubectl get svc -n <uipath_namespace> | grep dapr
kubectl get deployments -n <uipath_namespace> | grep dapr
kubectl get crd | grep dapr
# Check for any remaining Dapr resources
kubectl get pods -n <uipath_namespace> | grep dapr
kubectl get svc -n <uipath_namespace> | grep dapr
kubectl get deployments -n <uipath_namespace> | grep dapr
kubectl get crd | grep dapr
Solução de problemas
Se alguns recursos não puderem ser excluídos:
- Certifique-se de que você tenha as permissões necessárias.
- Verifique se os recursos estão sendo gerenciados por outro controlador.
- Investigue quaisquer dependências que possam estar impedindo a exclusão.
Observações
- Substitua
<uipath_namespace>por seu namespace UiPath real. - Substitua
<argocd_namespace>por seu namespace do ArgoCD real. - Tenha cuidado ao excluir recursos compartilhados que possam afetar outros aplicativos.
- Instalação do cert-manager
- Desinstalando o Gerenciador de certificados
- Pré-requisitos
- Informação necessária
- Processo de desinstalação passo a passo
- Solução de problemas
- Observações
- Instalando o Dapr
- Geração do arquivo YAML do aplicativo por meio do script Bash
- Desinstalando o Dapr
- Pré-requisitos
- Informação necessária
- Processo de desinstalação passo a passo
- Verificação
- Solução de problemas
- Observações