Come stampare l'output di comandi in ansible?

Come stampare l'output di comandi in ansible?
Di solito, quando si esegue un playbook Ansible, si ottiene i dettagli di esecuzione stampati sul terminale. Questi includono il nome del gioco e del compito e un riepilogo del gioco che indica se il playbook ha apportato modifiche all'host gestito o al sistema remoto

Ma, supponiamo di voler stampare l'output del comando del comando eseguito sul target remoto. Come si fa a fare questo? In questo tutorial, imparerai come stampare l'output del comando in Ansible.

Prerequisiti

Prima di iniziare, assicurati di avere Ansible installato sul tuo sistema Linux. In questa guida, stiamo eseguendo Ubuntu 20.04 in cui è installato Ansible. Dai un'occhiata alla nostra guida su come installare Ansible su Ubuntu 20.04.

Stampa l'output del comando in ansible

Sia un semplice file di playbook che elenca la home directory dell'host gestito o dell'host remoto.

---
- Host: messa in scena
Nome: elenca il contenuto di Home Directory
compiti:
- Nome: elenca file e cartelle nella directory home
Shell: 'ls -l'

Il playbook funzionerà bene; Tuttavia, l'uscita non verrà visualizzata sul terminale. Tutto ciò che è registrato è la natura dell'attività che sta accadendo sull'host gestito.

Quando viene eseguito un file di playbook, ogni attività salva il proprio output in una variabile. Per catturare l'output, è necessario specificare la propria variabile in cui verrà salvato l'output. Per raggiungere questo obiettivo, usiamo il 'Registrati' parametro per registrare l'output su una variabile. Quindi usa il 'debug ' Modulo per visualizzare il contenuto della variabile secondo lo standard.

Per dimostrarlo, usiamo alcuni esempi.

Esempio 1: stampare l'output del comando dei file di elenco nella directory home

In precedenza, abbiamo fornito un esempio di un file di playbook che elenca il contenuto della home directory di un host gestito. Tuttavia, come abbiamo scoperto, l'output non è stampato su Standard Out.

Utilizzeremo il parametro "Registra" per registrare i risultati in una variabile chiamata Command_Output per risolvere questo problema. Quindi, stamperemo l'output usando il 'debug ' modulo.

Ecco il file completo playbook.

---
- Host: messa in scena
Nome: elenca il contenuto di Home Directory
compiti:
- Nome: elenca file e cartelle nella directory home
Shell: 'ls -l'
Registro: Command_Output
- debug:
var: comand_output.stdout_lines

Quando viene eseguito il file Playbook, l'output del contenuto della directory home viene stampato su Standard Out.

$ ansible-playbook/etc/ansible/list_contents.YML

Esempio 2: stampare l'output del comando del comando di uptime

Prendiamo un altro scenario in cui stiamo stampando l'output di "Uptime'Comando sulla shell dell'host gestito. Come si potrebbe sapere, i comandi di uptime stampano dettagli come quanto tempo è in esecuzione da quando è stato acceso, registrato negli utenti e la media di caricamento.

Abbiamo creato un file di playbook chiamato check_uptime.YML, come mostrato.

---
- Host: messa in scena
Nome: controlla il tempo di uptime dell'host remoto
compiti:
- Nome: controlla il tempo di uptime del server Ubuntu remoto
Shell: Uptime
Registro: Command_Output
- debug:
var: comand_output.stdout_lines

Se eseguiti, i dettagli di uptime vengono stampati sul terminale come mostrato.

$ ansible-playbook/etc/ansible/check_uptime.YML

Conclusione

Questa guida dimostra come è possibile stampare l'output del comando su standard in Ansible. Questo è stato illuminante e che ora puoi stampare l'output del tuo comando per uscire.