Vagrant Ansible Expect模块can';t匹配字符串/正则表达式脚本问题

Vagrant Ansible Expect模块can';t匹配字符串/正则表达式脚本问题,vagrant,ansible,ansible-playbook,Vagrant,Ansible,Ansible Playbook,我正试图通过Ansible在一台流浪机器上自动安装脚本。 我在网上花了很多时间寻找解决方案,但文档和示例都很薄弱。 我试图安装的脚本正在提示我试图用Ansible Expect模块以编程方式回答的问题。 可执行任务: -名称:“正在运行Lisk安装” 变成:真 成为用户:流浪者 期望值: 命令:bash installLisk.sh install-r{{env}} 回答: '您想将Lisk安装到哪里?(默认/家庭/流浪)“:”/home/vagrant“ '是否要安装NTP?(y/n):“y”


我正试图通过Ansible在一台流浪机器上自动安装脚本。

我在网上花了很多时间寻找解决方案,但文档和示例都很薄弱。

我试图安装的脚本正在提示我试图用Ansible Expect模块以编程方式回答的问题。

可执行任务:

-名称:“正在运行Lisk安装”
变成:真
成为用户:流浪者
期望值:
命令:bash installLisk.sh install-r{{env}}
回答:
'您想将Lisk安装到哪里?(默认/家庭/流浪)“:”/home/vagrant“
'是否要安装NTP?(y/n):“y”
回声:是的

它似乎无法识别问题或答案,这是我从配置中得到的错误

任务[lisk:运行lisk安装]******************************************************************

致命:[默认值]:失败!=>{
“已更改”:正确,
“cmd”:“bash installLisk.sh安装-r测试”,
“增量”:“0:00:30.137468”,
“结束”:“2016-08-2608:18:46.740017”,
“失败”:为真,
“rc”:空,
“开始”:“2016-08-2608:18:16.602549”,

“标准输出”:“检查先决条件:\r\n
Curl已安装。\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m\r\n
已安装Tar。\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m\r\n
Wget已安装。\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m\r\n
Sudo已安装并通过身份验证。\t\t\t\u001b[32mPassed\u001b(B\u001b[m\r\n\
u001b[32已通过购物中心资格预审!\u001b(B\u001b[m\r\n
您想将Lisk安装到哪里?(默认/主页/漫游):“,

“标准输出线”:[
“检查先决条件:”,
已安装Curl。\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m],
已安装Tar。\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m],
已安装Wget。\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m],
Sudo已安装并通过身份验证。\t\t\t\u001b[32mPassed\u001b(B\u001b[m],
“\u001b[32通过购物中心资格预审!\u001b(B\u001b[m],

“您想将Lisk安装到哪里?(默认/主页/漫游):“
]}

提前谢谢大家在
expect
模块中的响应是正则表达式,所以问号有特殊含义。
您可以简单地使用:

- expect:
    command: bash installLisk.sh install -r {{env}}
    responses:
      'install Lisk to': '/home/vagrant'
      'install NTP': 'y'
    echo: yes

非常感谢您,它似乎可以正常工作。现在它因另一个问题而失败,我正试图了解您是否愿意尝试它我正在公共存储库上工作:)根据文档,我解决了上一个问题,给expect任务一个大的超时时间