Dans ce court article, nous expliquerons comment résoudre le problème: « module_stderr« : » Connexion partagée à xxxx fermée. R n « , » module_stdout « : » / bin / sh: / usr / bin / python: aucun fichier ou répertoire de ce type r n « , lors de l’exécution des commandes Ansible.

La capture d’écran suivante montre l’erreur du module Ansible. Nous avons rencontré cette erreur lors de l’exécution d’un Commande Ansible pour exécuter des commandes sur deux nouvellement déployés CentOS 8 les serveurs.

Erreur Du Module Ansible
Erreur Du Module Ansible
Erreur Du Module Ansible

À partir des détails de l’erreur, la connexion a échoué car le ou les shell (s) du système distant n’ont pas pu trouver le Python interprète (/ usr / bin / python) comme indiqué par la ligne: « module_stdout « : » / bin / sh: / usr / bin / python: aucun fichier ou répertoire de ce type r n«.

Après avoir vérifié les hôtes distants, nous avons découvert que les systèmes n’ont pas Python 2 installée.

Vérifier Le Binaire Python
Vérifier Le Binaire Python
Vérifier Le Binaire Python

Ils ont Python 3 installé par défaut et son binaire est / usr / bin / python3.

Publicité
Vérifier Le Binaire Python3
Vérifier Le Binaire Python3
Vérifier Le Binaire Python3

Selon la documentation Ansible, Ansible (2,5 et au-dessus) fonctionne uniquement avec Python version 3 et supérieure. En outre, Ansible est censé détecter et utiliser automatiquement Python 3 sur de nombreuses plates-formes qui l’accompagnent.

Cependant, en cas d’échec, vous pouvez configurer explicitement un interpréteur Python 3 en définissant le ansible_python_interpreter variable d’inventaire au niveau du groupe ou de l’hôte à l’emplacement d’un interpréteur Python 3 comme décrit ci-dessous.

Passer l’interpréteur Python à Ansible sur la ligne de commande

Pour corriger temporairement l’erreur ci-dessus, vous pouvez utiliser le -e flag pour passer l’interpréteur Python 3 à Ansible comme indiqué.

$ ansible prod_servers  -e 'ansible_python_interpreter=/usr/bin/python3' -a "systemctl status firewalld" -u root
Définir L'Interpréteur Python Via La Ligne De Commande
Définir L'Interpréteur Python Via La Ligne De Commande
Définir L’interpréteur Python Via La Ligne De Commande

Définition de l’interpréteur Python pour Ansible dans l’inventaire

Pour corriger l’erreur de façon permanente, définissez le ansible_python_interpreter variable d’inventaire dans votre inventaire / etc / ansible / hosts. Vous pouvez l’ouvrir pour le modifier à l’aide de l’éditeur de texte v / im ou nano comme indiqué.

$ sudo vim /etc/ansible/hosts
OR
# vim /etc/ansible/hosts

Ajoutez la ligne suivante à chaque hôte ou hôtes d’un groupe:

ansible_python_interpreter=/usr/bin/python3

Ainsi, les définitions de vos hôtes peuvent ressembler à ceci:

[prod_servers]
192.168.10.1			ansible_python_interpreter=/usr/bin/python3
192.168.10.20			ansible_python_interpreter=/usr/bin/python3.6
Définir L'Interpréteur Python Pour Ansible
Définir L'Interpréteur Python Pour Ansible
Définir L’interpréteur Python Pour Ansible

Vous pouvez également définir le même interpréteur Python pour un groupe d’hôtes comme indiqué.

[prod_servers]
192.168.10.1		
192.168.10.20		

[prod_servers:vars]
ansible_python_interpreter=/usr/bin/python3
Définir L'Interpréteur Python Pour Tous Les Hôtes D'Un Groupe
Définir L'Interpréteur Python Pour Tous Les Hôtes D'Un Groupe
Définir L’interpréteur Python Pour Tous Les Hôtes D’un Groupe

Définition de l’interpréteur Python par défaut dans la configuration Ansible

Pour définir l’interpréteur Python par défaut, vous pouvez définir le ansible_python_interpreter variable d’inventaire dans le fichier de configuration principal d’Ansible /etc/ansible/ansible.cfg.

$ sudo vim /etc/ansible/ansible.cfg

Ajoutez la ligne suivante sous le [defaults] section.

ansible_python_interpreter=/usr/bin/python3
Définir L'Interpréteur Python Dans La Configuration Ansible
Définir L'Interpréteur Python Dans La Configuration Ansible
Définir L’interpréteur Python Dans La Configuration Ansible

Enregistrez le fichier et fermez-le.

Maintenant, essayez d’exécuter à nouveau la commande Ansible:

$ ansible prod_servers -a "systemctl status firewalld" -u root
Vérifier La Commande Ansible
Vérifier La Commande Ansible
Vérifier La Commande Ansible

Pour plus d’informations sur ce sujet, consultez Prise en charge de Python 3 dans la documentation officielle d’Ansible.

Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer:

TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint! pour rechercher ou parcourir les milliers d’articles publiés disponibles GRATUITEMENT à tous.

Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en guise de remerciement.

Soutenez-Nous

Nous sommes reconnaissants de votre soutien sans fin.

.

Rate this post
Publicité
Article précédentPoco X3 fuit dans une vidéo pratique complète, les prix apparaissent également
Article suivantMeilleures alternatives QuickBooks pour votre comptabilité d’entreprise
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici