Automation Suite
2022.10
False
Imagen de fondo del banner
Guía de instalación de Automation Suite
Última actualización 24 de abr. de 2024

Utilizar uipathctl.sh

El script uipathctl.sh proporciona una forma automatizada de actualizar un clúster a una versión más reciente, configurar una copia de seguridad, restaurar un clúster y más, ejecutándolo en un nodo. La automatización de estas tareas se realiza a través de la herramienta de automatización informática Ansible.

Parámetros de uipathctl.sh

Parámetro

Descripción

upgrade

Actualiza el clúster.

sso-generate-connector

Genere un archivo de muestra que represente un conector Dex para habilitar SSO.

sso-generate-rbac

Genere un archivo ArgoCD RBAC de ejemplo.

sso-generate-overlays

Genera las superposiciones de Kustomize para la implementación de ArgoCD y Dex con SSO. Útil en la depuración.

sso-apply-overlays

Genera y aplica las superposiciones de Kustomize para ArgoCD y Dex con SSO.

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

Este marcador solo se muestra si usas el comando upgrade .
Pasos a ejecutar durante las operaciones de actualización. El valor predeterminado es all.
  • all : ejecuta todos los pasos
  • bundles : copia los paquetes sin conexión necesarios en todos los nodos
  • infra : ejecuta la instalación de infraestructura en los nodos de servidor y agente
  • fabric : ejecuta la instalación de la estructura en un servidor
  • services : ejecuta la instalación de servicios en un servidor

--install-type <online|offline>

Tipo de instalación. Necesario para actualizar y restaurar.

--cluster-config

Ruta a su archivo cluster_config.json . Si no se especifica, se genera un archivo de configuración.

--kubeconfig

Ruta a un archivo de Kubeconfig que permite conectarse al clúster. El valor predeterminado es /etc/rancher/rke2/rke2.yaml.

--inventory

Ruta a un inventario de Ansible válido que describe el clúster. Si no se especifica, se genera un inventario.

--ansible-username

El nombre de usuario que Ansible utilizará para conectarse a los nodos del clúster. Predeterminado: usuario actual.

--ansible-private-key

La clave privada SSH que proporciona conectividad a los nodos del clúster. Si no se especifica, se solicita un conjunto de contraseñas.

--ansible-ask-password

Pida a Ansible que solicite un conjunto de contraseña para las conexiones SSH y la elevación.

--ansible-config

Especifica la ruta a un ansible.cfg personalizado que se utilizará.

--offline-infra-bundle

La ruta del archivo sf-infra.tar.gz. Requerido para actualizaciones fuera de línea.

--disable-cni-upgrade

No realice la actualización de CNI.

--sso-connector-type

Tipo de conector para sso-generate-connector.

--sso-connector-file

Ruta a un archivo que contiene un conector Dex para la integración de SSO.

--sso-rbac-file

Ruta a un archivo que contiene un conector Dex para la integración de SSO.

Requisitos

Ansible utiliza el mecanismo SSH para iniciar sesión en cualquiera de los nodos o máquinas del host y realizar tareas.

Antes de ejecutar el script uipathctl.sh , debe realizar los siguientes pasos:
  1. Identifique el nodo del host Ansible.
  2. Agrega la firma SSH de tus nodos a los hosts conocidos.
  3. Configura el método de autenticación SSH.
  4. Instala Ansible y otras herramientas de requisitos previos.

Debe asegurarse de que las siguientes herramientas estén instaladas en el nodo del host de Ansible:

  • ansible (v2.8 +)
  • ansible-playbook
  • sshpass : solo es necesario cuando se usa la contraseña para la autenticación junto con el parámetro --ansible-preguntar-password.
  • zip

Para obtener instrucciones, consulta las siguientes secciones.

Identifying the Ansible host node

El nodo del host Ansible es la máquina en la que instala Ansible. Esta máquina debe ser un nodo de servidor para tener los permisos necesarios para realizar todas las automatizaciones en el clúster.

En las instalaciones en línea, el nodo del host de Ansible puede ser cualquiera de los nodos del servidor.

En instalaciones sin conexión, el nodo de host de Ansible debe ser el nodo del servidor principal en el que se montó el disco del paquete de UiPath en la ubicación /uipath . Si no hay ningún nodo de servidor con el disco del paquete de UiPath adjunto, simplemente puedes montar un disco adicional en cualquiera de los nodos de servidor existentes y considerarlo como el nodo de host de Ansible.

Adding the SSH signature of your nodes to the known hosts

Para agregar la firma SSH de tu nodo a los hosts conocidos, agrega la dirección IP privada de cada nodo del clúster al archivo known_hosts en el nodo de host de Ansible.
Ejecuta el siguiente comando en el nodo del host Ansible reemplazando <node-private-ip> con la dirección IP privada de cada nodo del clúster, uno a la vez.
ssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hostsssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hosts

