Passa al contenuto principale
Versione: 2.0

Unix Shell

Configurazione corrente del task Unix Shell nel Workflow Designer
  • 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.