Automation Suite
2022.10
False
Image de fond de la bannière
Guide d'installation d'Automation Suite
Dernière mise à jour 24 avr. 2024

Utilisation de uipathctl.sh

Le script uipathctl.sh fournit un moyen automatisé de mettre à niveau un cluster vers une version plus récente, de configurer une sauvegarde, de restaurer un cluster, etc., en l'exécutant sur un nœud. L'automatisation de ces tâches se fait via l'outil d'automatisation informatique Ansible.

Paramètres Uipathctl.sh

Paramètre

Description

upgrade

Mettez à niveau le cluster.

sso-generate-connector

Générez un exemple de fichier représentant un connecteur Dex pour activer l'authentification unique.

sso-generate-rbac

Générez un exemple de fichier RBAC ArgoCD.

sso-generate-overlays

Générez les superpositions Kustomize pour le déploiement ArgoCD et Dex avec SSO. Utile pour le débogage.

sso-apply-overlays

Générez et appliquez les superpositions Kustomize pour ArgoCD et Dex avec SSO.

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

Cet indicateur ne s'affiche que si vous utilisez la commande upgrade .
Étapes à exécuter pendant les opérations de mise à niveau. La valeur par défaut est all .
  • all : exécute toutes les étapes
  • bundles – copie les bundles hors ligne requis sur tous les nœuds
  • infra : exécute l'installation infra sur les nœuds du serveur et d'agent
  • fabric : exécute l'installation de Fabric sur un serveur
  • services : exécute l'installation des services sur un serveur

--install-type <online|offline>

Type d'installation. Requis pour la mise à niveau et la restauration.

--cluster-config

Chemin d'accès à votre fichier cluster_config.json . S'il n'est pas spécifié, un fichier de configuration est généré.

--kubeconfig

Chemin d'accès à un fichier Kubeconfig qui permet de se connecter au cluster. La valeur par défaut est /etc/rancher/rke2/rke2.yaml .

--inventory

Chemin d'accès à un inventaire Ansible valide décrivant le cluster. Si non spécifié, un inventaire est généré.

--ansible-username

Le nom d'utilisateur à utiliser par Ansible pour se connecter aux nœuds du cluster. La valeur par défaut est l'utilisateur actuel.

--ansible-private-key

La clé privée SSH qui fournit la connectivité aux nœuds du cluster. S'il n'est pas spécifié, un ensemble de mots de passe est demandé.

--ansible-ask-password

Demandez à Ansible de demander un mot de passe pour les connexions SSH et l'élévation.

--ansible-config

Spécifiez le chemin d'accès à un ansible.cfg personnalisé à utiliser.

--offline-infra-bundle

Chemin d'accès au fichier sf-infra.tar.gz . Requis pour les mises à niveau hors ligne.

--disable-cni-upgrade

N'effectuez pas la mise à niveau CNI.

--sso-connector-type

Type de connecteur pour sso-generate-connector .

--sso-connector-file

Chemin d'accès à un fichier contenant un connecteur Dex pour l'intégration SSO.

--sso-rbac-file

Chemin d'accès à un fichier contenant un connecteur Dex pour l'intégration SSO.

Prérequis

Ansible utilise le mécanisme SSH pour se connecter à l'un des nœuds hôtes ou des machines afin d'effectuer des tâches.

Avant d'exécuter le script uipathctl.sh , vous devez suivre les étapes suivantes :
  1. Identifiez le nœud hôte Ansible.
  2. Ajoutez la signature SSH de vos nœuds aux hôtes connus.
  3. Configurez la méthode d'authentification SSH.
  4. Installez Ansible et les autres outils prérequis.

Vous devez vous assurer que les outils suivants sont installés sur le nœud hôte Ansible :

  • ansible (v2.8+)
  • ansible-playbook
  • sshpass – Obligatoire uniquement lors de l'utilisation du mot de passe pour l'authentification avec le paramètre --ansible-ask-password.
  • zip

Pour obtenir des instructions, consultez les sections suivantes.

Identifier le nœud hôte Ansible

Le nœud hôte Ansible est la machine sur laquelle vous installez Ansible. Cette machine doit être un nœud de serveur afin qu'elle dispose des autorisations requises pour effectuer toutes les automatisations du cluster.

Dans les installations en ligne, le nœud hôte Ansible peut être l'un des nœuds du serveur.

Dans les installations hors ligne, le nœud hôte Ansible doit être le nœud de serveur principal sur lequel vous avez monté le disque de bundle UiPath à l'emplacement /uipath . S'il n'y a pas de nœud de serveur auquel le disque de bundle UiPath est connecté, vous pouvez simplement monter un disque supplémentaire sur l'un des nœuds de serveur existants et le considérer comme le nœud hôte Ansible.

Ajout de la signature SSH de vos nœuds aux hôtes connus

Pour ajouter la signature SSH de votre nœud aux hôtes connus, ajoutez l'adresse IP privée de chaque nœud du cluster au fichier known_hosts dans le nœud hôte Ansible.
Exécutez la commande suivante sur le nœud hôte Ansible en remplaçant <node-private-ip> par l'adresse IP privée de chaque nœud du cluster, un à la fois.
ssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hostsssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hosts

Configuration de la méthode d'authentification SSH

Ansible prend en charge deux mécanismes SSH :

Option 1 : Authentification SSH par clé (recommandée)

Étape 1 : configuration de la clé SSH

Le mécanisme d'authentification par clé SSH utilise une combinaison de clés privées et publiques.

Assurez-vous d'accorder l'accès à la clé publique du nœud hôte Ansible sur tous les autres nœuds en la copiant.

Si vous ne possédez pas de clé SSH, vous pouvez en générer une en exécutant la commande ssh-keygen .
Génération de clés SSH
Vous pouvez générer une nouvelle clé SSH à l'aide de la commande ssh-keygen . Pour générer la nouvelle clé SSH, exécutez simplement la commande ssh-keygen et suivez les instructions.

Pour générer une nouvelle clé SSH, procédez comme suit :

  1. Générez une nouvelle clé SSH à l'aide de la commande ssh-keygen .
  2. Notez l’emplacement de votre clé. Les valeurs par défaut sont :

    • Clé publique : ~/.ssh/id_rsa.pub
    • Clé privée : ~/.ssh/id_rsa
  3. Accordez l'accès à la clé publique du nœud hôte Ansible sur tous les autres nœuds en la copiant.
Accorder l'accès à la clé publique sur chaque nœud
Pour accorder l'accès à la clé publique, copiez-la sur tous les nœuds du cluster (y compris le nœud actuel) à l'aide de la commande ssh-copy-id . Si le chemin de la clé publique SSH n'est pas ~/.ssh/id_rsa.pub , assurez-vous de le remplacer en conséquence.
ssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ipssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ip

Étape 2 : Fournir un accès par clé SSH à Ansible

Ansible utilise le mécanisme SSH pour se connecter aux machines hôtes et effectuer l'installation requise. Pour cette raison, vous devez fournir l'accès de clé SSH à Ansible.

Choisissez parmi les méthodes suivantes :

Option 1 : utilisation de ssh-agent (recommandé)
Par défaut, Ansible utilise ssh-agent pour accéder aux nœuds. Pour plus d’informations sur ssh-agent, consultez le manuel ssh-agent.
Pour ajouter une nouvelle clé à ssh-agent , exécutez la commande suivante :
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsaeval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
Option 2 : utiliser une clé privée non protégée
Remarque : cette option n'est prise en charge que si votre clé privée n'est pas protégée par une phrase secrète.
Cette méthode consiste à utiliser la clé privée de manière interactive, en ajoutant le paramètre --ansible-private-key à votre script uipathctl.sh . Le paramètre prend le chemin absolu de la clé privée et l'utilise pour l'authentification.

