- ممکن است در زمان اتصال به node ها با این خطا مواجه شوید :
10.1.0.225 | FAILED! => {
"changed": false,
"module_stderr": "Shared connection to 10.1.0.225 closed.\r\n",
"module_stdout": "/bin/sh: 1: /usr/bin/python: not found\r\n",
"msg": "MODULE FAILURE",
"rc": 127
}
- همان طور که در خط چهارم مشاهده می کنید، خطا اشاره به این دارد که در سیستم هاست یا node آدرسی با نام usr/bin/python/ یافت نشده است.
- به صورت پیشفرض با نصب python 2.x در سیستم، این آدرس با نام python به صورت symbolic link از روی پرونده اصلی python2.x ساخته می شود.
- همچنین به صورت پیشفرض با نصب python 3.x در سیستم، این آدرس با نام python3 به صورت symbolic link از روی پرونده اصلی python3.x ساخته می شود.
- برای حل این موضوع می توان به چند طریق عمل کرد.
روش اول – نصب python 2.x
- در این روش می توان بسته python 2.x را در هر node نصب کرد.
- همچنین در صورتی که فایل symbolic link از روی python2.x ساخته نشد، آن را به صورت دستی ایجاد می کنیم. به عنوان مثال :
ln -s /usr/bin/python2.7 /usr/bin/python
- تست شده با node های ubuntu 16.04
روش دوم – ایجاد symbolic link
- در این روش می توان یک symbolic link از روی python3.x ایجاد کرد.
- به عنوان مثال :
ln -s /usr/bin/python3.7 /usr/bin/python
- تست شده با node های ubuntu 18.04 و ubuntu 16.04
روش سوم – تعیین متغیر محلی در سرور
- در این روش می توان اجرای ابزار انسیبل را با متغیر محلی آغاز کرد. برای این منظور :
ansible -i host.list all -m ping -e ansible_python_interpreter=/usr/bin/python3
- تست شده با node های ubuntu 18.04 – ubuntu 16.04