Kif Tiffissa Konnessjoni Kondiviża għal x.x.xx magħluqa Żball Ansible


F'dan l-artikolu qasir, se nispjegaw kif issolvi l-: module_stderr: Konnessjoni kondiviża ma 'x.x.x.x magħluqa. ”, “module_stdout”: “/bin/sh: /usr/bin/python: L-ebda fajl jew direttorju bħal dan ”, waqt li qed imexxi kmandi Ansible.

Il-screenshot li ġej turi l-iżball tal-modulu Ansible. Iltqajna ma 'dan l-iżball waqt li ħadna kmand Ansible biex tesegwixxi kmandi fuq żewġ servers CentOS 8 li għadhom kif ġew skjerati.

Mid-dettalji tal-iżball, il-konnessjoni falliet minħabba li l-qoxra(jiet) fis-sistema remota ma setgħetx issib l-interpretu Python (/usr/bin/python) kif indikat mil-linja: “module_stdout”: “/bin/sh:/usr/bin/python: L-ebda fajl jew direttorju bħal dan “.

Wara li ċċekkja l-hosts remoti, skoprejna li s-sistemi m'għandhomx Python 2 installat.

Għandhom Python 3 installat b'mod awtomatiku u l-binarju tiegħu huwa /usr/bin/python3.

Skont id-dokumentazzjoni Ansible, Ansible (2.5 u 'l fuq) jaħdem bil-verżjoni Python 3 u ogħla biss. Ukoll, Ansible suppost li awtomatikament jiskopri u juża Python 3 fuq ħafna pjattaformi li jibagħtu miegħu.

Madankollu, jekk tonqos, allura tista' tikkonfigura b'mod espliċitu interpretu Python 3 billi tistabbilixxi l-varjabbli tal-inventarju ansible_python_interpreter f'livell ta' grupp jew ospitanti għall-post ta' interpretu Python 3 kif deskritt hawn taħt.

Tgħaddi Interpretu Python lil Ansible fuq il-linja tal-Kmand

Biex tirranġa l-iżball ta' hawn fuq temporanjament, tista' tuża l-bandiera -e biex tgħaddi l-interpretu Python 3 lil Ansible kif muri.

$ ansible prod_servers  -e 'ansible_python_interpreter=/usr/bin/python3' -a "systemctl status firewalld" -u root

Twaqqif ta' Interpretu Python għal Ansible fl-Inventarju

Biex tirranġa l-iżball b'mod permanenti, issettja l-varjabbli tal-inventarju ansible_python_interpreter fl-inventarju tiegħek /etc/ansible/hosts. Tista' tiftaħha għall-editjar billi tuża l-editur tat-test v/im jew nano kif muri.

$ sudo vim /etc/ansible/hosts
OR
# vim /etc/ansible/hosts

Ehmeż il-linja li ġejja għal kull host jew hosts fi grupp:

ansible_python_interpreter=/usr/bin/python3

Allura, id-definizzjonijiet tal-hosts tiegħek jistgħu jidhru bħal dan:

[prod_servers]
192.168.10.1			ansible_python_interpreter=/usr/bin/python3
192.168.10.20			ansible_python_interpreter=/usr/bin/python3.6

Inkella, issettja l-istess interpretu Python għal grupp ta 'hosts kif muri.

[prod_servers]
192.168.10.1		
192.168.10.20		

[prod_servers:vars]
ansible_python_interpreter=/usr/bin/python3

L-issettjar ta' Interpretu Python Default fil-Konfigurazzjoni Ansible

Biex tissettja l-interpretu Python default, tista 'tissettja l-varjabbli tal-inventarju ansible_python_interpreter fil-fajl ta' konfigurazzjoni prinċipali ta 'Ansible /etc/ansible/ansible.cfg.

$ sudo vim /etc/ansible/ansible.cfg

Żid il-linja li ġejja taħt it-taqsima [defaults].

ansible_python_interpreter=/usr/bin/python3

Issejvja l-fajl u agħlaqha.

Issa ipprova tħaddem il-kmand Ansible għal darb'oħra:

$ ansible prod_servers -a "systemctl status firewalld" -u root

Għal aktar informazzjoni dwar dan is-suġġett, ara l-appoġġ ta 'Python 3 fid-dokumentazzjoni uffiċjali ta' Ansible.