Hvernig á að laga „Samnýtt tenging við x.x.xx lokað“ Ansible Villa
Í þessari stuttu grein munum við útskýra hvernig á að leysa: „module_stderr“: „Sameiginleg tenging við x.x.x.x lokað. ”, “module_stdout”: “/bin/sh: /usr/bin/python: Engin slík skrá eða mappa ”, meðan þú keyrir Ansible skipanir.
Eftirfarandi skjámynd sýnir Ansible mát villuna. Við lentum í þessari villu þegar við keyrðum Ansible skipun til að framkvæma skipanir á tveimur nýuppsettum CentOS 8 netþjónum.
Frá villuupplýsingunum mistókst tengingin vegna þess að skel/skel í ytra kerfinu fann ekki Python túlkinn (/usr/bin/python) eins og línan gefur til kynna: “module_stdout”: “/bin/sh:/usr/bin/python: Engin slík skrá eða skrá “.
Eftir að hafa skoðað ytri gestgjafana komumst við að því að kerfin eru ekki með Python 2 uppsett.
Þeir hafa Python 3 uppsett sjálfgefið og tvöfaldur þess er /usr/bin/python3.
Samkvæmt Ansible skjölunum virkar Ansible (2.5 og nýrri) eingöngu með Python útgáfu 3 og nýrri. Einnig á Ansible að greina og nota Python 3 sjálfkrafa á mörgum kerfum sem fylgja með.
Hins vegar, ef það tekst ekki, þá geturðu beinlínis stillt Python 3 túlk með því að stilla ansible_python_interpreter birgðabreytuna á hóp- eða hýsingarstigi á staðsetningu Python 3 túlks eins og lýst er hér að neðan.
Sendir Python túlk til Ansible á skipanalínunni
Til að laga ofangreinda villu tímabundið geturðu notað -e
fánann til að senda Python 3 túlkinn til Ansible eins og sýnt er.
$ ansible prod_servers -e 'ansible_python_interpreter=/usr/bin/python3' -a "systemctl status firewalld" -u root
Setja Python túlk fyrir Ansible í birgðum
Til að laga villuna varanlega skaltu stilla ansible_python_interpreter birgðabreytuna í birgðum þínum /etc/ansible/hosts. Þú getur opnað það til að breyta með v/im eða nano textaritlinum eins og sýnt er.
$ sudo vim /etc/ansible/hosts OR # vim /etc/ansible/hosts
Bættu eftirfarandi línu við hvern gestgjafa eða gestgjafa í hópi:
ansible_python_interpreter=/usr/bin/python3
Svo, skilgreiningar gestgjafa þinna geta litið svona út:
[prod_servers] 192.168.10.1 ansible_python_interpreter=/usr/bin/python3 192.168.10.20 ansible_python_interpreter=/usr/bin/python3.6
Að öðrum kosti skaltu stilla sama Python túlk fyrir hóp gestgjafa eins og sýnt er.
[prod_servers] 192.168.10.1 192.168.10.20 [prod_servers:vars] ansible_python_interpreter=/usr/bin/python3
Stilla sjálfgefinn Python túlk í Ansible stillingum
Til að stilla sjálfgefna Python túlkinn geturðu stillt ansible_python_interpreter birgðabreytuna í aðalstillingarskrá Ansible /etc/ansible/ansible.cfg.
$ sudo vim /etc/ansible/ansible.cfg
Bættu við eftirfarandi línu undir [sjálfgefin]
hlutanum.
ansible_python_interpreter=/usr/bin/python3
Vistaðu skrána og lokaðu henni.
Reyndu nú að keyra Ansible skipunina einu sinni enn:
$ ansible prod_servers -a "systemctl status firewalld" -u root
Fyrir frekari upplýsingar um þetta efni, sjá Python 3 stuðning í opinberu Ansible skjölunum.