Jak naprawić „wspólne połączenie z x.X.xx zamknięty ”Ansible Błąd
- 3941
- 665
- Seweryn Augustyniak
W tym krótkim artykule wyjaśnimy, jak rozwiązać: „module_stderr„:„ Wspólne połączenie z x.X.X.x zamknięte.\ r \ n ”,„ module_stdout ”:„/bin/sh:/usr/bin/python: brak takiego pliku lub katalogu \ r \ n ”, podczas uruchamiania poleceń ansible.
Poniższy zrzut ekranu pokazuje błąd modułu Ansible. Napotkaliśmy ten błąd podczas uruchamiania polecenia ansible w celu wykonywania poleceń na dwóch nowo wdrożonych Centos 8 serwery.
Błąd modułu ansibleZ szczegółów błędu połączenie nie powiodło się, ponieważ powłoka w systemie zdalnym nie mogła znaleźć Pyton tłumacz (/usr/bin/python), jak wskazuje linia: „module_stdout ”:„/bin/sh:/usr/bin/python: brak takiego pliku lub katalogu \ r \ n".
Po sprawdzeniu zdalnych hostów odkryliśmy, że systemy nie mają Python 2 zainstalowane.
Sprawdź binarny PythonOni mają Python 3 zainstalowane domyślnie, a jego binarne jest /usr/bin/python3.
Sprawdź binarny Python3Zgodnie z dokumentacją Ansible, Ansible (2.5 i powyżej) działa tylko z Python wersją 3 i powyżej. Ponadto Ansible ma automatycznie wykrywać i wykorzystywać Python 3 na wielu platformach, które z nim wysyłają.
Jeśli jednak to się nie udało, możesz jawnie skonfigurować interpreter Python 3, ustawiając ansible_python_interpreter zmienna zapasów na poziomie grupy lub hosta do lokalizacji tłumacza Python 3, jak opisano poniżej.
Przekazanie interpretera Pythona do Ansible na wierszu poleceń
Aby tymczasowo naprawić powyższy błąd, możesz użyć -mi
flaga, aby przekazać tłumacz Python 3 do Ansible, jak pokazano.
$ ansible produkt_servers -e 'ansible_python_interpreter =/usr/bin/python3' -A „Systemctl Status Firewalld” -U rootUstaw interpreter Python za pośrednictwem linii poleceń
Ustawienie interpretera Pythona dla Ansible w ekwipunku
Aby naprawić błąd na stałe, ustaw ansible_python_interpreter Zmienna zapasów w zapasach /etc/ansible/hosts. Możesz go otworzyć do edycji za pomocą edytora tekstu V/IM lub Nano, jak pokazano.
$ sudo vim/etc/ansible/hosts lub # vim/etc/ansible/hosts
Dodaj następujący wiersz do każdego hosta lub hostów w grupie:
ansible_python_interpreter =/usr/bin/python3
Tak więc definicje hostów mogą wyglądać tak:
[Prod_servers] 192.168.10.1 ansible_python_interpreter =/usr/bin/Python3 192.168.10.20 ansible_python_interpreter =/usr/bin/python3.6Ustaw interpreter Python dla Ansible
Alternatywnie ustaw ten sam interpreter Python dla grupy hostów, jak pokazano.
[Prod_servers] 192.168.10.1 192.168.10.20 [Prod_Servers: Vars] ansible_python_interpreter =/usr/bin/Python3Ustaw interpreter Python-dla wszystkich gospodarzy w grupie
Ustawienie domyślnego interpretera Pythona w konfiguracji Ansible
Aby ustawić domyślny interpreter Python, możesz ustawić ansible_python_interpreter Zmienna zapasów w głównym pliku konfiguracyjnym Ansible /etc/ansible/ansible.CFG.
$ sudo vim/etc/ansible/ansible.CFG
Dodaj następujący wiersz pod [domyślne]
Sekcja.
ansible_python_interpreter =/usr/bin/python3Ustaw interpreter Python w konfiguracji Ansible
Zapisz plik i zamknij go.
Teraz spróbuj ponownie uruchomić polecenie Ansible:
$ ansible produkt_servers -A „Systemctl Status Firewalld” -u rootSprawdź polecenie ansible
Aby uzyskać więcej informacji na ten temat, zobacz wsparcie Python 3 w oficjalnej dokumentacji Ansible.
- « Ostateczny przewodnik po bezpieczeństwie, stwardnienia i poprawie wydajności serwera WWW Nginx
- Frostwire - pobierca chmury, klient BitTorrent i odtwarzacz multimedialny »