Photo by Full Stack Python
In ansible we generally execute instruction written in playbook one after another. In some cases we have to collect some data from the user that can be a sensitive data or not. In this scenario we use prompts to collect the data from the user. We write all our prompts inside vars_prompt
section. By default the data we write as input is private and we can change it by private: no
. Below there is a basic example of ansible prompt.
---
- hosts: webservers
vars_prompt:
- name: username
prompt: "What is your username?"
private: no
- name: password_1
prompt: "What is your password?"
Here is the result –
$ ansible-playbook prompt.yml
What is your username?: ani
What is your password?:
PLAY [webservers] ***************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************
ok: [localhost]
PLAY RECAP **********************************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
We can even set a default value for any prompt and by default: 'value'
and if there is a need of verifying any value like password then we can do this by confirm: yes
. Below there is a example –
---
- hosts: webservers
vars_prompt:
- name: release_version
prompt: "What is product release version?"
private: no
default: "1.0"
- name: password_2
prompt: "Enter password_2"
confirm: yes
Here is the result of the above playbook –
$ ansible-playbook prompt.yml
What is product release version? [1.0]: 2.0
Enter password_2:
confirm Enter password_2:
***** VALUES ENTERED DO NOT MATCH ****
Enter password_2:
confirm Enter password_2:
PLAY [webservers] ***************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************
ok: [localhost]
PLAY RECAP **********************************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
In the above you can see that the default value in the square bracket what we have mention in the playbook and if we skip that part then ansible will take the default value. You can see that we have entered the confirmed password wrong so it is showing a warning like this **** VALUES ENTERED DO NOT MATCH ****
and second time we have entered the right value that’s why everything is ok.
Thank you 🙂