Testar o Ansible com um Comando Simples
Nesta etapa, você testará sua instalação do Ansible executando um comando simples contra o sistema local. Mude para o diretório do projeto e use o arquivo de inventário pré-configurado para executar um comando ad-hoc do Ansible.
Navegue até o diretório do projeto e teste a funcionalidade básica de ping:
cd /home/labex/project
ansible localhost -m ping
O módulo ping na verdade não envia pacotes ICMP; em vez disso, ele verifica se o Ansible pode se conectar ao destino e executar código Python. Uma resposta bem-sucedida terá esta aparência:
localhost | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
Vamos analisar esta saída:
- localhost | SUCCESS: Mostra que o comando foi executado com sucesso no destino localhost
- ansible_facts: Contém informações do sistema descobertas durante a execução
- discovered_interpreter_python: O caminho do interpretador Python que o Ansible encontrou e usará
- changed: false: Indica que nenhuma alteração foi feita no sistema (ping é somente leitura)
- ping: "pong": A resposta clássica confirmando a conectividade do Ansible
A resposta "pong" confirma que o Ansible está funcionando corretamente e pode se comunicar com o sistema de destino.
Vamos também testar a coleta de informações do sistema usando o módulo setup:
ansible localhost -m setup -a "filter=ansible_distribution*"
Este comando usa o módulo setup para coletar fatos do sistema, filtrando especificamente por informações de distribuição. Você deve ver uma saída contendo detalhes sobre seu sistema Red Hat Enterprise Linux:
localhost | SUCCESS => {
"ansible_facts": {
"ansible_distribution": "RedHat",
"ansible_distribution_file_parsed": true,
"ansible_distribution_file_path": "/etc/redhat-release",
"ansible_distribution_file_search_string": "Red Hat",
"ansible_distribution_file_variety": "RedHat",
"ansible_distribution_major_version": "9",
"ansible_distribution_release": "Plow",
"ansible_distribution_version": "9.6",
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false
}
Entendendo a saída dos fatos do sistema:
- ansible_distribution: O nome da distribuição Linux (RedHat)
- ansible_distribution_file_parsed: Se o Ansible leu com sucesso o arquivo de distribuição
- ansible_distribution_file_path: O arquivo que contém informações de distribuição
- ansible_distribution_file_search_string: O padrão de texto usado para identificar a distribuição
- ansible_distribution_file_variety: A família da distribuição (família RedHat)
- ansible_distribution_major_version: O número da versão principal (9)
- ansible_distribution_release: O codinome da versão (Plow)
- ansible_distribution_version: O número da versão completo (9.6)
- discovered_interpreter_python: Interpretador Python descoberto pelo Ansible
Isso confirma que o Ansible pode coletar com sucesso informações do sistema do host de destino, o que é essencial para criar automação condicional com base nas características do sistema.