Cara Memperbaiki Sambungan Dikongsi ke x.x.ralat xx ditutup ansible
- 1993
- 305
- Clay Weber
Dalam artikel pendek ini, kami akan menerangkan cara menyelesaikannya: "module_stderr":" Sambungan bersama ke x.x.x.x ditutup.\ r \ n "," module_stdout ":"/bin/sh:/usr/bin/python: tiada fail atau direktori sedemikian \ r \ n ", semasa menjalankan perintah ansible.
Tangkapan skrin berikut menunjukkan ralat modul Ansible. Kami mengalami kesilapan ini semasa menjalankan perintah ansible untuk melaksanakan perintah pada dua yang baru digunakan Centos 8 pelayan.
Ralat modul ansibleDari butiran ralat, sambungan gagal kerana shell (s) dalam sistem jauh tidak dapat mencari Python jurubahasa (/usr/bin/python) seperti yang ditunjukkan oleh garis: "module_stdout ":"/bin/sh:/usr/bin/python: tiada fail atau direktori sedemikian \ r \ n".
Setelah memeriksa tuan rumah jauh, kami mendapati bahawa sistem tidak mempunyai Python 2 dipasang.
Semak binari pythonMereka mempunyai Python 3 dipasang secara lalai dan binarinya adalah /usr/bin/python3.
Semak python3 binariMenurut dokumentasi Ansible, Ansible (2.5 dan ke atas) berfungsi dengan versi python 3 dan ke atas sahaja. Juga, Ansible sepatutnya mengesan dan menggunakan Python 3 secara automatik di banyak platform yang dihantar dengannya.
Walau bagaimanapun, jika ia gagal, maka anda boleh mengkonfigurasi penterjemah Python 3 dengan jelas dengan menetapkan ansible_python_interpreter Pemboleh ubah inventori di peringkat kumpulan atau tuan rumah ke lokasi penterjemah Python 3 seperti yang diterangkan di bawah.
Melewati penterjemah python ke ansible di baris arahan
Untuk membetulkan ralat di atas buat sementara waktu, anda boleh menggunakan -e
bendera untuk lulus penterjemah python 3 ke ansible seperti yang ditunjukkan.
$ ansible prod_servers -e 'ansible_python_interpreter =/usr/bin/python3' -a "status sistem firewalld" -u rootTetapkan penterjemah python melalui baris arahan
Menetapkan penterjemah python untuk ansible dalam inventori
Untuk membetulkan ralat secara kekal, tetapkan ansible_python_interpreter Pemboleh ubah inventori dalam inventori anda /etc/ansible/host. Anda boleh membukanya untuk mengedit menggunakan editor teks V/IM atau Nano seperti yang ditunjukkan.
$ sudo vim/etc/ansible/hosts atau # vim/etc/ansible/hosts
Tambahkan baris berikut ke setiap tuan rumah atau tuan rumah dalam kumpulan:
ansible_python_interpreter =/usr/bin/python3
Jadi, definisi tuan rumah anda boleh kelihatan seperti ini:
[prod_servers] 192.168.10.1 ansible_python_interpreter =/usr/bin/python3 192.168.10.20 ansible_python_interpreter =/usr/bin/python3.6Tetapkan penterjemah python untuk Ansible
Sebagai alternatif, tetapkan penterjemah python yang sama untuk sekumpulan tuan rumah seperti yang ditunjukkan.
[prod_servers] 192.168.10.1 192.168.10.20 [prod_servers: vars] ansible_python_interpreter =/usr/bin/python3Tetapkan penterjemah Python-untuk semua tuan rumah dalam kumpulan
Menetapkan penterjemah python lalai dalam konfigurasi ansible
Untuk menetapkan penterjemah python lalai, anda boleh menetapkan ansible_python_interpreter Pemboleh ubah inventori dalam fail konfigurasi utama Ansible /etc/ansible/ansible.cfg.
$ sudo vim/etc/ansible/ansible.cfg
Tambahkan baris berikut di bawah [lalai]
seksyen.
ansible_python_interpreter =/usr/bin/python3Tetapkan penterjemah python dalam konfigurasi ansible
Simpan fail dan tutupnya.
Sekarang cuba jalankan perintah ansible sekali lagi:
$ ansible prod_servers -a "status sistem firewalld" -u rootSemak perintah ansible
Untuk maklumat lanjut mengenai topik ini, lihat sokongan Python 3 dalam dokumentasi ansible rasmi.
- « Panduan Terbaik untuk Mengamankan, Mengeraskan dan Meningkatkan Prestasi Pelayan Web Nginx
- Frostwire - Pemundikan Awan, Pelanggan BitTorrent dan Pemain Media »