ວິທີການແກ້ໄຂ "ການເຊື່ອມຕໍ່ທີ່ແບ່ງປັນໄປ x.x.xx ຖືກປິດ" ຄວາມຜິດພາດທີ່ຕອບໄດ້


ໃນບົດຄວາມສັ້ນນີ້, ພວກເຮົາຈະອະທິບາຍວິທີການແກ້ໄຂບັນຫາ:“ module_stderr“:“ ການເຊື່ອມຕໍ່ທີ່ແບ່ງປັນກັບ xxxx ຖືກປິດ. \ r \ n "," module_stdout ":"/bin/sh:/usr/bin/python: ບໍ່ມີເອກະສານດັ່ງກ່າວ ຫຼືໄດເລກະທໍລີ \ r \ n ", ໃນຂະນະທີ່ໃຊ້ ຄຳ ສັ່ງ Ansible.

ພາບ ໜ້າ ຈໍຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນຄວາມຜິດພາດຂອງໂມດູນ Ansible. ພວກເຮົາພົບຂໍ້ຜິດພາດນີ້ໃນຂະນະທີ່ ກຳ ລັງແລ່ນ ຄຳ ສັ່ງ Ansible ເພື່ອປະຕິບັດ ຄຳ ສັ່ງໃນສອງ server ທີ່ຖືກ ນຳ ໃຊ້ CentOS 8 ໃໝ່.

ຈາກລາຍລະອຽດຂອງຂໍ້ຜິດພາດ, ການເຊື່ອມຕໍ່ລົ້ມເຫລວເພາະວ່າຫອຍໃນລະບົບຫ່າງໄກບໍ່ສາມາດຊອກຫານາຍແປພາສາ Python (/ usr/bin/python) ຕາມທີ່ໄດ້ລະບຸໃນເສັ້ນ:“ module_stdout”:“/bin/sh:/usr/bin/python: ບໍ່ມີເອກະສານຫລືໄດເລກະທໍລີດັ່ງກ່າວ \ r \ n ".

ຫຼັງຈາກກວດເບິ່ງບັນດາເຈົ້າພາບທີ່ຢູ່ຫ່າງໄກສອກຫຼີກ, ພວກເຮົາໄດ້ຄົ້ນພົບວ່າລະບົບຕ່າງໆບໍ່ມີການຕິດຕັ້ງ Python 2.

ພວກເຂົາມີ Python 3 ຕິດຕັ້ງໂດຍຄ່າເລີ່ມຕົ້ນແລະຖານສອງຂອງມັນແມ່ນ/usr/bin/python3.

ອີງຕາມເອກະສານ Ansible, Ansible (2.5 ແລະຂ້າງເທິງ) ເຮັດວຽກກັບ Python ຮຸ່ນ 3 ແລະສູງກວ່າເທົ່ານັ້ນ. ນອກຈາກນີ້, Ansible ຄາດວ່າຈະກວດພົບແລະ ນຳ ໃຊ້ Python 3 ໂດຍອັດຕະໂນມັດໃນຫລາຍແພລະຕະຟອມທີ່ສົ່ງກັບມັນ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ຖ້າມັນລົ້ມເຫລວ, ທ່ານສາມາດ ກຳ ນົດຕົວແປພາສາ Python 3 ຢ່າງຊັດເຈນໂດຍ ກຳ ນົດຕົວແປສິນຄ້າຄົງຄັງທີ່ສາມາດຕອບສະ ໜອງ ໄດ້ໃນລະດັບກຸ່ມຫລືລະດັບເຈົ້າພາບໄປຫາທີ່ຕັ້ງຂອງນາຍແປພາສາ Python 3 ດັ່ງທີ່ໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້.

ການສົ່ງນາຍພາສາ Python ໄປຫາ ຄຳ ຕອບຢູ່ເສັ້ນ ຄຳ ສັ່ງ

ເພື່ອແກ້ໄຂຂໍ້ຜິດພາດຂ້າງເທິງນີ້ຊົ່ວຄາວ, ທ່ານສາມາດໃຊ້ທຸງ -e ເພື່ອສົ່ງນາຍພາສາ Python 3 ໄປຫາ Ansible ຕາມທີ່ສະແດງ.

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

ການ ກຳ ນົດນາຍພາສາ Python ສຳ ລັບ ຄຳ ຕອບໃນສາງ

ເພື່ອແກ້ໄຂຂໍ້ຜິດພາດດັ່ງກ່າວຢ່າງຖາວອນ, ໃຫ້ຕັ້ງຄ່າຕົວປ່ຽນສິນຄ້າຄົງຄັງທີ່ສາມາດຕອບສະ ໜອງ ໄດ້ໃນສາງ/etc/ansible/hosts ຂອງທ່ານ. ທ່ານສາມາດເປີດມັນເພື່ອແກ້ໄຂໂດຍໃຊ້ຕົວແກ້ໄຂຂໍ້ຄວາມ v/im ຫຼື nano ຕາມທີ່ສະແດງ.

$ 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

ອີກທາງເລືອກ, ກຳ ນົດນາຍແປພາສາ Python ດຽວກັນ ສຳ ລັບກຸ່ມເຈົ້າພາບຕາມທີ່ສະແດງ.

[prod_servers]
192.168.10.1		
192.168.10.20		

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

ການ ກຳ ນົດນາຍພາສາ Python ໃນຕອນຕົ້ນໃນການຕັ້ງຄ່າຕອບ ຄຳ ຖາມ

ເພື່ອ ກຳ ນົດນາຍພາສາ Python ໃນຕອນຕົ້ນ, ທ່ານສາມາດຕັ້ງຄ່າຕົວປ່ຽນສາງທີ່ສາມາດຕອບສະ ໜອງ ໄດ້ໃນເອກະສານການຕັ້ງຄ່າຕົ້ນຕໍຂອງ Ansible /etc/ansible/ansible.cfg.

$ sudo vim /etc/ansible/ansible.cfg

ຕື່ມສາຍຕໍ່ໄປນີ້ພາຍໃຕ້ຫົວຂໍ້ [ຄ່າເລີ່ມຕົ້ນ] .

ansible_python_interpreter=/usr/bin/python3

ບັນທຶກເອກະສານແລະປິດມັນ.

ດຽວນີ້ລອງໃຊ້ ຄຳ ສັ່ງ Ansible ອີກຄັ້ງ:

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

ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບຫົວຂໍ້ນີ້, ເບິ່ງການສະຫນັບສະຫນູນ Python 3 ໃນເອກະສານ Ansible ຢ່າງເປັນທາງການ.