- Visão geral
- Requisitos
- Pré-instalação
- Preparação da instalação
- Baixando os pacotes de instalação
- Configuração do registro compatível com OCI
- Concessão de permissões de instalação
- Instalação e configuração do service mesh
- Instalando e configurando a ferramenta GitOps
- Instalando o operador de segredos externos no Kubernetes
- Aplicação de configurações diversas
- Executando o uipathctl
- Instalação
- Pós-instalação
- Migração e atualização
- 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
- AI Trust Layer
- Solução de problemas
- 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
- Os componentes de backup do Velero permanecem após a atualização no AKS do Automation Suite 2024.10.x
- 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 backup do Velero falha com o erro FailedValidation
- Solução de problemas de segredos externos
- Solução de problemas de Temporal como um serviço
- Os pods do AI Center e do Document Understanding falham ao iniciar com a verificação do certificado TLS habilitada
- Erros de validação de certificado TLS
- O Fluentd não exporta logs em ambientes IPv6
- O Studio Desktop não pode carregar conectores e atividades do Integration Service
- Migreção manual do ArgoCD NetworkPolicy (GHSA-47m3-95c7-g2g8)
- Configuração de solicitações e limites de recursos para cargas de trabalho criadas pelo uipathctl
Concessão de permissões de instalação
Conceda as permissões necessárias para a instalação do Automation Suite no EKS/AKS.
As permissões de instalação são relevantes apenas se você não puder fornecer privilégios de administrador ao instalador do Automation Suite. Se você puder fornecer os privilégios de administrador necessários ao instalador, você não precisará seguir as instruções nesta seção.
O Automation Suite depende de permissões específicas durante a instalação. Essas permissões são atribuídas à conta de serviço, que desempenha um papel fundamental na instalação dos vários componentes do Automation Suite.
Para configurar todas as permissões necessárias para a instalação, execute as etapas nesta seção.
Etapa 1: criação de uma conta de serviço
Para criar uma conta de serviço, siga os seguintes passos:
- Crie o namespace
<uipath>:kubectl create namespace <uipath>kubectl create namespace <uipath> - Crie uma conta de serviço chamada
uipathadmin:kubectl create serviceaccount uipathadmin -n <uipath>kubectl create serviceaccount uipathadmin -n <uipath> - Use a função de cluster
adminexistente para conceder permissões de administrador à conta de serviçouipathadminno namespace.<uipath>kubectl create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin -n <uipath>kubectl create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin -n <uipath>
Etapa 2: criação das funções necessárias
A conta de serviço uipathadmin requer certas permissões durante a instalação do Automation Suite. Você fornece as permissões necessárias criando funções. Para criar cada função, salve sua configuração como um arquivo YAML e execute o seguinte comando, substituindo o espaço reservado <file_name.yaml> pelo nome real do arquivo YAML:
kubectl apply -f <file_name.yaml>
kubectl apply -f <file_name.yaml>
Você pode criar o arquivo YAML para cada função copiando a configuração das seções a seguir.
Consultar o namespace [somente leitura]
Obrigatório para verificar se os namespaces, como o namespace <istio-system> , estão disponíveis ou não.
O seguinte exemplo mostra a configuração do ClusterRole namespace-reader-clusterrole :
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: namespace-reader-clusterrole
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: namespace-reader-clusterrole
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get"]
Listar nós e CRDs [somente leitura]
A verificação de pré-requisitos e a ferramenta de verificação de integridade de diagnóstico exigem essa permissão para realizar validações de nós, como a capacidade disponível no nó.
O seguinte exemplo mostra a configuração do ClusterRole list-nodes-and-crd-clusterrole :
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: list-nodes-and-crd-clusterrole
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["list", "get"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
verbs: ["list"]
- apiGroups: ["metrics.k8s.io"]
resources: ["nodes"]
verbs: ["list", "get"]
- apiGroups: ["scheduling.k8s.io"]
resources: ["priorityclasses"]
verbs: ["get"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: list-nodes-and-crd-clusterrole
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["list", "get"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
verbs: ["list"]
- apiGroups: ["metrics.k8s.io"]
resources: ["nodes"]
verbs: ["list", "get"]
- apiGroups: ["scheduling.k8s.io"]
resources: ["priorityclasses"]
verbs: ["get"]
Se essas permissões não estiverem disponíveis em seu cluster, os Automation Suite Robots não poderão determinar automaticamente o número máximo de trabalhos simultâneos. Para definir o limite explicitamente, configure concurrency_limit na asrobots seção input.json de. Para obter detalhes, consulte Configuração específica do Automation Suite Robots.
Obter classes de armazenamento [somente leitura]
A ferramenta de verificação de pré-requisitos e de verificação de integridade do diagnóstico requer essa permissão para executar as validações.
O seguinte exemplo mostra a configuração do ClusterRole storage-class-reader :
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: storage-class-reader
rules:
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get"]
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: storage-class-reader
rules:
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get"]
uipath funções [gravar]
A maior parte da instalação do Automation Suite é executada por meio do ArgoCD; no entanto, alguns componentes são instalados por meio de gráficos do Helm.
A ferramenta uipathctl executa um trabalho de instalação que executa a instalação do gráfico do Helm. Conectar-se ao kube-api-server e instalar o gráfico do Helm no namespace <uipath> requer uma função de criador de funções no nível do namespace.
O seguinte exemplo mostra a configuração da função uipath-automationsuite-role :
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: uipath-automationsuite-role
namespace: <uipath>
rules:
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["roles", "rolebindings"]
verbs: ["*"]
- apiGroups: ["*"]
resources: ["secrets", "configmaps"]
verbs: ["get", "watch", "list", "patch", "update", "create"]
- apiGroups: ["security.istio.io", "networking.istio.io"]
resources: ["*"]
verbs: ["*"]
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: uipath-automationsuite-role
namespace: <uipath>
rules:
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["roles", "rolebindings"]
verbs: ["*"]
- apiGroups: ["*"]
resources: ["secrets", "configmaps"]
verbs: ["get", "watch", "list", "patch", "update", "create"]
- apiGroups: ["security.istio.io", "networking.istio.io"]
resources: ["*"]
verbs: ["*"]
<istio-system> funções [gravar]
Forneça essas permissões apenas se você quiser que o instalador configure o plug-in do HASM. Caso contrário, não forneça as permissões.
As seguintes operações são realizadas no namespace. <istio-system>
- A ferramenta de verificação de pré-requisitos do Automation Suite lê pods e serviços para validar se o Istio está instalado e configurado corretamente.
- O Automation Suite instala o plug-in Warm para configurar regras de roteamento baseadas em caminho. Isso requer a criação de um segredo de extração de imagem e permissões de criador de função no nível do namespace.
O seguinte exemplo mostra a configuração da função istio-system-automationsuite-role :
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: istio-system-automationsuite-role
namespace: <istio-system>
rules:
- apiGroups: [""]
resources: ["services", "pods"]
verbs: ["list"]
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["roles", "rolebindings"]
verbs: ["*"]
- apiGroups: ["*"]
resources: ["secrets", "configmaps"]
verbs: ["get", "watch", "list", "patch", "update", "create"]
- apiGroups: ["networking.istio.io", "extensions.istio.io"]
resources: ["*"]
verbs: ["*"]
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: istio-system-automationsuite-role
namespace: <istio-system>
rules:
- apiGroups: [""]
resources: ["services", "pods"]
verbs: ["list"]
- apiGroups: ["rbac.authorization.k8s.io"]
resources: ["roles", "rolebindings"]
verbs: ["*"]
- apiGroups: ["*"]
resources: ["secrets", "configmaps"]
verbs: ["get", "watch", "list", "patch", "update", "create"]
- apiGroups: ["networking.istio.io", "extensions.istio.io"]
resources: ["*"]
verbs: ["*"]
<istio-system> funções [somente leitura]
Forneça essas permissões se o Istio e o plug-in do Warm já estiverem configurados.
As seguintes operações são realizadas no namespace. <istio-system>
- Leia pods e serviços para validar a instalação do Istio.
- A permissão
get secretsé necessária para copiar o arquivo de certificado do namespace<istio-system>para o namespace<uipath>.
O seguinte exemplo mostra a configuração da função istio-system-automationsuite-role :
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: istio-system-automationsuite-role
namespace: <istio-system>
rules:
- apiGroups: [""]
resources: ["services", "pods"]
verbs: ["list"]
- apiGroups: ["*"]
resources: ["secrets"]
resourceNames: ["istio-ingressgateway-certs"]
verbs: ["get"]
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: istio-system-automationsuite-role
namespace: <istio-system>
rules:
- apiGroups: [""]
resources: ["services", "pods"]
verbs: ["list"]
- apiGroups: ["*"]
resources: ["secrets"]
resourceNames: ["istio-ingressgateway-certs"]
verbs: ["get"]
Etapa 3: vinculando as funções
Você deve vincular as funções que você criou na etapa anterior à conta de serviço uipathadmin , executando os seguintes comandos:
kubectl -n <istio-system> create rolebinding istio-system-automationsuite-rolebinding \
--role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
kubectl -n <istio-system> create rolebinding namespace-reader-rolebinding \
--clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
kubectl -n <uipath> create clusterrolebinding list-nodes-and-crd-rolebinding \
--clusterrole=list-nodes-and-crd-clusterrole --serviceaccount=<uipath>:uipathadmin
kubectl -n <uipath> create rolebinding uipath-automationsuite-rolebinding \
--role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin
kubectl -n <uipath> create clusterrolebinding storage-class-reader-binding \
--clusterrole=storage-class-reader --serviceaccount=<uipath>:uipathadmin
# This step is needed only if you want installer to configure the WASM Plugin. Otherwise skip it.
kubectl -n <istio-system> create rolebinding uipadmin-istio-system \
--clusterrole=admin --serviceaccount=<uipath>:uipathadmin
kubectl -n <istio-system> create rolebinding istio-system-automationsuite-rolebinding \
--role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
kubectl -n <istio-system> create rolebinding namespace-reader-rolebinding \
--clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
kubectl -n <uipath> create clusterrolebinding list-nodes-and-crd-rolebinding \
--clusterrole=list-nodes-and-crd-clusterrole --serviceaccount=<uipath>:uipathadmin
kubectl -n <uipath> create rolebinding uipath-automationsuite-rolebinding \
--role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin
kubectl -n <uipath> create clusterrolebinding storage-class-reader-binding \
--clusterrole=storage-class-reader --serviceaccount=<uipath>:uipathadmin
# This step is needed only if you want installer to configure the WASM Plugin. Otherwise skip it.
kubectl -n <istio-system> create rolebinding uipadmin-istio-system \
--clusterrole=admin --serviceaccount=<uipath>:uipathadmin
Etapa 4: geração do arquivo kubeconfig
Após atribuir todas as permissões à conta de serviço, você deve criar um arquivo kubeconfig para passar à ferramenta uipathctl para a instalação.
Gerando o arquivo kubeconfig no Linux ou Mac
Para gerar o arquivo kubeconfig no Linux ou Mac, execute os seguintes comandos:
# Create a token
token="$(kubectl -n <uipath> create token uipathadmin --duration=8760h)"
# copy current kubeconfig to a temp file
mkdir temp
cp ~/.kube/config temp/kubeconfig.tmp
# Find the user name and unset it in the temp file
kube_user_name="$(kubectl config view -o jsonpath="{.users[0].name}")"
kubectl -n <uipath> config unset users."${kube_user_name}" --kubeconfig="temp/kubeconfig.tmp"
# Update the credentials in the temp file
kubectl -n <uipath> --kubeconfig="temp/kubeconfig.tmp" config set-credentials uipathadmin --token="$token"
# Set the context and the namespace
kubectl --kubeconfig="temp/kubeconfig.tmp" config set-context --current --namespace=<uipath> --user=uipathadmin
mv temp/kubeconfig.tmp temp/uipathadminkubeconfig
# Create a token
token="$(kubectl -n <uipath> create token uipathadmin --duration=8760h)"
# copy current kubeconfig to a temp file
mkdir temp
cp ~/.kube/config temp/kubeconfig.tmp
# Find the user name and unset it in the temp file
kube_user_name="$(kubectl config view -o jsonpath="{.users[0].name}")"
kubectl -n <uipath> config unset users."${kube_user_name}" --kubeconfig="temp/kubeconfig.tmp"
# Update the credentials in the temp file
kubectl -n <uipath> --kubeconfig="temp/kubeconfig.tmp" config set-credentials uipathadmin --token="$token"
# Set the context and the namespace
kubectl --kubeconfig="temp/kubeconfig.tmp" config set-context --current --namespace=<uipath> --user=uipathadmin
mv temp/kubeconfig.tmp temp/uipathadminkubeconfig
Se a operação tiver sido bem-sucedida, você deverá ver um arquivo kubeconfig chamado uipathadminkubeconfig.
Gerando o arquivo kubeconfig no Windows
Você deve executar essa etapa usando o Windows Powershell.
Para gerar o arquivo kubeconfig no Windows, execute os seguintes comandos:
# Create a token
$token = kubectl -n <uipath> create token uipathadmin --duration=8760h
# copy current kubeconfig to a temp file
mkdir temp
cp ~/.kube/config temp/kubeconfig.tmp
# Find the user name and unset it in the temp file
$kube_user_name = kubectl config view -o jsonpath="{.users[0].name}"
kubectl -n <uipath> config unset users."${kube_user_name}" --kubeconfig="temp/kubeconfig.tmp"
# Update the credentials in the temp file
kubectl -n <uipath> --kubeconfig="temp/kubeconfig.tmp" config set-credentials uipathadmin --token="$token"
# Set the context and the namespace
kubectl --kubeconfig="temp/kubeconfig.tmp" config set-context --current --namespace=<uipath> --user=uipathadmin
mv temp/kubeconfig.tmp temp/uipathadminkubeconfig
# Create a token
$token = kubectl -n <uipath> create token uipathadmin --duration=8760h
# copy current kubeconfig to a temp file
mkdir temp
cp ~/.kube/config temp/kubeconfig.tmp
# Find the user name and unset it in the temp file
$kube_user_name = kubectl config view -o jsonpath="{.users[0].name}"
kubectl -n <uipath> config unset users."${kube_user_name}" --kubeconfig="temp/kubeconfig.tmp"
# Update the credentials in the temp file
kubectl -n <uipath> --kubeconfig="temp/kubeconfig.tmp" config set-credentials uipathadmin --token="$token"
# Set the context and the namespace
kubectl --kubeconfig="temp/kubeconfig.tmp" config set-context --current --namespace=<uipath> --user=uipathadmin
mv temp/kubeconfig.tmp temp/uipathadminkubeconfig
Se a operação tiver sido bem-sucedida, você deve ver um arquivo kubeconfig chamado uipathadminkubeconfig na pasta temp .
- Etapa 1: criação de uma conta de serviço
- Etapa 2: criação das funções necessárias
- Consultar o namespace [somente leitura]
- Listar nós e CRDs [somente leitura]
- Obter classes de armazenamento [somente leitura]
uipathfunções [gravar]<istio-system>funções [gravar]<istio-system>funções [somente leitura]- Etapa 3: vinculando as funções
- Etapa 4: geração do arquivo kubeconfig
- Gerando o arquivo kubeconfig no Linux ou Mac
- Gerando o arquivo kubeconfig no Windows