So beheben Sie die gemeinsame Verbindung zu x.X.xx geschlossen ”Ansible -Fehler
- 4034
- 1290
- Tamina Liebach
In diesem kurzen Artikel werden wir erklären, wie man die: “lösen:“module_stderr„:“ Gemeinsame Verbindung zu x.X.X.x geschlossen.\ r \ n "," module_stdout ":"/bin/sh:/usr/bin/python: Keine solche Datei oder Verzeichnis \ r \ n ", während Ansible -Befehle ausgeführt werden.
Der folgende Screenshot zeigt den Fehler mit dem Ansible -Modul an. Wir haben diesen Fehler aufgetreten, während wir einen Ansible -Befehl ausgeführt haben, um Befehle auf zwei neu bereitgestellten Ausführungen auszuführen Centos 8 Server.
Ansible -ModulfehlerAus den Fehlerdetails ist die Verbindung fehlgeschlagen, da die Schalen im Remote -System das nicht finden konnten Python Dolmetscher (/usr/bin/python) Wie durch die Zeile angegeben: “module_stdout ”:“/bin/sh:/usr/bin/python: Keine solche Datei oder Verzeichnis \ r \ n“.
Nachdem wir die Remote -Hosts überprüft hatten, stellten wir fest, dass die Systeme nicht haben Python 2 Eingerichtet.
Überprüfen Sie die Binärdatei PythonSie haben Python 3 standardmäßig installiert und sein binär ist /usr/bin/python3.
Überprüfen Sie die Binärpython3Nach der Ansible -Dokumentation, Ansible (2.5 und oben) funktioniert nur mit Python Version 3 und oben. Außerdem soll Ansible Python 3 automatisch auf vielen Plattformen erkennen und verwenden.
Wenn es jedoch nicht zu tun hat, können Sie einen Python 3 -Dolmetscher explizit konfigurieren, indem Sie die festlegen ansible_python_interpreter Bestandsvariable an einer Gruppe oder Host -Ebene zum Ort eines Python 3 -Dolmetschers, wie nachstehend beschrieben.
Python-Dolmetscher an die Befehlszeile an ANSIBLE weitergeben
Um den obigen Fehler vorübergehend zu beheben, können Sie die verwenden -e
Flagge, um den Python 3 -Dolmetscher wie gezeigt an Ansible zu übergeben.
$ ansible prod_servers -e 'ansible_python_interpreter =/usr/bin/python3' -a "SystemCTL Status Firewalld" -U -RootStellen Sie den Python-Interpreter über die Befehlszeile fest
Einstellen von Python -Dolmetscher für Ansible im Inventar
Um den Fehler dauerhaft zu beheben, stellen Sie die fest ansible_python_interpreter Inventarvariable in Ihrem Inventar /etc/ansible/hosts. Sie können es zum Bearbeiten mit dem Texteditor von V/IM oder Nano wie gezeigt öffnen.
$ sudo vim/etc/ansible/hosts oder # vim/etc/ansible/hosts
Fügen Sie die folgende Zeile an jeden Host oder Hosts in einer Gruppe hinzu:
ansible_python_interpreter =/usr/bin/python3
Daher können die Definitionen Ihrer Hosts wie folgt aussehen:
[prod_servers] 192.168.10.1 ansible_python_interpreter =/usr/bin/python3 192.168.10.20 ansible_python_interpreter =/usr/bin/python3.6Setzen Sie Python -Dolmetscher für Ansible
Stellen Sie alternativ den gleichen Python -Dolmetscher für eine Gruppe von Hosts wie gezeigt ein.
[prod_servers] 192.168.10.1 192.168.10.20 [prod_servers: vars] ansible_python_interpreter =/usr/bin/python3Stellen Sie Python-Dolmetscher für alle Hosts in einer Gruppe fest
Festlegen Standard -Python -Interpreter in der ansiblen Konfiguration
Um den Standard -Python -Dolmetscher festzulegen, können Sie die festlegen ansible_python_interpreter Bestandsvariable in der Hauptkonfigurationsdatei von Ansible /etc/ansible/ansible.CFG.
$ sudo vim/etc/ansible/ansible.CFG
Fügen Sie die folgende Zeile unter die der hinzu [Standardeinstellungen]
Abschnitt.
ansible_python_interpreter =/usr/bin/python3Stellen Sie den Python -Dolmetscher in eine ansible Konfiguration ein
Speichern Sie die Datei und schließen Sie sie.
Versuchen Sie nun noch einmal, den Ansible -Befehl auszuführen:
$ ansible prod_servers -a "SystemCTL Status Firewalld" -U RootÜberprüfen Sie den Befehl ansible
Weitere Informationen zu diesem Thema finden Sie in Python 3 Support in der offiziellen Ansible -Dokumentation.
- « Der ultimative Leitfaden zur Sicherung, Härte und Verbesserung der Leistung des NGINX -Webservers
- Frostwire - ein Cloud -Downloader, ein BitTorrent -Client und ein Medienspieler »