Como imprimir a saída de comando em Ansible?

Como imprimir a saída de comando em Ansible?
Normalmente, quando você executa um manual Ansible, você recebe detalhes de execução impressos no terminal. Isso inclui o nome da peça e da tarefa e uma recapitulação de reprodução indicando se o manual fez alguma alteração no host gerenciado ou no sistema remoto

Mas suponha que você queira imprimir a saída do comando do comando que está sendo executado no alvo remoto. Como você faz isso? Neste tutorial, você aprenderá a imprimir a saída de comando em Ansible.

Pré -requisitos

Antes de começar, verifique se você tem Ansible instalado no seu sistema Linux. Neste guia, estamos executando o Ubuntu 20.04 em que Ansible instalou. Confira nosso guia sobre como instalar Ansible no Ubuntu 20.04.

Imprimir saída de comando em Ansible

Vamos pegar um arquivo de manual simples que lista o diretório inicial do host gerenciado ou host remoto.

---
- Hosts: estadiamento
Nome: Liste o conteúdo do diretório doméstico
tarefas:
- Nome: List Arquivos e Pasta no Diretório Home
Shell: 'ls -l'

O manual vai correr muito bem; No entanto, a saída não será exibida no terminal. Tudo o que é registrado é a natureza da atividade que está acontecendo no host gerenciado.

Quando um arquivo de manual é executado, toda tarefa salva sua saída em uma variável. Para capturar a saída, você precisa especificar sua própria variável na qual a saída será salva. Para conseguir isso, usamos o 'registro' parâmetro para registrar a saída em uma variável. Então use o 'depurar' módulo para exibir o conteúdo da variável para padrão.

Para demonstrar isso, vamos usar alguns exemplos.

Exemplo 1: Imprima a saída de comando de arquivos de listagem no diretório inicial

Anteriormente, fornecemos um exemplo de um arquivo de manual que lista o conteúdo do diretório doméstico de um host gerenciado. No entanto, como descobrimos, a saída não é impressa para padrão.

Usaremos o parâmetro 'Register' para registrar os resultados em uma variável chamada command_output para resolver este problema. Então, vamos imprimir a saída usando o 'depurar' módulo.

Aqui está o arquivo de manual completo.

---
- Hosts: estadiamento
Nome: Liste o conteúdo do diretório doméstico
tarefas:
- Nome: List Arquivos e Pasta no Diretório Home
Shell: 'ls -l'
Registro: command_output
- depurar:
var: command_output.stdout_lines

Quando o arquivo de manual é executado, a saída do conteúdo do diretório inicial é impressa para o padrão.

$ Ansible-playbook/etc/Ansible/list_contents.yml

Exemplo 2: Imprima a saída do comando do comando de tempo de atividade

Vamos levar outro cenário em que estamos imprimindo a saída de 'tempo de atividadeComando na concha do host gerenciado. Como você deve saber, o comando uptime imprime detalhes, como quanto tempo o sistema está sendo executado desde que foi ligado, conectado aos usuários e carrega a média.

Criamos um arquivo de manual chamado check_uptime.yml, como mostrado.

---
- Hosts: estadiamento
Nome: Verifique o tempo de atividade do host remoto
tarefas:
- Nome: Verifique o tempo de atividade do servidor Ubuntu remoto
Shell: tempo de atividade
Registro: command_output
- depurar:
var: command_output.stdout_lines

Quando executado, os detalhes do tempo de atividade são impressos no terminal, como mostrado.

$ Ansible-playbook/etc/Ansible/check_uptime.yml

Conclusão

Este guia demonstra como você pode imprimir a saída do comando para padrão em Ansible. Isso foi esclarecedor e que agora você pode imprimir a saída do seu comando para Std Out.