В некоторых случаях требуется ручной ввод переменных. Это можно сделать с помощью параметра vars_prompt.
- name: get host info
hosts: localhost
vars_prompt:
- name: remote_host
prompt: "Where to go? Enter DNS/IP"
private: no
default: localhost
- name: remote_user
prompt: "Enter remote username"
private: no
default: root
- name: remote_user_pass
prompt: "Enter password"
private: yes
Описание довольно очевидно, из интересностей: private: yes скрывает вводимые символы в консоли (аналогично поведению при вводе пароля при логине); значение default подставляется в случае, если ввод был пустым (также оно отображается в скобках при запросе значения).
В качестве примера использования можно предложить такое задание:
tasks:
- name: create dynamic inventory
add_host:
name: "{{ remote_host }}"
groups: temp_hosts
ansible_user: "{{ remote_user }}"
ansible_become: yes
ansible_ssh_pass: "{{ remote_user_pass }}"
ansible_sudo_pass: "{{ remote_user_pass }}"