Setting up SSH authentication method

Ansible admite dos mecanismos SSH:

Option 1: Key-based SSH authentication (recommended)

Paso 1: configurar la clave SSH

El mecanismo de autenticación de clave SSH utiliza una combinación de claves públicas y privadas.

Asegúrate de conceder acceso a la clave pública del nodo anfitrión de Ansible en todos los demás nodos copiándola.

Si no tienes una clave SSH, puedes generar una ejecutando el comando ssh-keygen .
Generando claves SSH
Puedes generar una nueva clave SSH utilizando el comando ssh-keygen . Para generar la nueva clave SSH, simplemente ejecute el comando ssh-keygen y siga las instrucciones.

Para generar una nueva clave SSH, siga los siguientes pasos:

  1. Genera una nueva clave SSH con el comando ssh-keygen .
  2. Escribe la ubicación de tu clave. Los valores predeterminados son:

    • Clave pública: ~/.ssh/id_rsa.pub
    • Clave privada: ~/.ssh/id_rsa
  3. Copie el acceso a la clave pública del nodo del host de Ansible en todos los demás nodos.
Conceder acceso a la clave pública en cada nodo
Para conceder acceso a la clave pública, cópiala en todos los nodos del clúster (incluido el nodo actual) mediante el comando ssh-copy-id . Si la ruta de la clave pública SSH no es ~/.ssh/id_rsa.pub, asegúrate de reemplazarla.
ssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ipssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ip

Paso 2: Proporcionar acceso con clave SSH a Ansible

Ansible utiliza el mecanismo SSH para iniciar sesión en las máquinas host y realizar la instalación necesaria. Por este motivo, debes proporcionar acceso con clave SSH a Ansible.

Elige entre los siguientes métodos:

Opción 1: usar ssh-agent (recomendado)
De forma predeterminada, Ansible utiliza ssh-agent para obtener acceso a los nodos. Para obtener más información sobre ssh-agent, consulta el manual ssh-agent.
Para añadir una nueva tecla a ssh-agent, ejecuta el siguiente comando:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsaeval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
Opción 2: Usar una clave privada no protegida
Nota: esta opción solo se admite si su clave privada no está protegida por una frase de contraseña.
Este método implica usar la clave privada de forma interactiva, añadiendo el parámetro --ansible-private-key a tu script uipathctl.sh . El parámetro toma la ruta absoluta de la clave privada y la usa para la autenticación.

Opción 2: autenticación SSH basada en contraseña

Si optas por la autenticación SSH basada en contraseña, debes proporcionar el parámetro --ansible-ask-password al script uipathctl.sh . Este parámetro le pedirá que proporcione la contraseña para la autenticación.

Checking if Ansible and other prerequisite tools are installed

Debes asegurarte de que Ansible y las siguientes herramientas de soporte estén instaladas en el nodo de host de Ansible previamente seleccionado.

  • ansible (v2.8 +)
    Para comprobar si ansible estaba instalado, ejecuta:
    ansible --version &>/dev/null || echo "Error: Ansible is not installed"ansible --version &>/dev/null || echo "Error: Ansible is not installed"
  • ansible-playbook

    Para comprobar si ansible-playbook estaba instalado, ejecuta:
    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 : solo es necesario cuando se usa la contraseña para la autenticación junto con el parámetro --ansible-ask-password .
    Para comprobar si sshpass estaba instalado, ejecuta:
    sshpass -V &>/dev/null || echo "Error: sshpass is not installed"sshpass -V &>/dev/null || echo "Error: sshpass is not installed"
  • zip

    Para comprobar si zip estaba instalado, ejecuta:
    zip --version &>/dev/null || echo "Error: zip is not installed"zip --version &>/dev/null || echo "Error: zip is not installed"
    Importante: si alguno de los comandos anteriores falla, el paquete de destino no está instalado en su máquina. Asegúrate de instalar las herramientas necesarias.

Advanced Ansible configuration

Habilitar la salida de yaml

Para lograr una salida visualmente mejor, recomendamos usar la salida yaml para Ansible ejecutando el siguiente comando:
export ANSIBLE_STDOUT_CALLBACK=yamlexport ANSIBLE_STDOUT_CALLBACK=yaml

Esta característica se introdujo en Ansible 2.9 y, para ciertas instalaciones, debe habilitarse ejecutando el siguiente comando:

ansible-galaxy collection install community.generalansible-galaxy collection install community.general
Si aún encuentras el mensaje ERROR! Invalid callback for stdout specified: yaml después de instalar la colección community.general , puedes deshabilitar la salida yaml ejecutando el siguiente comando:
unset ANSIBLE_STDOUT_CALLBACKunset ANSIBLE_STDOUT_CALLBACK

Generar el archivo inventory.ini de Ansible

