I'm trying to automate a script installation through Ansible in a Vagrant machine.
I tried a lot to find a solution across the web but the documentation and the examples are very weak.
That script I'm trying to install is prompting questions that I'm trying to answer programmatically with the Ansible Expect Module.
Ansible Task:
- name: "Running Lisk installation"
become: True
become_user: vagrant
expect:
command: bash installLisk.sh install -r {{env}}
responses:
'Where do you want to install Lisk to? (Default /home/vagrant)': "/home/vagrant"
'Would like to install NTP? (y/n):': "y"
echo: yes
It seems it can't recognize the question or the answer, this is the error I'm getting back from the provisioning
TASK [lisk : Running Lisk installation] ****************************************
fatal: [default]: FAILED! => {
"changed": true,
"cmd": "bash installLisk.sh install -r test",
"delta": "0:00:30.137468",
"end": "2016-08-26 08:18:46.740017",
"failed": true,
"rc": null,
"start": "2016-08-26 08:18:16.602549",
"stdout": "Checking prerequisites:\r\n
Curl is installed.\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m\r\n
Tar is installed.\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m\r\n
Wget is installed.\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m\r\n
Sudo is installed and authenticated.\t\t\t\u001b[32mPassed\u001b(B\u001b[m\r\n\
u001b[32mAll preqrequisites passed!\u001b(B\u001b[m\r\n
Where do you want to install Lisk to? (Default /home/vagrant): ",
"stdout_lines": [
"Checking prerequisites:",
"Curl is installed.\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m",
"Tar is installed.\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m",
"Wget is installed.\t\t\t\t\t\u001b[32mPassed\u001b(B\u001b[m",
"Sudo is installed and authenticated.\t\t\t\u001b[32mPassed\u001b(B\u001b[m",
"\u001b[32mAll preqrequisites passed!\u001b(B\u001b[m",
"Where do you want to install Lisk to? (Default /home/vagrant): "
]}
Thank you all guys in advance
Responses in
expect
module are regular expressions, so question marks have special meanings.You can simply use: