如何在ansible中使用expect模块使用交互式输入

问题描述

在远程主机上执行命令时,我们必须提供如下输入。当我们做错任何事情时,它必须第二次询问。

这是执行命令时远程主机上的响应:

*********************************************************
Install Private cloud edition(y/n): y
Enable Monitoring (y/n): y
Configure Firewall (y/n): y
*********************************************************
Enter Virtual IP/Hostname: ***.**.**.*
The Virtual Hostname/IP provided seems to be active
Enter Virtual IP/Hostname:

所以我正在从控制器节点尝试这个。当我尝试使用响应与远程主机上的字符串匹配的预期模块时。所以我使用提示输入但是当我给出错误的ip时它没有说明任何错误在那个时候。我们能否实现响应中的哪些内容,它将显示在控制器屏幕上,以便用户可以从那里提供输入,然后如果我们给出错误,它将再次询问。有人可以帮助我吗

这是我的代码

     - pause:
        prompt: "Enter Virtual IP/Hostname: "
      register: VIP 
    - name: command

     expect:
        echo: yes
        command: "{{ va }} -c {{ cluster_name }}"
        responses:
          Install Private cloud edition\(y\/n\): "{{ Private.user_input }}"
          Enable Monitoring \(y\/n\): "{{ monitoring.user_input }}"
          Configure Firewall \(y\/n\): "{{ firewall.user_input }}"
          Enter Virtual IP/Hostname: "{{ VIP.user_input }}"

        timeout: 120
        echo: yes
      ignore_errors: yes
      register: promptt ```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)