当我使用 ansible 模块 expect 时,我得到了这个消息:需要 pexpect python 模块

When I use ansible module expect, I got this msg: The pexpect python module is required

我正在尝试使用 ansible 来部署我们的系统。我在 yml 文件中使用了 expect 模块并尝试使用 ansible-playbook 到 运行 它并得到了这个错误:

fatal: [192.168.100.132]: FAILED! => {"changed": false, "failed": true, "msg": "The pexpect python module is required"}

然后我从 pypi.python.org 下载了 pexpect-4.2.1 软件包并通过 "python setup.py install" 安装了它。 但它不起作用,错误从未改变。 我应该如何处理错误?

yml 文件中的一些代码:

- name: auth root
  expect:
    command: mysql_secure_installation
    responses:
      'Enter password for user root:': '{{password.stdout}}'
      'New password:': 'dtise123'
      'Re-enter new password:': 'dtise123'
      'Do you wish to continue with the password provided\?\(Press y\|Y for Yes, any other key for No\) :': 'y'
      'Remove anonymous users\? \(Press y\|Y for Yes, any other key for No\) :': 'y'
      'Disallow root login remotely\? \(Press y\|Y for Yes, any other key for No\) :': 'y'
      'Remove test database and access to it\? \(Press y\|Y for Yes, any other key for No\) :': 'y'
      'Reload privilege tables now\? \(Press y\|Y for Yes, any other key for No\) :': 'y'
    echo: yes

我从 pypi.python.org 下载了 pexpect-4.2.1.tar.gz 并这样做了:

mv pexpect-4.2.1.tar.gz /usr/local/src/
cd /usr/local/src
tar zxvf pexpect-4.2.1.tar.gz
cd pexpect-4.2.1
python setup.py install

I installed it [pexpect] on the Ansible host. Do I need to install it on each node machine?

是的,模块在目标机器上执行,并且必须在其上安装先决条件(如果存在)。