它仍然适用于在 RedHat7 上使用 pexpect 还是有其他方法来执行命令并响应提示?

Is it still applicable to use pexpect on RedHat7 or is there alternative way to Executes a command and responds to prompts?

我正在尝试在 Redhat7 中使用 pexpect for ansible,但我无法安装它。我只得到 pexpect.noarch 2.3-11.el7 @RHEL7 版本。或者是否有替代方案可以执行命令并响应提示?

看起来 RHEL7 附带的 pexpect Python 模块的版本对于 Ansible 来说太旧了(RHEL7 预期为 2.3,而 Ansible 需要 3.3 或更高版本)。您最好的选择可能是使用 shellcommand 模块来 运行 expect;在 documentation for the shell module:

中有一个这样的例子
# You can use shell to run other executables to perform actions inline
- name: Run expect to wait for a successful PXE boot via out-of-band CIMC
  shell: |
    set timeout 300
    spawn ssh admin@{{ cimc_host }}

    expect "password:"
    send "{{ cimc_password }}\n"

    expect "\n{{ cimc_name }}"
    send "connect host\n"

    expect "pxeboot.n12"
    send "\n"

    exit 0
  args:
    executable: /usr/bin/expect
  delegate_to: localhost