Kā novērst kļūdu "Dalīts savienojums ar slēgtu x.x.xx"


Šajā īsajā rakstā mēs paskaidrosim, kā atrisināt: “module_stderr”: “Koplietotais savienojums ar xxxx ir slēgts.\R\n”, “module_stdout”: “/ bin/sh:/usr/bin/python: Nav šāda faila vai direktoriju\r\n ”, palaižot Ansible komandas.

Šajā ekrānuzņēmumā parādīta kļūda Ansible module. Šī kļūda radās, izpildot komandu Ansible, lai izpildītu komandas divos nesen izvietotajos CentOS 8 serveros.

No kļūdas informācijas savienojums neizdevās, jo attālajā sistēmā esošais čaula (s) nevarēja atrast Python tulku (/ usr/bin/python), kā norādīts rindiņā: “module_stdout”: “/ bin/sh:/usr/bin/python: Nav šāda faila vai direktorija\r\n “.

Pārbaudot attālos resursdatorus, mēs atklājām, ka sistēmās nav instalēts Python 2.

Viņiem pēc noklusējuma ir instalēts Python 3, un tā binārā versija ir/usr/bin/python3.

Saskaņā ar Ansible dokumentāciju, Ansible (2.5 un jaunāka versija) darbojas tikai ar Python 3. un jaunāku versiju. Ir paredzēts, ka Ansible automātiski atklāj un izmanto Python 3 daudzās platformās, kas tiek piegādātas kopā ar to.

Tomēr, ja tas neizdodas, varat skaidri konfigurēt Python 3 tulku, iestatot ansible_python_interpreter krājumu mainīgo grupas vai resursdatora līmenī uz Python 3 tulka atrašanās vietu, kā aprakstīts tālāk.

Python tulka nodošana komandrindā Ansible

Lai īslaicīgi novērstu iepriekš minēto kļūdu, varat izmantot karodziņu -e , lai Python 3 tulku nodotu Ansible, kā parādīts.

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

Python tulka iestatīšana iespējamajam krājumā

Lai neatgriezeniski novērstu kļūdu, krājumā/etc/ansible/hosts iestatiet ansible_python_interpreter krājumu mainīgo. To var atvērt rediģēšanai, izmantojot teksta redaktoru v/im vai nano, kā parādīts.

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

Pievienojiet šādu rindu katram grupas resursdatoram vai saimniekdatoriem:

ansible_python_interpreter=/usr/bin/python3

Tātad jūsu mitinātāju definīcijas var izskatīties šādi:

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

Alternatīvi, saimniekdatoru grupai iestatiet to pašu Python tulku, kā parādīts.

[prod_servers]
192.168.10.1		
192.168.10.20		

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

Noklusējuma Python tulka iestatīšana iespējamā konfigurācijā

Lai iestatītu noklusējuma Python tulku, ansible_python_interpreter krājumu mainīgo var iestatīt Ansible galvenajā konfigurācijas failā /etc/ansible/ansible.cfg.

$ sudo vim /etc/ansible/ansible.cfg

Sadaļā [noklusējumi] pievienojiet šo rindu.

ansible_python_interpreter=/usr/bin/python3

Saglabājiet failu un aizveriet to.

Tagad mēģiniet vēlreiz palaist komandu Ansible:

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

Lai iegūtu papildinformāciju par šo tēmu, skatiet Python 3 atbalstu oficiālajā Ansible dokumentācijā.