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.