Option 2 : Authentification SSH basée sur un mot de passe

Si vous optez pour l'authentification SSH par mot de passe, vous devez fournir le paramètre --ansible-ask-password au script uipathctl.sh . Ce paramètre vous invite à fournir le mot de passe pour l'authentification.

Vérifier si Ansible et les autres outils prérequis sont installés

Vous devez vous assurer qu'Ansible et les autres outils de prise en charge suivants sont installés sur le nœud hôte Ansible précédemment sélectionné.

  • ansible (v2.8+)
    Pour vérifier si ansible a été installé, exécutez :
    ansible --version &>/dev/null || echo "Error: Ansible is not installed"ansible --version &>/dev/null || echo "Error: Ansible is not installed"
  • ansible-playbook

    Pour vérifier si ansible-playbook a été installé, exécutez :
    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 – Obligatoire uniquement lors de l'utilisation du mot de passe pour l'authentification avec le paramètre --ansible-ask-password .
    Pour vérifier si sshpass a été installé, exécutez :
    sshpass -V &>/dev/null || echo "Error: sshpass is not installed"sshpass -V &>/dev/null || echo "Error: sshpass is not installed"
  • zip

    Pour vérifier si zip a été installé, exécutez :
    zip --version &>/dev/null || echo "Error: zip is not installed"zip --version &>/dev/null || echo "Error: zip is not installed"
    Important : si l'une des commandes précédentes génère une erreur, le package ciblé n'est pas installé sur votre machine. Assurez-vous d’installer les outils requis.

Configuration Ansible avancée

Activer la sortie yaml

Pour obtenir une sortie visuellement meilleure, nous vous recommandons d'utiliser la sortie yaml pour Ansible en exécutant la commande suivante :
export ANSIBLE_STDOUT_CALLBACK=yamlexport ANSIBLE_STDOUT_CALLBACK=yaml

Cette fonctionnalité a été introduite dans Ansible 2.9, et pour certaines installations, elle doit être activée en exécutant la commande suivante :

ansible-galaxy collection install community.generalansible-galaxy collection install community.general
Si vous rencontrez toujours le message ERROR! Invalid callback for stdout specified: yaml après l'installation de la collection community.general , vous pouvez désactiver la sortie yaml en exécutant la commande suivante :
unset ANSIBLE_STDOUT_CALLBACKunset ANSIBLE_STDOUT_CALLBACK

Génération du fichier Ansible inventory.ini

Dans certains scénarios, comme lors de la configuration de la sauvegarde ou de la mise à niveau, Automation Suite génère automatiquement le fichier inventory.ini pour Ansible. Cependant, il existe quelques situations dans lesquelles vous devez générer et fournir le fichier inventory.ini à Ansible. Par exemple :
  • Lors de la restauration du cluster à partir des données de sauvegarde. En effet, au moment de la restauration, il n'existe aucun cluster sain pour dériver inventory.ini .
  • Lorsque vous souhaitez fournir une configuration avancée telle que le nom d'utilisateur et la clé SSH, qui est très spécifique à chaque nœud.

Pour plus de détails, consultez la section Comment créer votre propre inventaire.

