Unix Shell
- Task Type:
ssh
Descrizione
Il Task Unix Shell è un componente di amministrazione di sistema estremamente versatile che consente al Workflow di eseguire comandi su un server remoto o sulla macchina locale (modalità Default).
È uno strumento completo per l’automazione IT, che permette di eseguire script, gestire file, controllare lo stato dei servizi, installare pacchetti e svolgere qualsiasi altra operazione disponibile da una riga di comando.
Configurazione
La configurazione del Task definisce i dettagli della connessione (se prevista) e il comando da eseguire. I campi possono essere valorizzati manualmente o tramite parametri e variabili del workflow.
Connessione al Server
- Modalità connessione: definisce l’origine delle credenziali e il tipo di esecuzione. Può assumere tre modalità operative:
- Default: i comandi vengono eseguiti sulla macchina locale, senza connessione SSH.
- Manuale: consente l’inserimento manuale dei parametri di connessione.
- Environment: utilizza un ambiente di connessione preconfigurato. In questa modalità viene visualizzato un menu che elenca le connessioni disponibili in base al ruolo associato al Workflow.
- Altri campi (solo per connessione remota):
- Indirizzo IP: indirizzo IP del server remoto.
- Hostname: nome host del server remoto.
- Utente: nome utente utilizzato per stabilire la connessione SSH.
- Autenticazione: seleziona Password oppure Chiave.
- Password: compare scegliendo Password.
- Path chiave privata: compare scegliendo Chiave; richiede il path assoluto del file e supporta parametri e variabili del workflow. Sono supportate chiavi RSA ed Ed25519.
- Porta: porta utilizzata per la connessione SSH (il valore predefinito è 22).
Esegui comando come altro utente
Attivando questa checkbox, è possibile eseguire la ricerca con un utente diverso da quello utilizzato per la connessione SSH.
- Utente: nome dell'utente con cui verrà eseguito il comando.
- Password: password dell’utente utilizzato per l’esecuzione del comando.
Tipologia di comando
Questa opzione permette di scegliere la modalità di esecuzione del Task:
- Connessione: in questa modalità, il Task si limita a stabilire una connessione SSH con il server remoto per verificare che sia raggiungibile e che le credenziali siano corrette. Non esegue alcun comando. È utile come primo passo di un Workflow per assicurarsi che un server sia online prima di procedere.
- Comando: è un'area di testo dove si possono inserire uno o più comandi shell da eseguire sul server remoto.
Parametri di Output
Una volta che il servizio esterno ha risposto alla chiamata, il Task espone i seguenti parametri di output, che sono cruciali per elaborare il risultato della richiesta:
- result: Contiene l'output standard (stdout) dei comandi eseguiti. Se i comandi producono un risultato testuale, questo verrà catturato in questo parametro.
- resultJson: rappresenta il risultato dell’esecuzione del task in formato JSON, includendo informazioni generali, configurazioni e dettagli sull’esecuzione.
- exitStatus: Restituisce il codice di uscita dell'ultimo comando eseguito. Un valore di 0 indica tipicamente un'esecuzione avvenuta con successo, mentre valori diversi da zero segnalano un errore.
Esempio parametro resultJson
{
"run_info": {
"status": "Completed",
"run_result": "Success"
},
"output_parameters": {
"exitStatus": "0"
}
}
Note Importanti
- L'utente utilizzato per la connessione (o l'utente "run as") deve avere i permessi necessari per eseguire i comandi specificati.
- È possibile concatenare più comandi utilizzando gli operatori della shell standard, come && (esegue il secondo comando solo se il primo ha successo) o ; (esegue il secondo comando indipendentemente dall'esito del primo).
- Il task stabilisce una connessione SSH con il server remoto ed esegue i comandi configurati. Se si utilizza l’autenticazione tramite chiavi SSH, è necessario che la chiave pubblica sia registrata sul server remoto. Se l’opzione “Esegui comando come altro utente” è abilitata, il controllo viene eseguito con un utente diverso da quello della connessione SSH principale.