Pour effectuer une tâche automatisée sur un hôte distant avec Ansible, il est nécessaire de remplir et de travailler avec certaines variables, comme il faut s'y attendre. Par exemple, ce type de tâche est nécessaire pour mettre un hôte distant en ligne, autoriser les privilèges de connexion et d'utilisateur, et configurer un environnement Python.
Il est possible de se connecter en SSH à un hôte distant et de vérifier si l'hôte répond à tous les critères. Cependant, en tant qu'outil d'automatisation, Ansible fournit des modules qui vous permettent d'effectuer ces tâches fastidieuses et chronophages en une seule ligne de commande.
Ce didacticiel vous montre comment utiliser le module ping intégré d'Ansible pour exécuter diverses variables définies sur des hôtes distants. La demande de ping Ansible est un outil simple mais utile que vous pouvez utiliser pour tester la disponibilité et la praticité des hôtes distants.
Nous allons maintenant examiner de plus près le fonctionnement du ping Ansible.
REMARQUE: Cette section est quelque peu théorique. Si tout ce dont vous avez besoin est la partie technique de l'article, vous pouvez ignorer cette section. Néanmoins, nous vous recommandons de lire cette section, car elle fournit des informations et des informations utiles sur le module ping.
Cela étant noté, nous allons maintenant passer à l'introduction du module ping.
À propos du module ping d'Ansible
La demande de ping Ansible vérifie l'hôte distant. Ce module vérifie spécifiquement :
- Si l'hôte distant est opérationnel et accessible.
- Si l'environnement Python peut exécuter avec succès les playbooks requis.
- Le login et les privilèges de l'utilisateur.
Après l'envoi d'une requête ping à l'hôte distant, le module renvoie une valeur indiquant si le ping a réussi. Par défaut, le module ping renvoie la chaîne 'pong' en cas de succès, et une exception en cas d'échec (si spécifié).
CONSEIL DE PRO: Pour vous assurer que vos playbooks Ansible sur les hôtes distants cibles n'échouent pas, utilisez le module ping pour vérifier si les exigences sont remplies, et n'exécutez les tâches que si une sortie réussie est obtenue.
Fonctionnalités du module ping Ansible
Le module ping est assez simple, et voici une liste des fonctionnalités fournies par ce module :
- Pas un ping ICMP ; c'est plutôt un petit module qui nécessite un environnement Python valide sur des hôtes distants.
- Les hôtes distants Windows doivent plutôt utiliser le module win_ping.
- Fournit un module net_ping pour les périphériques réseau.
- N'accepte qu'un seul paramètre pour lever une exception.
- Utilisé par défaut lors de l'appel de la commande ansible dans le répertoire /usr/bin/ansible pour vérifier les autorisations de connexion et un environnement Python valide.
- Renvoie la chaîne 'pong' en cas de succès.
Comment utiliser le module ping Ansible
Nous allons maintenant voir quelques exemples utilisant le module ping d'Ansible.
Utilisation de la commande ping AD HOC
Le moyen le plus simple d'exécuter le module ping Ansible est d'exécuter une simple commande AD HOC dans le terminal.
La commande AD HOC est la suivante :
ansible all -m ping -vLa commande ci-dessus commence par appeler Ansible, suivi du modèle spécifique de l'hôte. Dans ce cas, nous voulons envoyer un ping à « tous » les hôtes. La partie suivante, '-m', spécifie le module que nous voulons utiliser. Le '-v' signifie verbeux.
En cas de succès, vous obtiendrez une sortie comme celle illustrée ci-dessous :
Utilisation de /etc/ansible/ansible.cfg comme fichier de configuration 35.222.210.12| SUCCÈS =>
"ansible_facts":
"discovered_interpreter_python": "/usr/bin/python" ,
"changé": faux,
"ping pong"
Si les hôtes distants ne sont pas disponibles (peut-être qu'ils sont hors ligne), vous obtiendrez une sortie comme celle illustrée ci-dessous :
Utilisation de /etc/ansible/ansible.cfg comme fichier de configuration 35.222.210.12| INACCESSIBLE! =>
"changé": faux,
"msg": "Impossible de se connecter à l'hôte via ssh : ssh : se connecter à l'hôte 35.222.210.12 port 22 : connexion expirée",
"inaccessible": vrai
Utilisation du module ping dans Playbooks
Vous pouvez également utiliser le module ping dans un playbook. Dans la plupart des cas, vous ne créerez pas de playbook qui n'exécute qu'une requête ping. Cependant, vous pouvez envelopper toutes les tâches dans les conditions de la demande de ping.
Considérez le livre de jeu simple suivant :
- hôtes : tousdevenir : oui
Tâches:
- ping
Vous remarquerez peut-être que dans le playbook ci-dessus, j'ai inclus la directive « devenir ». Ce n'est pas une exigence, mais j'ai rencontré des cas dans lesquels le module ping échoue pour un utilisateur standard. Vous pouvez maintenant exécuter le playbook et vérifier si le serveur hôte répond aux exigences d'une réponse « pong » réussie.
ansible-playbook ping.ymlSi le ping échoue, vous obtiendrez l'erreur « injoignable » suivante :
fatale : [35.222.210.12] : INDISPENSABLE! => "changed": false, "msg": "Impossible de se connecter à l'hôte via ssh : ssh : se connecter à l'hôte 35.222.210.12 port 22 : connexion expirée", "unreachable": trueUtilisation de l'exception raise avec le module ping
Vous pouvez également spécifier des données en tant que plantage pour induire une exception. Cela change le retour par défaut de 'pong' à 'crash.'
Considérez le livre de jeu suivant :
- hôtes : tousdevenir : oui
Tâches:
- ping :
panne : données
L'exécution du playbook avec exception doit renvoyer la valeur suivante :
ansible-playbook ping_except.yml
Conclusion
Ce tutoriel vous a montré les diverses utilités du module ping. Bien que ce module ne contienne pas de paramètres complexes comme la plupart des modules Ansible, il contient toujours de puissantes capacités. Par exemple, vous pouvez utiliser le module ping pour vérifier si une erreur est due à un environnement Python manquant et créer une tâche pour installer l'environnement requis sur l'hôte distant.