UiPath Documentation
automation-suite
2023.4
false
Guia de instalação do Automation Suite no Linux
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Uso do uipathctl.sh

O script uipathctl.sh fornece uma maneira automatizada de atualizar um cluster para uma versão mais recente, configurar um backup, restaurar um cluster e muito mais, executando-o em um nó. A automação dessas tarefas é feita por meio da ferramenta de automação de TI Ansible.

uipathctl.sh parameters​

Parâmetro Description

upgrade

Atualize o cluster.

sso-generate-connector

Gere um arquivo de amostra representando um Conector Dex para ativar o SSO.

sso-generate-rbac

Gere um exemplo de arquivo ArgoCD RBAC.

sso-generate-overlays

Gere as sobreposições Kustomize para a implantação ArgoCD e Dex com SSO. Útil na depuração.

sso-apply-overlays

Gere e aplique as sobreposições Kustomize para ArgoCD e Dex com SSO.

--steps <all|bundles|infra|fabric|services>

Este sinalizador é mostrado apenas se você usar o comando upgrade .

Etapas a serem executadas durante as operações de atualização. O padrão é all.

  • all – executa todas as etapas
  • bundles – copia os pacotes offline necessários para todos os nós
  • infra – executa infra-instalação no servidor e nos nós do agente
  • fabric – executa a instalação da malha em um servidor
  • services – executa a instalação de serviços em um servidor

--install-type <online|offline>

Tipo de instalação. Necessário para atualização e restauração.

--cluster-config

Caminho para seu arquivo cluster_config.json . Se não for especificado, um arquivo de configuração será gerado.

--kubeconfig

Caminho para um arquivo Kubeconfig que permite a conexão com o cluster. O padrão é /etc/rancher/rke2/rke2.yaml.

--inventory

Caminho para um inventário Ansible válido que descreve o cluster. Se não for especificado, um inventário será gerado.

--ansible-username

O nome de usuário a ser usado pelo Ansible para se conectar aos nós do cluster. O padrão é o usuário atual.

--ansible-private-key

A chave privada SSH que fornece conectividade aos nós do cluster. Se não for especificado, um conjunto de senhas será solicitado.

--ansible-ask-password

Peça ao Ansible para solicitar uma senha definida para conexões SSH e elevação.

--ansible-config

Especifique o caminho para um ansible.cfg personalizado a ser usado.

--offline-infra-bundle

Caminho para o arquivo as-infra.tar.gz . Necessário para atualizações off-line.

--disable-cni-upgrade

Não execute atualização CNI.

--sso-connector-type

Tipo de conector para sso-generate-connector.

--sso-connector-file

Caminho para um arquivo contendo um Conector Dex para a integração SSO.

--sso-rbac-file

Caminho para um arquivo contendo um Conector Dex para a integração SSO.

Requisitos​

Ansible usa o mecanismo SSH para fazer login em qualquer um dos nós de host ou máquinas para executar tarefas.

Antes de executar o script uipathctl.sh , você deve executar as seguintes etapas:

  1. Identifique o nó de host Ansible.
  2. Adicione a assinatura SSH de seus nós aos hosts conhecidos.
  3. Configure o método de autenticação SSH.
  4. Instale o Ansible e outras ferramentas de pré-requisito.

Você deve garantir que as seguintes ferramentas estejam instaladas no nó do host Ansible:

  • ansible (v2.8+)
  • ansible-playbook
  • sshpass – Necessário apenas ao usar senha para autenticação junto com o parâmetro --ansible-ask-password.
  • zip

Para obter instruções, consulte as seções a seguir.

Identifying the Ansible host node​

O nó de host do Ansible é a máquina onde você instala o Ansible. Esta máquina deve ser um nó de servidor para que tenha as permissões necessárias para executar todas as automações no cluster.

Em instalações online, o nó do host Ansible pode ser qualquer um dos nós do servidor.

Em instalações off-line, o nó do host Ansible deve ser o nó do servidor principal no qual você montou o disco do pacote UiPath no local /uipath . Se não houver nenhum nó de servidor com o disco do pacote UiPath anexado, você pode simplesmente montar um disco adicional em qualquer um dos nós de servidor existentes e considerá-lo como o nó de host Ansible.

