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.
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 1 Erreur Du Module Ansible](https://www.tecmint.com/wp-content/uploads/2020/09/ansible-module-error.png)
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 2 Erreur Du Module Ansible](https://www.tecmint.com/wp-content/uploads/2020/09/ansible-module-error.png)
À 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.
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 3 Vérifier Le Binaire Python](https://www.tecmint.com/wp-content/uploads/2020/09/check-python-binary.png)
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 4 Vérifier Le Binaire Python](https://www.tecmint.com/wp-content/uploads/2020/09/check-python-binary.png)
Ils ont Python 3 installé par défaut et son binaire est / usr / bin / python3.
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 5 Vérifier Le Binaire Python3](https://www.tecmint.com/wp-content/uploads/2020/09/check-python3-binary.png)
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 6 Vérifier Le Binaire Python3](https://www.tecmint.com/wp-content/uploads/2020/09/check-python3-binary.png)
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
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 7 Définir L'Interpréteur Python Via La Ligne De Commande](https://www.tecmint.com/wp-content/uploads/2020/09/specify-python-interpreter-via-command-liine.png)
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 8 Définir L'Interpréteur Python Via La Ligne De Commande](https://www.tecmint.com/wp-content/uploads/2020/09/specify-python-interpreter-via-command-liine.png)
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
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 9 Définir L'Interpréteur Python Pour Ansible](https://www.tecmint.com/wp-content/uploads/2020/09/set-default-python-interpreter-for-ansible.png)
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 10 Définir L'Interpréteur Python Pour Ansible](https://www.tecmint.com/wp-content/uploads/2020/09/set-default-python-interpreter-for-ansible.png)
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
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 11 Définir L'Interpréteur Python Pour Tous Les Hôtes D'Un Groupe](https://www.tecmint.com/wp-content/uploads/2020/09/set-python-interpreter-for-all-hosts-in-a-group.png)
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 12 Définir L'Interpréteur Python Pour Tous Les Hôtes D'Un Groupe](https://www.tecmint.com/wp-content/uploads/2020/09/set-python-interpreter-for-all-hosts-in-a-group.png)
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
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 13 Définir L'Interpréteur Python Dans La Configuration Ansible](https://www.tecmint.com/wp-content/uploads/2020/09/set-default-python-interpreter-in-ansible.png)
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 14 Définir L'Interpréteur Python Dans La Configuration Ansible](https://www.tecmint.com/wp-content/uploads/2020/09/set-default-python-interpreter-in-ansible.png)
Enregistrez le fichier et fermez-le.
Maintenant, essayez d’exécuter à nouveau la commande Ansible:
$ ansible prod_servers -a "systemctl status firewalld" -u root
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 15 Vérifier La Commande Ansible](https://www.tecmint.com/wp-content/uploads/2020/09/ansible-command-successful-after-fixing-module-error.png)
![Comment Réparer L'Erreur Ansible &Quot;Connexion Partagée À Xxxx Fermée&Quot; 16 Vérifier La Commande Ansible](https://www.tecmint.com/wp-content/uploads/2020/09/ansible-command-successful-after-fixing-module-error.png)
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.
Nous sommes reconnaissants de votre soutien sans fin.
.