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ā.