Comment réparer la «connexion partagée à x.X.xx Erreur ansible fermée »
- 3075
- 893
- Jade Muller
Dans ce court article, nous expliquerons comment résoudre le: «module_stderr«:« Connexion partagée à x.X.X.x fermé.\ r \ n ”,« module_stdout »:« / bin / sh: / usr / bin / python: aucun fichier ou répertoire \ r \ n », tout en exécutant des commandes ANSIBLE.
La capture d'écran suivante montre l'erreur du module anible. Nous avons rencontré cette erreur lors de l'exécution d'une commande ANSIBLE pour exécuter des commandes sur deux nouvellement déployés Centos 8 les serveurs.
Erreur de module anibleÀ partir des détails d'erreur, la connexion a échoué car le ou les shells dans le système distant n'ont pas trouvé Python interprète (/ usr / bin / python) Comme indiqué par la ligne: «module_stdout ”:« / bin / sh: / usr / bin / python: pas de tel fichier ou répertoire \ 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érifiez Python binaireIls ont Python 3 installé par défaut et son binaire est / usr / bin / python3.
Vérifiez le binaire Python3Selon la documentation ANSIBLE, Anable (2.5 et ci-dessus) fonctionne avec Python version 3 et supérieure uniquement. En outre, Anible est censé détecter et utiliser automatiquement Python 3 sur de nombreuses plates-formes qui sont livrées avec.
Cependant, s'il échoue, vous pouvez explicitement configurer un interprète Python 3 en définissant le anible_python_interpreter Variable d'inventaire au niveau du groupe ou de l'hôte à l'emplacement d'un interprète Python 3 comme décrit ci-dessous.
Passer un interprète Python à ANSIBLE sur la ligne de commande
Pour corriger temporairement l'erreur ci-dessus, vous pouvez utiliser le -e
Flag pour passer l'interprète Python 3 à ANible comme indiqué.
$ anible prod_servers -e 'anible_python_interpreter = / usr / bin / python3' -a "status systemctl Firewalld" -u rootDéfinir l'interprète Python via la ligne de commande
Définir l'interprète Python pour ANSIBLE dans l'inventaire
Pour corriger l'erreur en permanence, définissez le anible_python_interpreter Variable d'inventaire dans votre inventaire / etc / anible / hôtes. Vous pouvez l'ouvrir pour l'édition à l'aide de l'éditeur V / IM ou Nano Text comme indiqué.
$ sudo vim / etc / anible / hosts ou # vim / etc / anible / hosts
Ajoutez la ligne suivante à chaque hôte ou hôte dans un groupe:
anible_python_interpreter = / usr / bin / python3
Ainsi, les définitions de vos hôtes peuvent ressembler à ceci:
[prod_servers] 192.168.dix.1 anible_python_interpreter = / usr / bin / python3 192.168.dix.20 anible_python_interpreter = / usr / bin / python3.6Définir l'interprète Python pour ANIBLE
Alternativement, définissez le même interprète Python pour un groupe d'hôtes que sur.
[prod_servers] 192.168.dix.1 192.168.dix.20 [prod_servers: vars] anible_python_interpreter = / usr / bin / python3Définissez l'interprète Python pour tous les hôtes d'un groupe
Définition de l'interprète Python par défaut dans la configuration ANSIBLE
Pour définir l'interpréteur Python par défaut, vous pouvez définir le anible_python_interpreter Variable d'inventaire dans le fichier de configuration principal d'ANSIBLE / etc / anible / anible.CFG.
$ sudo vim / etc / anible / anible.CFG
Ajouter la ligne suivante sous le [Par défaut]
section.
anible_python_interpreter = / usr / bin / python3Définir l'interprète Python dans la configuration ANSIBLE
Enregistrez le fichier et fermez-le.
Essayez maintenant d'exécuter la commande ANSIBLE une fois de plus:
$ anible prod_servers -a "Systemctl Status Firewalld" -u racineVérifiez la commande ANSIBLE
Pour plus d'informations sur ce sujet, voir le support Python 3 dans la documentation officielle ANSIBLE.
- « Le guide ultime pour sécuriser, durcir et améliorer les performances du serveur Web Nginx
- Frostwire - un téléchargeur de cloud, un client BitTorrent et un lecteur multimédia »