Cara Memperbaiki Sambungan Dikongsi ke x.x.ralat xx ditutup ansible

Cara Memperbaiki Sambungan Dikongsi ke x.x.ralat xx ditutup ansible

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 ansible

Dari 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 python

Mereka mempunyai Python 3 dipasang secara lalai dan binarinya adalah /usr/bin/python3.

Semak python3 binari

Menurut 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 root 
Tetapkan 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.6 
Tetapkan 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/python3 
Tetapkan 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/python3 
Tetapkan penterjemah python dalam konfigurasi ansible

Simpan fail dan tutupnya.

Sekarang cuba jalankan perintah ansible sekali lagi:

$ ansible prod_servers -a "status sistem firewalld" -u root 
Semak perintah ansible

Untuk maklumat lanjut mengenai topik ini, lihat sokongan Python 3 dalam dokumentasi ansible rasmi.