Когда я использую ожидаемый модуль ansible, я получаю следующее сообщение: требуется модуль pexpect pexpect

Некоторый код из файла yml:

- name: --- run /opt/installer/bin/install.sh --- expect: command: /opt/installer/bin/install.sh responses: 'Are you installing the application at the central data center? [yes/no default: yes]? [yes]': "\n" 'What is the code of central data center [default: 01]? [01]': "\n" 'What is ip or hostname of your server [default: localhost]? [localhost]': 'portal' 

и я установил модули pexpect 3.3 на обоих серверах ( ansible и целевые machines ).

 [root@portal pexpect-3.3]# python setup.py install running install running build running build_py running install_lib running install_egg_info Removing /usr/lib/python2.7/site-packages/pexpect-3.3-py2.7.egg-info Writing /usr/lib/python2.7/site-packages/pexpect-3.3-py2.7.egg-info 

когда я запускаю playbook, я получаю эту ошибку:

 TASK [ansible-portal : --- run /opt/installer/bin/install.sh ---] ************************************************************************* fatal: [portal]: FAILED! => {"changed": false, "msg": "The pexpect python module is required"} 

Дополнительная информация :

 [root@ansible ansible]# ansible --version ansible 2.4.2.0 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] 

Как обычно для некоторых модhive в ansible вы должны установить некоторые модули Python на стороне удаленного сервера.

Вы можете использовать модуль pip чтобы упростить это с помощью вашей ansible книги, например:

 - name install pexpect pip: name: pexpect become: yes 

В вашем дистрибутиве они также могут быть доступны в виде файлов DEB или RPM. Если это так, вы можете установить этот модуль Python, используя менеджер пакетов дистрибутива.

В вашем случае вполне вероятно, что Python, в который вы установили модуль pexpect , не тот, который использует pexpect . В этом случае я бы использовал системный менеджер пакетов для установки pexpect .

через менеджеров пакетов

в системах Debian / Ubuntu DEB это:

 $ sudo apt-get install python-pexpect 

На Redhat дистрибутивах (Fedora / CentOS):

 $ sudo yum install -y pexpect 

Рекомендации