我正在尝试在Vagrant机器中通过Ansible自动安装脚本
我试了很多方法在网上找到解决方案,但文档和示例都很薄弱
我试图安装的脚本正在提示我试图用Ansible Expect Module以编程方式回答的问题
可靠任务:
-name:"正在运行Lisk安装">
nbsp;变为:真
nbsp;become_user:流浪者
nbsp;预期:
nbsp nbsp nbsp;命令:bash installLisk.sh install-r{{env}}
nbsp nbsp nbsp;回复:
nbsp nbsp nbsp nbsp nbsp nbsp;'你想把Lisk安装到哪里?(默认值/home/roarant(':"/home/ravarant">
nbsp nbsp nbsp nbsp nbsp nbsp;'要安装NTP吗?(y/n(:':"y">
nbsp nbsp nbsp;echo:是
它似乎无法识别问题或答案,这是我从配置中得到的错误
TASK[lisk:运行lisk安装]********************************
致命:[默认值]:失败!=>{
"已更改":true,
"cmd":"bash installLisk.sh install-r test",
"delta":"0:00:30.137468",
"end":"2016-08-26 08:18:46.740017",
"失败":true,
"rc":null,
"开始":"2016-08-26 08:18:16.602549",
"stdout":"检查先决条件:\r\n
Curl已安装。\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m\r\n
安装柏油。\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[32mAll preqrequisites passed!\u001b(B\u001b[m\r\n
你想把Lisk安装到哪里?(默认/家庭/流浪者(:",
"stdout_lines":[
"检查先决条件:",
"Curl已安装。\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m",
"焦油已安装。\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m",
"Wget已安装。\t\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m",
"Sudo已安装并通过身份验证。\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m",
"\u001b[32mAll preqrequisites passed!\u001b(B\u001b[m",
"你想把Lisk安装到哪里?(默认/home/warrant(:">
]}
谢谢大家提前
expect
模块中的响应是正则表达式,因此问号具有特殊含义
您可以简单地使用:
- expect:
command: bash installLisk.sh install -r {{env}}
responses:
'install Lisk to': '/home/vagrant'
'install NTP': 'y'
echo: yes