Adding the SSH signature of your nodes to the known hosts​

Para adicionar a assinatura SSH de seu nó aos hosts conhecidos, adicione o endereço IP privado de cada nó no cluster ao arquivo known_hosts no nó do host Ansible.

Execute o seguinte comando no nó do host Ansible substituindo <node-private-ip> pelo endereço IP privado de cada nó no cluster, um de cada vez.

ssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hosts
ssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hosts

Setting up SSH authentication method​

Ansible suporta dois mecanismos SSH:

Passo 1: Configurando a chave SSH​

O mecanismo de autenticação de chave SSH usa uma combinação de chaves privadas e públicas.

Conceda acesso à chave pública do nó do host do Ansible ao copiá-la em todos os outros nós.

Se você não tiver uma chave SSH, poderá gerar uma executando o comando ssh-keygen .

Gerando chaves SSH

Você pode gerar uma nova chave SSH usando o comando ssh-keygen . Para gerar a nova chave SSH, basta executar o comando ssh-keygen e seguir as instruções.

Para gerar uma nova chave SSH, siga os seguintes passos:

  1. Gere uma nova chave SSH usando o comando ssh-keygen .
  2. Anote a localização da sua chave. Os valores padrão são:
    • Chave pública: ~/.ssh/id_rsa.pub
    • Chave Privada: ~/.ssh/id_rsa
  3. Conceda acesso à chave pública do nó do host Ansible em todos os outros nós copiando-a.

Concedendo acesso à chave pública em cada nó

Para conceder acesso à chave pública, copie-a para todos os nós do cluster (incluindo o nó atual) usando o comando ssh-copy-id . Se o caminho da chave pública SSH não for ~/.ssh/id_rsa.pub, certifique-se de substituí-lo adequadamente.

ssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ip
ssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ip
Etapa 2: fornecer acesso de chave SSH ao Ansible​

O Ansible usa o mecanismo SSH para fazer login nas máquinas host e executar a instalação necessária. Por esse motivo, você deve fornecer o acesso da chave SSH ao Ansible.

Escolha entre os seguintes métodos:

Opção 1: usando ssh-agent (recomendado)

By default, Ansible uses ssh-agent to obtain access to nodes. For more information about ssh-agent, see ssh-agent manual.

Para adicionar uma nova chave a ssh-agent, execute o seguinte comando:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Opção 2: usando chave privada não protegida

Observação:

This option is supported only if your private key is not protected by a passphrase.

Esse método envolve o uso interativo da chave privada, adicionando o parâmetro --ansible-private-key ao seu script uipathctl.sh . O parâmetro pega o caminho absoluto da chave privada e o usa para autenticação.

Opção 2: autenticação SSH baseada em senha​

Se você optar pela autenticação SSH baseada em senha, deverá fornecer o parâmetro --ansible-ask-password para o script uipathctl.sh . Este parâmetro solicitará que você forneça a senha para autenticação.

Checking if Ansible and other prerequisite tools are installed​

Você deve garantir que o Ansible e as outras ferramentas de suporte a seguir estejam instaladas no nó de host do Ansible selecionado anteriormente.

  • ansible (v2.8+)

    Para verificar se ansible foi instalado, execute:

    ansible --version &>/dev/null || echo "Error: Ansible is not installed"
    ansible --version &>/dev/null || echo "Error: Ansible is not installed"
    
  • ansible-playbook

    Para verificar se ansible-playbook foi instalado, execute:

    ansible-playbook --version &>/dev/null || echo "Error: Ansible Playbook is not installed"
    ansible-playbook --version &>/dev/null || echo "Error: Ansible Playbook is not installed"
    
  • sshpass – Necessário apenas ao usar senha para autenticação junto com o parâmetro --ansible-ask-password .

    Para verificar se sshpass foi instalado, execute:

    sshpass -V &>/dev/null || echo "Error: sshpass is not installed"
    sshpass -V &>/dev/null || echo "Error: sshpass is not installed"
    
  • zip

    Para verificar se zip foi instalado, execute:

    zip --version &>/dev/null || echo "Error: zip is not installed"
    zip --version &>/dev/null || echo "Error: zip is not installed"
    
    Importante:

    If any of the previous commands errors out, the targeted package is not installed on your machine. Make sure to install the required tools.

