Failed to import the required Python library (pexpect)

668 views
Skip to first unread message

nage...@gmail.com

unread,
Aug 14, 2020, 1:42:11 PM8/14/20
to Ansible Project

Hi team,

i am getting below error, pexpect already installed

he full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_expect_payload_0bz7tQ/__main__.py", line 108, in <module>
    import pexpect
ImportError: No module named pexpect

fatal: [sddc_mgr]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "chdir": null,
            "command": "sudo /opt/vmware/sddc-support/sos --health-check",
            "creates": null,
            "echo": false,
            "removes": null,
            "responses": {
                "(?i)[sudo] password for vcf": "xxxxxxxxxxxxxxxxxxxxx"
            },
            "timeout": 30
        }
    },
    "msg": "Failed to import the required Python library (pexpect) on lab.local.com's Python /usr/bin/python2.7. Please read module documentation and install in the appropriate location"

[root@6683ffa58609 cpc-vcf]# pip show pexpect
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Name: pexpect
Version: 4.8.0
Summary: Pexpect allows easy control of interactive console applications.
Author: Noah Spurrier; Thomas Kluyver; Jeff Quast
License: ISC license
Location: /usr/lib/python2.7/site-packages
Requires: ptyprocess
Required-by:
[root@6683ffa58609 cpc-vcf]#

Dick Visser

unread,
Aug 14, 2020, 1:53:37 PM8/14/20
to ansible...@googlegroups.com
You forgot to post the playbook you're using, and the inventory, and the ansible configuration.

--


You received this message because you are subscribed to the Google Groups "Ansible Project" group.


To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.


To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/3010b803-5f63-4d76-87f5-a86143093722n%40googlegroups.com.


--
Sent from a mobile device - please excuse the brevity, spelling and punctuation.

nage...@gmail.com

unread,
Aug 14, 2020, 1:57:30 PM8/14/20
to Ansible Project
Oh sorry, please find the below details

host file
[root@6683ffa58609 cpc-vcf]# cat hosts.ini
sddc_mgr ansible_user=vcf ansible_password='xxxxxxxxxxxxxxxxxx' ansible_ssh_host=10.47.20.4

[root@6683ffa58609 cpc-vcf]#
Playbook:
---
- name: sddc_health
  hosts: sddc_mgr
  tasks:
   - name: sddc health
     expect:
         command: sudo /opt/vmware/sddc-support/sos --health-check
         responses:
            (?i)[sudo] password for vcf: "{{ ansible_password }}"

nage...@gmail.com

unread,
Aug 14, 2020, 1:58:32 PM8/14/20
to Ansible Project
Ansible version:

[root@6683ffa58609 cpc-vcf]# ansible --version
ansible 2.8.4
  config file = /data01/ansible/cpc-vcf/ansible.cfg
  configured module search path = [u'/data01/ansible/cpc-vcf/library', u'/data01/ansible/cpc-vcf/library/nsx', u'/data01/ansible/cpc-vcf/library/vsphere', u'/data01/ansible/cpc-vcf/library/vcenter']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Apr  2 2020, 13:16:51) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
[root@6683ffa58609 cpc-vcf]#


Dick Visser

unread,
Aug 14, 2020, 2:21:25 PM8/14/20
to ansible...@googlegroups.com
Hi 

It seems there is a lot of wheel reinventing going on by using expect/sudo to handle privilege escalation. 
Instead use the already existing privilege escalation options:



nage...@gmail.com

unread,
Aug 14, 2020, 3:25:07 PM8/14/20
to Ansible Project
Thank you, its worked:

---
- name: sddc_health
  hosts: sddc_mgr
  become: yes
  become_user: root
  become_method: su
  tasks:
    - name: sddc health
      command: /opt/vmware/sddc-support/sos --health-check
      register: find_output
    - debug:
        var: find_output
  vars:
    become_password: "{{ ansible_password }}"


Reply all
Reply to author
Forward
0 new messages