Para realizar uma tarefa automatizada em um host remoto com Ansible, é necessário preencher e trabalhar com certas variáveis, como seria de esperar. Por exemplo, este tipo de tarefa é necessária para colocar um host remoto online, permitir login e privilégios de usuário e configurar um ambiente Python.
É possível conectar o SSH em um host remoto e verificar se o host atende a todos os critérios. No entanto, como uma ferramenta de automação, o Ansible fornece módulos que permitem que você execute essas tarefas tediosas e demoradas em uma única linha de comando.
Este tutorial mostra como usar o módulo de ping integrado Ansible para executar várias variáveis definidas em hosts remotos. A solicitação de ping Ansible é uma ferramenta simples, mas útil, que você pode usar para testar a disponibilidade e praticidade de hosts remotos.
Vamos agora dar uma olhada mais de perto em como o ping Ansible funciona.
NOTA: Esta seção é um tanto teórica. Se tudo que você precisa é a parte técnica do artigo, você pode pular esta seção. Mesmo assim, recomendamos a leitura desta seção, pois fornece alguns insights e informações úteis sobre o módulo ping.
Com isso observado, iremos agora apresentar o módulo ping.
Sobre o Módulo de ping Ansible
A solicitação de ping Ansible verifica o host remoto. Este módulo verifica especificamente:
- Se o host remoto está ativo e acessível.
- Se o ambiente Python pode executar com sucesso os manuais necessários.
- O login e privilégios do usuário.
Depois que uma solicitação de ping é enviada ao host remoto, o módulo retorna um valor indicando se o ping foi bem-sucedido. Por padrão, o módulo ping retorna a string 'pong' em caso de sucesso e uma exceção em caso de falha (se especificado).
PRO TIP: Para garantir que seus manuais do Ansible nos hosts remotos de destino não falhem, use o módulo ping para verificar se os requisitos foram atendidos e só execute as tarefas se uma saída bem-sucedida for obtida.
Recursos do Módulo Ansible ping
O módulo ping é bastante simples e a seguir está uma lista dos recursos fornecidos por este módulo:
- Não é um ping ICMP; em vez disso, é um pequeno módulo que requer um ambiente Python válido em hosts remotos.
- Os hosts remotos do Windows devem usar o módulo win_ping em vez.
- Fornece um módulo net_ping para dispositivos de rede.
- Aceita apenas um único parâmetro para gerar uma exceção.
- Usado por padrão ao chamar o comando ansible no diretório / usr / bin / ansible para verificar as permissões de login e um ambiente Python válido.
- Retorna a string 'pong' em caso de sucesso.
Como usar o módulo Ansible ping
Agora veremos alguns exemplos que usam o módulo Ansible ping.
Usando o Comando AD HOC ping
A maneira mais simples de executar o módulo Ansible ping é executar um comando AD HOC simples no terminal.
O comando AD HOC é o seguinte:
ansible all -m ping -vO comando acima começa chamando Ansible, seguido pelo padrão específico do host. Neste caso, queremos pingar 'todos' os hosts. A próxima parte, '-m,' especifica o módulo que queremos usar. O '-v' significa verboso.
Em caso de sucesso, você obterá uma saída como a mostrada abaixo:
Usando / etc / ansible / ansible.cfg como arquivo de configuração 35.222.210.12| SUCESSO =>
"ansible_facts":
"found_interpreter_python": "/ usr / bin / python",
"alterado": falso,
"pingue-pongue"
Se os hosts remotos não estiverem disponíveis (talvez estejam offline), você obterá uma saída como a mostrada abaixo:
Usando / etc / ansible / ansible.cfg como arquivo de configuração 35.222.210.12| INACESSÍVEL! =>
"alterado": falso,
"msg": "Falha ao conectar ao host via ssh: ssh: conectar ao host 35.222.210.12 porta 22: Tempo limite de conexão esgotado ",
"inacessível": verdadeiro
Usando o módulo ping em Playbooks
Você também pode usar o módulo ping dentro de um manual. Na maioria dos casos, você não criará um manual que execute apenas uma solicitação de ping. No entanto, você pode agrupar todas as tarefas dentro das condições da solicitação de ping.
Considere o seguinte manual simples:
- hosts: todostornar-se: sim
tarefas:
- ping
Você pode notar que no manual acima, eu incluí a diretiva 'tornar-se'. Isso não é um requisito, mas encontrei casos em que o módulo ping falha para um usuário padrão. Agora você pode executar o manual e verificar se o servidor host atende aos requisitos para uma resposta 'pong' bem-sucedida.
ansible-playbook ping.ymlSe o ping não for bem-sucedido, você receberá o seguinte erro 'inacessível':
fatal: [35.222.210.12]: INACESSÍVEL! => "alterado": false, "msg": "Falha ao conectar ao host via ssh: ssh: conectar ao host 35.222.210.12 porta 22: Tempo limite de conexão esgotado "," inacessível ": verdadeiroUsando o raise Exception com o Módulo ping
Você também pode especificar dados como uma falha para induzir uma exceção. Isso muda o retorno padrão de 'pong' para 'crash.'
Considere o seguinte manual:
- hosts: todostornar-se: sim
tarefas:
- ping:
crash: data
Executar o manual com exceção deve retornar o seguinte valor:
ansible-playbook ping_except.yml
Conclusão
Este tutorial mostrou a você a utilidade diversa do módulo ping. Embora este módulo não contenha parâmetros complexos como a maioria dos módulos Ansible, ele ainda contém recursos poderosos. Por exemplo, você pode usar o módulo ping para verificar se um erro é devido a um ambiente Python ausente e criar uma tarefa para instalar o ambiente necessário no host remoto.