En algunos escenarios, como al configurar la copia de seguridad o la actualización, Automation Suite genera automáticamente el archivo inventory.ini para Ansible. Sin embargo, hay algunas situaciones en las que debes crear y proporcionar el archivo inventory.ini a Ansible. Por ejemplo:
  • Al restaurar el clúster a partir de los datos de la copia de seguridad. Esto se debe a que en el momento de la restauración no hay ningún clúster en buen estado del que derivar inventory.ini.
  • Cuando desea proporcionar una configuración avanzada, como el nombre de usuario y la clave SSH, que es muy específico para cada nodo.

Para obtener más detalles, consulta Cómo crear tu propio inventario.

El siguiente bloque de código muestra la plantilla de inventario que entiende el script uipathctl.sh .
[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]

El punto de inicio en el que ejecutas el script uipathctl.sh . Esto también se conoce como nodo de host de Ansible.

Debe proporcionar la dirección IP privada para este nodo.

[SECONDARY_SERVER]

El grupo de otros nodos de servidor del clúster.

Debe proporcionar la dirección IP privada de todos los demás nodos del servidor.

[AGENTS]

El grupo de nodos agente en el clúster.

Debes proporcionar la dirección IP privada de todos los nodos del agente.

[TASKMINING]

El grupo de nodos de Task Mining en el clúster.

Debes proporcionar la dirección IP privada de todos los nodos de Task Mining.

[GPU]

El grupo de nodos GPU en el clúster.

Debes proporcionar la dirección IP privada de todos los nodos GPU.

[ASROBOTS]

El grupo de nodos de Automation Suite Robots del clúster.

Debe proporcionar la dirección IP privada de todos los nodos de Automation Suite Robots.

[all:vars]

El grupo de variables aplicadas a todos los grupos de hosts definidos previamente.

  • ansible_connection : el método de autenticación. Se admiten dos mecanismos SSH: autenticación SSH basada en clave y autenticación SSH basada en contraseña.
  • ansible_timeout : la cantidad de tiempo predeterminada durante la cual se puede establecer una conexión SSH antes de que se agote el tiempo de espera de la operación. También controla cuánto tiempo se tarda en acceder a la conexión, una vez establecida.
  • ansible_user : el nombre del usuario que inicia sesión en el servidor remoto.

Puedes proporcionar las variables por grupo o por nodo del host. Para obtener más detalles, consulta Asignar una variable a muchas máquinas: variables de grupo.

Generando el archivo de variables de Ansible

Para la orquestación de Ansible en otros nodos, debes definir algunos parámetros que Ansible utilizará para determinar la ubicación del instalador y los archivos correspondientes en otros nodos. Estos parámetros se definen en el archivo Yaml y se proporcionan a Ansible.
Si quieres modificar la configuración predeterminada, crea un archivo con el siguiente formato y proporciónalo a uipathctl.sh mediante --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: sf-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: sf-infra.tar.gz
infra_bundle_basepath: /var/tmp/uipath_upgrade_<version>

Variable

Valor

installer_path

La ruta de sf-installer.zip. Si no proporcionas este valor, uipathctl.sh comprimirá el directorio actual y lo copiará en otros nodos, como un archivo zip de instalador.

target_installer_base_path

La ruta de acceso donde se copiará el instalador en los nodos. El valor predeterminado es `/ opt / UiPathAutomationSuite / {version

install_type

El método de instalación. Los valores posibles son online y offline.

target_bundle_base_path

The path on the nodes where the offline bundles will be copied. The default location is /var/tmp/uipathctl_{version}.

target_tmp_path

La ruta de los nodos donde se extrae el paquete. La ubicación predeterminada es /opt/UiPathAutomationSuite/tmp.

cluster_config_filename

El nombre del archivo de configuración del clúster. El valor predeterminado es cluster_config.json.

cluster_config_basepath

The location where cluster_config.json will be stored temporarily on the nodes during orchestration. The default value is /var/tmp/uipathctl_{version}.

backup_config_filename

El nombre del archivo de configuración de copia de seguridad. El valor predeterminado es backup.json.

backup_config_basepath

The location where backup.json will be stored temporarily on the nodes during orchestration. The default value is /var/tmp/uipathctl_{version}.

restore_config_filename

El nombre del archivo de configuración de restauración. El valor predeterminado es restore.json.

restore_config_basepath

La ubicación donde restore.json se almacenará temporalmente en los nodos durante la orquestación. El valor predeterminado es `/ var / tmp / uipathctl _ {version

infra_bundle_filename

El nombre del paquete que contiene las capas de infraestructura. Este es el mismo que el que proporcionaste en el script uipathctl.sh .

infra_bundle_basepath

La ubicación donde sf-infra.tar.gz se almacenará temporalmente en los nodos durante la orquestación. Este es el mismo que el que proporcionaste en el script uipathctl.sh .

Was this page helpful?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Logotipo blanco de UiPath
Confianza y seguridad
© 2005-2024 UiPath. All rights reserved.