x.x.xx-ലേക്കുള്ള പങ്കിട്ട കണക്ഷൻ അടച്ചു അൻസിബിൾ പിശക് എങ്ങനെ പരിഹരിക്കാം
ഈ ചെറിയ ലേഖനത്തിൽ, എങ്ങനെ പരിഹരിക്കാമെന്ന് ഞങ്ങൾ വിശദീകരിക്കും: module_stderr: x.x.x.x-ലേക്കുള്ള പങ്കിട്ട കണക്ഷൻ അടച്ചു. ”, “module_stdout”: “/bin/sh: /usr/bin/python: അത്തരം ഫയലോ ഡയറക്ടറിയോ ഇല്ല ”, അൻസിബിൾ കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുമ്പോൾ.
ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ട് അൻസിബിൾ മൊഡ്യൂൾ പിശക് കാണിക്കുന്നു. പുതുതായി വിന്യസിച്ചിരിക്കുന്ന രണ്ട് CentOS 8 സെർവറുകളിൽ കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യുന്നതിനായി ഒരു Ansible കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നതിനിടെ ഞങ്ങൾക്ക് ഈ പിശക് നേരിട്ടു.
module_stdout: /bin/sh:/എന്ന വരിയിൽ സൂചിപ്പിച്ചിരിക്കുന്നതുപോലെ റിമോട്ട് സിസ്റ്റത്തിലെ ഷെല്ലിന് (/usr/bin/python) പൈത്തൺ ഇന്റർപ്രെറ്റർ കണ്ടെത്താൻ കഴിയാത്തതിനാൽ, പിശക് വിശദാംശങ്ങളിൽ നിന്ന്, കണക്ഷൻ പരാജയപ്പെട്ടു. usr/bin/python: അത്തരം ഫയലോ ഡയറക്ടറിയോ ഇല്ല .
റിമോട്ട് ഹോസ്റ്റുകൾ പരിശോധിച്ച ശേഷം, സിസ്റ്റങ്ങളിൽ പൈത്തൺ 2 ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെന്ന് ഞങ്ങൾ കണ്ടെത്തി.
അവർ പൈത്തൺ 3 സ്ഥിരസ്ഥിതിയായി ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്, അതിന്റെ ബൈനറി /usr/bin/python3 ആണ്.
Ansible ഡോക്യുമെന്റേഷൻ അനുസരിച്ച്, Ansible (2.5 ഉം അതിനുമുകളിലും) പൈത്തൺ പതിപ്പ് 3-ലും അതിനുമുകളിലും മാത്രം പ്രവർത്തിക്കുന്നു. കൂടാതെ, അൻസിബിൾ സ്വയമേവ പൈത്തൺ 3 കണ്ടെത്തുകയും അതിനൊപ്പം ഷിപ്പ് ചെയ്യുന്ന പല പ്ലാറ്റ്uഫോമുകളിലും ഉപയോഗിക്കുകയും ചെയ്യും.
എന്നിരുന്നാലും, ഇത് പരാജയപ്പെട്ടാൽ, താഴെ വിവരിച്ചിരിക്കുന്നതുപോലെ ഒരു പൈത്തൺ 3 ഇന്റർപ്രെറ്ററിന്റെ സ്ഥാനത്തേക്ക് ഒരു ഗ്രൂപ്പിലോ ഹോസ്റ്റ് തലത്തിലോ ansible_python_interpreter ഇൻവെന്ററി വേരിയബിൾ സജ്ജീകരിച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഒരു പൈത്തൺ 3 ഇന്റർപ്രെറ്റർ വ്യക്തമായി കോൺഫിഗർ ചെയ്യാം.
കമാൻഡ് ലൈനിൽ അൻസിബിളിന് പൈത്തൺ ഇന്റർപ്രെറ്റർ കൈമാറുന്നു
മുകളിലുള്ള പിശക് താൽക്കാലികമായി പരിഹരിക്കുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ പൈത്തൺ 3 ഇന്റർപ്രെറ്ററിനെ അൻസിബിളിലേക്ക് കൈമാറാൻ നിങ്ങൾക്ക് -e
ഫ്ലാഗ് ഉപയോഗിക്കാം.
$ ansible prod_servers -e 'ansible_python_interpreter=/usr/bin/python3' -a "systemctl status firewalld" -u root
ഇൻവെന്ററിയിൽ അൻസിബിളിനായി പൈത്തൺ ഇന്റർപ്രെറ്റർ സജ്ജീകരിക്കുന്നു
പിശക് ശാശ്വതമായി പരിഹരിക്കുന്നതിന്, നിങ്ങളുടെ ഇൻവെന്ററി /etc/ansible/hosts-ൽ ansible_python_interpreter ഇൻവെന്ററി വേരിയബിൾ സജ്ജമാക്കുക. കാണിച്ചിരിക്കുന്നത് പോലെ v/im അല്ലെങ്കിൽ നാനോ ടെക്സ്റ്റ് എഡിറ്റർ ഉപയോഗിച്ച് നിങ്ങൾക്ക് എഡിറ്റ് ചെയ്യുന്നതിനായി ഇത് തുറക്കാവുന്നതാണ്.
$ sudo vim /etc/ansible/hosts OR # vim /etc/ansible/hosts
ഒരു ഗ്രൂപ്പിലെ ഓരോ ഹോസ്റ്റ് അല്ലെങ്കിൽ ഹോസ്റ്റുകൾക്കും ഇനിപ്പറയുന്ന വരി കൂട്ടിച്ചേർക്കുക:
ansible_python_interpreter=/usr/bin/python3
അതിനാൽ, നിങ്ങളുടെ ഹോസ്റ്റുകളുടെ നിർവചനങ്ങൾ ഇതുപോലെയാകാം:
[prod_servers] 192.168.10.1 ansible_python_interpreter=/usr/bin/python3 192.168.10.20 ansible_python_interpreter=/usr/bin/python3.6
പകരമായി, കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു കൂട്ടം ഹോസ്റ്റുകൾക്കായി അതേ പൈത്തൺ ഇന്റർപ്രെറ്റർ സജ്ജമാക്കുക.
[prod_servers] 192.168.10.1 192.168.10.20 [prod_servers:vars] ansible_python_interpreter=/usr/bin/python3
അൻസിബിൾ കോൺഫിഗറേഷനിൽ ഡിഫോൾട്ട് പൈത്തൺ ഇന്റർപ്രെറ്റർ സജ്ജീകരിക്കുന്നു
ഡിഫോൾട്ട് പൈത്തൺ ഇന്റർപ്രെറ്റർ സജ്ജീകരിക്കുന്നതിന്, നിങ്ങൾക്ക് Ansible-ന്റെ പ്രധാന കോൺഫിഗറേഷൻ ഫയലായ /etc/ansible/ansible.cfg-ൽ ansible_python_interpreter ഇൻവെന്ററി വേരിയബിൾ സജ്ജമാക്കാൻ കഴിയും.
$ sudo vim /etc/ansible/ansible.cfg
[defaults]
വിഭാഗത്തിന് കീഴിൽ ഇനിപ്പറയുന്ന വരി ചേർക്കുക.
ansible_python_interpreter=/usr/bin/python3
ഫയൽ സംരക്ഷിച്ച് അത് അടയ്ക്കുക.
ഇപ്പോൾ ഒരിക്കൽ കൂടി Ansible കമാൻഡ് പ്രവർത്തിപ്പിക്കാൻ ശ്രമിക്കുക:
$ ansible prod_servers -a "systemctl status firewalld" -u root
ഈ വിഷയത്തെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, ഔദ്യോഗിക അൻസിബിൾ ഡോക്യുമെന്റേഷനിലെ പൈത്തൺ 3 പിന്തുണ കാണുക.