Advanced Ansible configuration​

Habilitando a saída yaml​

Para obter uma saída visualmente melhor, recomendamos usar a saída yaml para Ansible executando o seguinte comando:

export ANSIBLE_STDOUT_CALLBACK=yaml
export ANSIBLE_STDOUT_CALLBACK=yaml

Esse recurso foi introduzido no Ansible 2.9 e, para determinadas instalações, deve ser ativado executando o seguinte comando:

ansible-galaxy collection install community.general
ansible-galaxy collection install community.general

Se você ainda encontrar a mensagem ERROR! Invalid callback for stdout specified: yaml após instalar a coleção community.general , poderá desativar a saída yaml executando o seguinte comando:

unset ANSIBLE_STDOUT_CALLBACK
unset ANSIBLE_STDOUT_CALLBACK

Gerando o arquivo Inventory.ini do Ansible​

Em alguns cenários, como ao configurar o backup ou upgrade, o Automation Suite gera automaticamente o arquivo inventory.ini para o Ansible. No entanto, existem algumas situações em que você deve criar e fornecer o arquivo inventory.ini ao Ansible. Por exemplo:

  • Ao restaurar o cluster dos dados de backup. Isso ocorre porque, no momento da restauração, não há nenhum cluster íntegro para derivar inventory.ini.
  • Quando você deseja fornecer configurações avançadas, como nome de usuário e chave SSH, que são muito específicas para cada nó.

For more details, see How to build your own inventory.

O bloco de código a seguir exibe o modelo de inventário que o script uipathctl.sh entende.

[FIRST_SERVER]
'10.0.1.1'
[SECONDARY_SERVERS]
'10.0.1.2'
'10.0.1.3'
[AGENTS]
'10.0.1.4'
'10.0.1.5'
[TASKMINING]
'10.0.1.6'
[GPU]
'10.0.1.7'
[ASROBOTS]
'10.0.1.8'
[all:vars]
ansible_connection=ssh
ansible_timeout=10
ansible_user=admin
[FIRST_SERVER]
'10.0.1.1'
[SECONDARY_SERVERS]
'10.0.1.2'
'10.0.1.3'
[AGENTS]
'10.0.1.4'
'10.0.1.5'
[TASKMINING]
'10.0.1.6'
[GPU]
'10.0.1.7'
[ASROBOTS]
'10.0.1.8'
[all:vars]
ansible_connection=ssh
ansible_timeout=10
ansible_user=admin
Grupo Valor

[FIRST_SERVER]

O ponto de partida onde você executa o script uipathctl.sh . Isso também é chamado de nó de host Ansible.

Você deve fornecer o endereço IP privado para este nó.

[SECONDARY_SERVER]

O grupo de outros nós de servidor no cluster.

Você deve fornecer o endereço IP privado de todos os outros nós do servidor.

[AGENTS]

O grupo de nós do agente no cluster.

Você deve fornecer o Endereço IP Privado de todos os nós do agente.

[TASKMINING]

O grupo de nós Task Mining no cluster.

Você deve fornecer o Endereço IP Privado de todos os nós de Task Mining.

[GPU]

O grupo dos nós de GPU no cluster.

Você deve fornecer Endereço IP Privado a todos os nós da GPU.

[ASROBOTS]

O grupo de nós do Automation Suite Robots no cluster.

Você deve fornecer o endereço IP privado de todos os nós do Automation Suite Robots.

[all:vars]

O grupo de variáveis aplicadas a todos os grupos de hosts definidos anteriormente.

  • ansible_connection - O método de autenticação. Dois mecanismos SSH são suportados: autenticação SSH baseada em chave e autenticação SSH baseada em senha.

  • ansible_timeout - A quantidade de tempo padrão durante a qual uma conexão SSH pode ser estabelecida antes que a operação atinja o tempo limite. Também controla quanto tempo leva para acessar a conexão, uma vez estabelecida.

  • ansible_user - O nome do usuário que está efetuando login no servidor remoto.

You can provide the variables per group or per host node. For details, see Assigning a variable to many machines: group variables.

Generating the Ansible variable file​

