Commande SSH
Exécute une commande sur un serveur ou un groupe de serveurs via SSH.
Fonctionnement
Une tâche par serveur cible, exécutée par le worker sur une connexion SSH vérifiée (clé d'hôte approuvée). L'exécution du workflow est suspendue pendant les tâches : aucun worker n'est immobilisé. Script et variables passent par l'entrée standard, échappés.
Paramètres
| Paramètre | Type | Détail |
|---|---|---|
| Serveur ou groupeobligatoire | serveur ou groupe | Serveurs de l'environnement de l'exécution uniquement. Un groupe est résolu au démarrage de l'étape. |
| Mode d'exécution | choix | « Programme et arguments » : aucune interprétation par un shell (pas de redirection, de variable ni de joker). Valeurs : Script interprété par le shell, Programme et arguments (sans shell). |
| Shellselon les autres paramètres | choix | Valeurs : bash, sh (POSIX). |
| Scriptobligatoire · selon les autres paramètres | script | Texte fixe, jamais interprété comme expression Orkyvo. Arguments : $1, $2… ; variables : $NOM. |
| Arguments du script ($1, $2…)selon les autres paramètres | liste | — |
| Programmeobligatoire · selon les autres paramètres | texte | — |
| Argumentsselon les autres paramètres | liste | Un argument par ligne, transmis tel quel. |
| Répertoire de travail | texte | Facultatif. Transmis littéralement (échappé). |
| Variables transmises | clé-valeur | Seules ces valeurs sont envoyées au serveur, échappées : utilisez {{ $env.NOM }} ou {{ $json.champ }} sans risque d'interprétation par le shell. |
| Délai maximal (secondes) | nombre | 3600 s au plus. Au-delà, le processus distant est arrêté et l'arrêt vérifié. |
| Codes de sortie réussis | texte | Ex. 0 ; 0,1 ; 0-2. |
| Taille maximale des sorties (Ko) | nombre | Par flux (stdout, stderr), 1024 Ko au plus ; au-delà la sortie est tronquée et signalée. |
| Exécuter avec sudo (non interactif) | oui / non | Refusé si le serveur n'autorise pas les opérations privilégiées. |
| En cas d'échec sur un serveur | choix | Valeurs : Échouer le bloc (après tous les serveurs), Continuer : le statut figure dans le résultat. |
| Serveurs traités en parallèle (groupe) | nombre | 50 au plus. |
Données reçues et renvoyées
- EntréeListe d'éléments ; le premier élément alimente les expressions (variables, arguments, répertoire).
- SortieUn élément par serveur : { serverId, serverName, environmentId, status, exitCode, stdout, stderr, startedAt, finishedAt, durationMs, timedOut, cancelled, cancelConfirmed, outputTruncated, error, taskId }. status : SUCCEEDED, FAILED, TIMED_OUT, CANCELLED, INDETERMINATE (connexion perdue : la commande a pu s'exécuter), REFUSED, EXPIRED.
Erreurs
Serveur d'un autre environnement, transport incompatible, opération non autorisée sur le serveur, sudo non autorisé, clé d'hôte modifiée, authentification refusée, délai dépassé, code de sortie non réussi (selon la stratégie).
À savoir. Une commande dont le résultat est inconnu (connexion perdue, worker interrompu) n'est jamais relancée automatiquement : elle est marquée « indéterminée ».
À savoir. Annulation : interruption du processus distant puis vérification ; cancelConfirmed indique si l'arrêt a été constaté.
Exemple
Paramètres d'un bloc prêt à l'emploi. Dans l'éditeur, l'onglet Aide du bloc applique cet exemple en un clic.
{
"mode": "shell",
"shell": "bash",
"script": "set -e\ndf -P / | awk 'NR==2{print $5}'\nsystemctl is-active nginx",
"timeoutSeconds": "30",
"successCodes": "0",
"onError": "continue"
}Voir aussi
- Fichiers du serveurLit ou écrit des fichiers dans le dossier de travail du worker (édition autohébergée).
- GitClone, met à jour, valide et pousse un dépôt Git dans le dossier de travail du worker (édition autohébergée).
- Commande systèmeExécute une commande shell sur la machine du worker (édition autohébergée).