Thanks Karol,
I've given that a go. Initially wasn't working because I didn't have the pexpect module installed but I think I have that sorted with the following dependencies installed now: epel, pip and pexpect > version 3.3.
I have tried running this task but it just hangs for the entire timeout duration I have set.
- name: Setup postcodesiodb
expect:
echo: yes
command: npm run setup
timeout: "10"
responses:
Question:
- Postgresql Superuser (for database creation) [default':' postgres]: "postgres"
- New Database Username (for readonly access) [default':' postcodesio]: "postcodesio"
- Password for new user [default':' secret]: "secret"
- Postgresql Host [default':' localhost]: "localhost"
- Database Name [default':' postcodesiodb]: "postcodesiodb"
- Postgresql Port [default':' 5432]: "5432"
tags:
- setup
- install
I have also tried with no space after the final colon but that then changes the font to all orange which doesn't seem right. Regardless, i tried it but the error was still exactly the same as below:
Fatal: [hostname]: FAILED! => {"changed": true, "cmd": "npm run setup", "delta": "0:02:00.145566", "end": "2020-08-25 21:33:22.107526", "msg": "command exceeded timeout", "rc": null, "start": "2020-08-25 21:31:21.961960",
...
"Postgresql Superuser (for database creation) [default: postgres]:"]}
This is the only error logging I have but it's failed at the first input I am attempting to populate here the postgres Super user. Any ideas how I need to pass in these answers and or variables if I don't want to hard code? Currently it looks like it is picking up a corrupt / blank value as shown by those chatacters in the green section below.
"Postgresql Superuser (for database creation) [default: postgres]:"]}
The wording / syntax of the questions when the script is called is exactly like this: