automation-suite
2023.10
false
Guia de instalação do Automation Suite no EKS/AKS
- Visão geral
- Requisitos
- Instalação
- Pós-instalação
- Migração e atualização
- Atualização do Automation Suite no EKS/AKS
- Etapa 1: mover os dados da organização do Identity, de independente para o Automation Suite
- Etapa 2: restauração do banco de dados de produtos independente
- Etapa 3: backup do banco de dados da plataforma no Automation Suite
- Etapa 4: mesclando organizações no Automation Suite
- Etapa 5: atualização das strings de conexão do produto migradas
- Etapa 6: migração do Orchestrator independente
- Etapa 7: migração do Insights independente
- Etapa 8: migração do Test Manager independente
- Etapa 9: exclusão do tenant padrão
- Executando uma migração de único tenant
- Migração do Automation Suite no Linux para o Automation Suite no EKS/AKS
- Monitoramento e alertas
- Administração de cluster
- Configuração específica do produto
- Configuração de parâmetros do Orchestrator
- Configurações de aplicativo 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 dos repositórios de credenciais
- Configuração da chave de criptografia por tenant
- Limpeza do banco de dados do Orchestrator
- Solução de problemas
- Como encaminhar logs do aplicativo para o Splunk
- Como trabalhar com certificados
- Como coletar dados de uso de DU com objectstore (Ceph) no cluster
- Como desinstalar o Automation Suite
- 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
- Os pods não podem se comunicar com o FQDN em um ambiente de proxy
- A cadeia de caracteres de conexão SQL da Automação de Teste é ignorada
- Falha de backup do EKS devido à versão do Velero
- O backup do Velero falha com o erro FailedValidation
- O acesso ao FQDN retorna o erro de acesso negado do RBAC
- Migreção manual do ArgoCD NetworkPolicy (GHSA-47m3-95c7-g2g8)
Importante :
A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.
Como coletar dados de uso de DU com objectstore (Ceph) no cluster
Colete dados de uso do Document Understanding ao usar o objectstore (Ceph) no cluster no Automation Suite no EKS/AKS.
Esta seção explica como coletar dados de uso do Document Understanding (DU) ao usar o Objectstore no cluster (Ceph).
Siga as seguintes etapas:
- Antes de executar o script do coletor de DU, certifique-se de atualizar os seguintes valores:
<REGISTRY>:- Use
localhost:30071para implantações offline. - Use
registry.uipath.compara implantações online. - Use seu URL de registro externo para registros privados.
- Use
<TAG>: abraversions.jsone localize a tag de imagemsf-k8-utils-rhel. Use essa tag para substituir<TAG>no script.
- Execute o script do coletor de uso de DU após atualizar os valores, da seguinte forma:
NAMESPACE="rook-ceph" POD_NAME="du-usage-collector" SECRET_NAME="ceph-object-store-secret" LOCAL_TAR="du-usage.tar.gz" MOUNTED_SECRET_PATH="/rook-secret" TARGET_PATH="aistorage/org-00000000-0000-0000-0000-000000000001/tenant-00000000-0000-0000-0000-000000000001" BUCKET_NAME="ai-storage" IMAGE="<REGISTRY>/uipath/sf-k8-utils-rhel:<TAG>" echo "[*] Removing pod $POD_NAME in namespace $NAMESPACE..." kubectl delete pod "$POD_NAME" -n "$NAMESPACE" --ignore-not-found=true echo "[*] Creating pod $POD_NAME in namespace $NAMESPACE..." kubectl apply -n "$NAMESPACE" -f - <<EOF apiVersion: v1 kind: Pod metadata: name: $POD_NAME namespace: $NAMESPACE spec: restartPolicy: Never containers: - name: sleep image: $IMAGE command: ["bash", "-c", "echo 'Main container started, sleeping...'; sleep 3600"] volumeMounts: - name: output mountPath: /output initContainers: - name: du-usage-collector image: $IMAGE command: ["/bin/bash", "-c"] args: - | set -euo pipefail echo "[*] Extracting Ceph secret values..." ACCESS_KEY=\$(cat $MOUNTED_SECRET_PATH/OBJECT_STORAGE_ACCESSKEY) SECRET_KEY=\$(cat $MOUNTED_SECRET_PATH/OBJECT_STORAGE_SECRETKEY) HOST=\$(cat $MOUNTED_SECRET_PATH/OBJECT_STORAGE_INTERNAL_SERVICE) PORT=\$(cat $MOUNTED_SECRET_PATH/OBJECT_STORAGE_PORT) export AWS_ACCESS_KEY_ID=\$ACCESS_KEY export AWS_SECRET_ACCESS_KEY=\$SECRET_KEY echo "[*] Syncing from s3://$BUCKET_NAME/$TARGET_PATH ..." mkdir -p /tmp/download s3cmd sync s3://$BUCKET_NAME/$TARGET_PATH/ /tmp/download/ \ --host=\$HOST:\$PORT --host-bucket= --no-ssl --no-check-certificate echo "[*] Creating archive..." mkdir -p /output tar -czf /output/du-usage.tar.gz -C /tmp/download . echo "[-] Archive ready at /output/du-usage.tar.gz" volumeMounts: - name: rook-secret mountPath: $MOUNTED_SECRET_PATH readOnly: true - name: output mountPath: /output volumes: - name: rook-secret secret: secretName: $SECRET_NAME optional: false - name: output emptyDir: {} EOF echo "[*] Waiting for pod to be Running..." for i in {1..30}; do phase=$(kubectl get pod "$POD_NAME" -n "$NAMESPACE" -o jsonpath="{.status.phase}") if [[ "$phase" == "Running" ]]; then echo "Pod is Running." break fi echo "[$i] Still waiting..." sleep 5 done echo -e "\nArchive will be saved as: $LOCAL_TAR\n\n" echo "[*] Copying archive from pod to local..." kubectl cp "$NAMESPACE/$POD_NAME:/output/du-usage.tar.gz" "$LOCAL_TAR"NAMESPACE="rook-ceph" POD_NAME="du-usage-collector" SECRET_NAME="ceph-object-store-secret" LOCAL_TAR="du-usage.tar.gz" MOUNTED_SECRET_PATH="/rook-secret" TARGET_PATH="aistorage/org-00000000-0000-0000-0000-000000000001/tenant-00000000-0000-0000-0000-000000000001" BUCKET_NAME="ai-storage" IMAGE="<REGISTRY>/uipath/sf-k8-utils-rhel:<TAG>" echo "[*] Removing pod $POD_NAME in namespace $NAMESPACE..." kubectl delete pod "$POD_NAME" -n "$NAMESPACE" --ignore-not-found=true echo "[*] Creating pod $POD_NAME in namespace $NAMESPACE..." kubectl apply -n "$NAMESPACE" -f - <<EOF apiVersion: v1 kind: Pod metadata: name: $POD_NAME namespace: $NAMESPACE spec: restartPolicy: Never containers: - name: sleep image: $IMAGE command: ["bash", "-c", "echo 'Main container started, sleeping...'; sleep 3600"] volumeMounts: - name: output mountPath: /output initContainers: - name: du-usage-collector image: $IMAGE command: ["/bin/bash", "-c"] args: - | set -euo pipefail echo "[*] Extracting Ceph secret values..." ACCESS_KEY=\$(cat $MOUNTED_SECRET_PATH/OBJECT_STORAGE_ACCESSKEY) SECRET_KEY=\$(cat $MOUNTED_SECRET_PATH/OBJECT_STORAGE_SECRETKEY) HOST=\$(cat $MOUNTED_SECRET_PATH/OBJECT_STORAGE_INTERNAL_SERVICE) PORT=\$(cat $MOUNTED_SECRET_PATH/OBJECT_STORAGE_PORT) export AWS_ACCESS_KEY_ID=\$ACCESS_KEY export AWS_SECRET_ACCESS_KEY=\$SECRET_KEY echo "[*] Syncing from s3://$BUCKET_NAME/$TARGET_PATH ..." mkdir -p /tmp/download s3cmd sync s3://$BUCKET_NAME/$TARGET_PATH/ /tmp/download/ \ --host=\$HOST:\$PORT --host-bucket= --no-ssl --no-check-certificate echo "[*] Creating archive..." mkdir -p /output tar -czf /output/du-usage.tar.gz -C /tmp/download . echo "[-] Archive ready at /output/du-usage.tar.gz" volumeMounts: - name: rook-secret mountPath: $MOUNTED_SECRET_PATH readOnly: true - name: output mountPath: /output volumes: - name: rook-secret secret: secretName: $SECRET_NAME optional: false - name: output emptyDir: {} EOF echo "[*] Waiting for pod to be Running..." for i in {1..30}; do phase=$(kubectl get pod "$POD_NAME" -n "$NAMESPACE" -o jsonpath="{.status.phase}") if [[ "$phase" == "Running" ]]; then echo "Pod is Running." break fi echo "[$i] Still waiting..." sleep 5 done echo -e "\nArchive will be saved as: $LOCAL_TAR\n\n" echo "[*] Copying archive from pod to local..." kubectl cp "$NAMESPACE/$POD_NAME:/output/du-usage.tar.gz" "$LOCAL_TAR" - Depois de recuperar o arquivo, exclua o pod:
kubectl delete pod "$POD_NAME" -n "$NAMESPACE"kubectl delete pod "$POD_NAME" -n "$NAMESPACE"
O arquivo du-usage.tar.gz contém os dados de uso do DU.