Le bloc de code suivant affiche le modèle d'inventaire que le script uipathctl.sh comprend.
[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

Groupe

Valeur (Value)

[FIRST_SERVER]

Le point de départ où vous exécutez le script uipathctl.sh . C’est aussi ce qu’on appelle le nœud hôte Ansible.

Vous devez fournir l'adresse IP privée de ce nœud.

[SECONDARY_SERVER]

Le groupe d'autres nœuds de serveur dans le cluster.

Vous devez fournir l'adresse IP privée de tous les autres nœuds de serveur.

[AGENTS]

Le groupe de nœuds d'agent dans le cluster.

Vous devez fournir l'adresse IP privée de tous les nœuds GPU.

[TASKMINING]

Le groupe de nœuds Task Mining dans le cluster.

Vous devez fournir l'adresse IP privée de tous les nœuds GPU.

[GPU]

Le groupe de nœuds GPU dans le cluster.

Vous devez fournir l'adresse IP privée de tous les nœuds GPU.

[ASROBOTS]

Le groupe de nœuds d'Automation Suite Robots dans le cluster.

Vous devez fournir l'adresse IP privée de tous les nœuds d'Automation Suite Robots.

[all:vars]

Groupe de variables appliqué à tous les groupes d'hôtes précédemment définis.

  • ansible_connection : la méthode d'authentification. Deux mécanismes SSH sont pris en charge : l'authentification SSH par clé et l'authentification SSH par mot de passe.
  • ansible_timeout : la durée par défaut pendant laquelle une connexion SSH peut être établie avant que l'opération n'expire. Il contrôle également le temps nécessaire pour accéder à la connexion, une fois établie.
  • ansible_user : le nom de l'utilisateur qui se connecte au serveur distant.

Vous pouvez fournir les variables par groupe ou par nœud de hôte. Pour plus de détails, consultez la section Attribution d’une variable à plusieurs machines : variables de groupe.

Génération du fichier de variable Ansible

Pour l'orchestration Ansible sur d'autres nœuds, vous devez définir certains paramètres qu'Ansible utilise pour déterminer l'emplacement du programme d'installation et des fichiers correspondants sur d'autres nœuds. Ces paramètres sont définis dans le fichier Yaml et fournis à Ansible.
Si vous souhaitez modifier la configuration par défaut, créez un fichier au format suivant et fournissez-le à uipathctl.sh à l'aide de --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

Valeur (Value)

installer_path

Le chemin de sf-installer.zip . Si vous ne fournissez pas cette valeur, uipathctl.sh compressera le répertoire actuel et le copiera sur d'autres nœuds, en tant que zip d'installation.

target_installer_base_path

Le chemin où le programme d'installation sera copié sur les nœuds. La valeur par défaut est `/opt/UiPathAutomationSuite/{version

install_type

La méthode d'installation. Les valeurs possibles sont : online et offline .

target_bundle_base_path

Chemin d'accès aux nœuds où les bundles hors ligne seront copiés. L'emplacement par défaut est /var/tmp/uipathctl_{version} .

target_tmp_path

Chemin d'accès aux nœuds où le bundle est extrait. L'emplacement par défaut est /opt/UiPathAutomationSuite/tmp .

cluster_config_filename

Le nom du fichier de configuration du cluster. La valeur par défaut est cluster_config.json .

cluster_config_basepath

L'emplacement où cluster_config.json sera stocké temporairement sur les nœuds pendant l'orchestration. La valeur par défaut est /var/tmp/uipathctl_{version} .

backup_config_filename

Le nom du fichier de configuration de sauvegarde. La valeur par défaut est backup.json .

backup_config_basepath

L'emplacement où backup.json sera stocké temporairement sur les nœuds pendant l'orchestration. La valeur par défaut est /var/tmp/uipathctl_{version} .

restore_config_filename

Le nom du fichier de configuration de restauration. La valeur par défaut est restore.json .

restore_config_basepath

L'emplacement où restore.json sera stocké temporairement sur les nœuds pendant l'orchestration. La valeur par défaut est `/var/tmp/uipathctl_{version

infra_bundle_filename

Le nom du bundle contenant les couches d'infrastructure. C'est le même que celui que vous avez fourni au script uipathctl.sh .

infra_bundle_basepath

L'emplacement où sf-infra.tar.gz sera stocké temporairement sur les nœuds pendant l'orchestration. C'est le même que celui que vous avez fourni au script uipathctl.sh .

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Logo Uipath blanc
Confiance et sécurité
© 2005-2024 UiPath. All rights reserved.