Para a orquestração do Ansible em outros nós, você deve definir alguns parâmetros que o Ansible usa para determinar a localização do instalador e os arquivos correspondentes em outros nós. Esses parâmetros são definidos no arquivo Yaml e fornecidos ao Ansible.

Se você deseja modificar a configuração padrão, crie um arquivo no formato a seguir e forneça-o para uipathctl.sh usando --ansible-variables-file.

#Path where installer zip is available. By default, uipathctl.sh takes the current folder and compress it to zip before copying it to other nodes.
installer_path: /path/to/installer.zip
# Path where installer will be copied on nodes
target_installer_base_path: /opt/UiPathAutomationSuite/<version>/installer
# Install type - online or offline
install_type: online
# Path on nodes where offline bundles will be copied
target_bundle_base_path: /opt/UiPathAutomationSuite/{version}
# Path on nodes where offline bundles will be extracted
target_tmp_path: /opt/UiPathAutomationSuite/tmp
# Basepath and filname for the various config files and bundles on the local machine
cluster_config_filename: cluster_config.json
cluster_config_basepath: /var/tmp/uipathctl_{version}
backup_config_filename: backup_config.json
backup_config_basepath: /var/tmp/uipathctl_{version}
restore_config_filename: restore.json
restore_config_basepath: /var/tmp/uipathctl_{version}
infra_bundle_filename: as-infra.tar.gz
infra_bundle_basepath: /var/tmp/uipath_upgrade_<version>
#Path where installer zip is available. By default, uipathctl.sh takes the current folder and compress it to zip before copying it to other nodes.
installer_path: /path/to/installer.zip
# Path where installer will be copied on nodes
target_installer_base_path: /opt/UiPathAutomationSuite/<version>/installer
# Install type - online or offline
install_type: online
# Path on nodes where offline bundles will be copied
target_bundle_base_path: /opt/UiPathAutomationSuite/{version}
# Path on nodes where offline bundles will be extracted
target_tmp_path: /opt/UiPathAutomationSuite/tmp
# Basepath and filname for the various config files and bundles on the local machine
cluster_config_filename: cluster_config.json
cluster_config_basepath: /var/tmp/uipathctl_{version}
backup_config_filename: backup_config.json
backup_config_basepath: /var/tmp/uipathctl_{version}
restore_config_filename: restore.json
restore_config_basepath: /var/tmp/uipathctl_{version}
infra_bundle_filename: as-infra.tar.gz
infra_bundle_basepath: /var/tmp/uipath_upgrade_<version>
VariávelValor
installer_pathO caminho de as-installer.zip. Se você não fornecer esse valor, uipathctl.sh compactará o diretório atual e o copiará para outros nós, como um zip do instalador.
target_installer_base_pathO caminho onde o instalador será copiado nos nós. O valor padrão é `/opt/UiPathAutomationSuite/{versão
install_typeO método de instalação. Os valores possíveis são: online e offline.
target_bundle_base_pathO caminho nos nós onde os bundles off-line serão copiados. A localização padrão é `/opt/UiPathAutomationSuite/{version
target_tmp_pathO caminho nos nós onde o pacote é extraído. O local padrão é /opt/UiPathAutomationSuite/tmp.
cluster_config_filenameO nome do arquivo de configuração do cluster. O valor padrão é cluster_config.json .
cluster_config_basepathThe location where cluster_config.json will be stored temporarily on the nodes during orchestration. The default value is /var/tmp/uipathctl_{version}.
backup_config_filenameO nome do arquivo de configuração de backup. O valor padrão é backup.json.
backup_config_basepathThe location where backup.json will be stored temporarily on the nodes during orchestration. The default value is /var/tmp/uipathctl_{version}.
restore_config_filenameO nome do arquivo de configuração de restauração. O valor padrão é restore.json.
restore_config_basepathThe location where restore.json will be stored temporarily on the nodes during orchestration. The default value is /var/tmp/uipathctl_{version}.
infra_bundle_filenameO nome do pacote configurável que contém as camadas de infraestrutura. Este é o mesmo que você forneceu para o script uipathctl.sh .
infra_bundle_basepathO local onde as-infra.tar.gz será armazenado temporariamente nos nós durante a orquestração. Este é o mesmo que você forneceu para o script uipathctl.sh .

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades