automation-suite
2024.10
true
UiPath logo, featuring letters U and I in white

Guia de instalação do Automation Suite no OpenShift

Última atualização 18 de dez de 2024

Concessão de permissões de instalação

Importante:

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, siga as seguintes etapas:

Observação:

Você deve executar os comandos mencionados nesta seção em uma máquina Linux, Windows ou macOS que tenha acesso ao servidor da API OpenShift Kubernetes.

Etapa 1: criação de uma conta de serviço

Para criar uma conta de serviço, siga os seguintes passos:

  1. Crie o namespace e o projeto <uipath> :
    oc get namespace <uipath> || oc new-project <uipath>oc get namespace <uipath> || oc new-project <uipath>
  2. Defina o namespace e o projeto padrão como <uipath>:
    oc project <uipath>oc project <uipath>
    Todos os comandos oc subsequentes operarão dentro do namespace <uipath> .
  3. Crie uma conta de serviço chamada uipathadmin:
    oc create serviceaccount uipathadminoc create serviceaccount uipathadmin
  4. Use a função de cluster admin existente para conceder permissões de administrador à conta de serviço uipathadmin no namespace. <uipath>
    oc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadminoc create rolebinding uipathadmin --clusterrole=admin --serviceaccount=<uipath>:uipathadmin

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:
oc apply -f <file_name.yaml>oc apply -f <file_name.yaml>

Você pode criar o arquivo YAML para cada função copiando sua configuração correspondente da seguinte tabela:

Figura 1. Permissões de instalação do Automation Suite

Permissões

Finalidade

Configuração

Consultar o namespace [somente leitura]

Obrigatório para verificar se os namespaces, como o namespace <istio-system> , estão disponíveis ou não.
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 ferramenta de verificação de pré-requisitos e verificação de integridade de diagnóstico requer essa permissão para executar as validações de nós, como a capacidade disponível no nó.

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"]
uipath funções [gravar]

A maior parte da instalação do Automation Suite é realizada via ArgoCD; no entanto, a instalação de alguns componentes é realizada por meio do gráfico do Helm.

A ferramenta uipathctl executa um trabalho de instalação que executa a instalação do gráfico do Helm. A conexão com o kube-api-server e a instalação do gráfico do Helm no namespace <uipath> requer uma função de criador de funções no nível do namespace.
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]
Observação:

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>
  1. A ferramenta de verificação de pré-requisitos do Automation Suite lê os pods e serviços no namespace <istio-system> para validar se o Istio está instalado e configurado corretamente.
  2. O Automation Suite instala o plug-in do HASM no namespace <istio-system> para configurar as regras de roteamento baseadas em caminho.
    A instalação requer a criação de um imagepullsecret que será usado no gráfico do Helm do HASM para extrair a imagem do registro.
    Além disso, um criador de função é necessário para o namespace. <istio-system> Aqui, uipathctl executa um pod que usa o gráfico do Helm para instalar o plug-in do HASM para o roteamento.
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]
Observação:

Forneça essas permissões se você já tiver configurado o Istio e instalado o plug-in do HASM.

As seguintes operações são realizadas no namespace. <istio-system>
  1. A ferramenta de verificação de pré-requisitos do Automation Suite lê os pods e serviços no namespace <istio-system> para validar se o Istio está instalado e configurado corretamente.
  2. A permissão get secrets é necessária para copiar o arquivo de certificado do namespace <istio-system> para o namespace <uipath> .
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:
oc project <istio-system>
oc create rolebinding istio-system-automationsuite-rolebinding \
  --role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
oc create rolebinding namespace-reader-rolebinding \
  --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
oc project <uipath>
oc create clusterrolebinding list-nodes-and-crd-rolebinding \
  --clusterrole=list-nodes-and-crd-clusterrole --serviceaccount=<uipath>:uipathadmin
oc create rolebinding uipath-automationsuite-rolebinding \
  --role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin

## This step is needed only if you want installer to configure the WASM Plugin. Otherwise skip it.
oc -n <istio-system> create rolebinding uipadmin-istio-system \
  --clusterrole=admin --serviceaccount=<uipath>:uipathadminoc project <istio-system>
oc create rolebinding istio-system-automationsuite-rolebinding \
  --role=istio-system-automationsuite-role --serviceaccount=<uipath>:uipathadmin
oc create rolebinding namespace-reader-rolebinding \
  --clusterrole=namespace-reader-clusterrole --serviceaccount=<uipath>:uipathadmin
oc project <uipath>
oc create clusterrolebinding list-nodes-and-crd-rolebinding \
  --clusterrole=list-nodes-and-crd-clusterrole --serviceaccount=<uipath>:uipathadmin
oc create rolebinding uipath-automationsuite-rolebinding \
  --role=uipath-automationsuite-role --serviceaccount=<uipath>:uipathadmin

## This step is needed only if you want installer to configure the WASM Plugin. Otherwise skip it.
oc -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:
# For generating kubeconfig
# Creates the token for uipathadmin service account
token=$(oc -n <uipath> create token uipathadmin --duration=8760h)
# Getting api-server details
server=$(oc config view -o jsonpath="{.clusters[]..server}")
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true# For generating kubeconfig
# Creates the token for uipathadmin service account
token=$(oc -n <uipath> create token uipathadmin --duration=8760h)
# Getting api-server details
server=$(oc config view -o jsonpath="{.clusters[]..server}")
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true
Se a operação tiver sido bem-sucedida, você deverá ver um arquivo kubeconfig chamado uipathadminkubeconfig.

Gerando o arquivo kubeconfig no Windows

Observação: você deve executar essa etapa usando o Windows Powershell.
Para gerar o arquivo kubeconfig no Windows, execute os seguintes comandos:
# For generating kubeconfig
# Creates the token for uipathadmin service account
$token = oc -n <uipath> create token uipathadmin --duration=8760h
# Getting api-server details
$server = oc config view -o jsonpath="{.clusters[]..server}"
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true# For generating kubeconfig
# Creates the token for uipathadmin service account
$token = oc -n <uipath> create token uipathadmin --duration=8760h
# Getting api-server details
$server = oc config view -o jsonpath="{.clusters[]..server}"
# Login logs on using the provided token and server and outputs kubeconfig at the provided path.
oc login --server=$server --token=$token --kubeconfig=uipathadminkubeconfig --insecure-skip-tls-verify=true
Se a operação tiver sido bem-sucedida, você deve ver um arquivo kubeconfig chamado uipathadminkubeconfig na pasta temp .

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.