28 февр. 2017 г.

ansible: запрос значения переменных

В некоторых случаях требуется ручной ввод переменных. Это можно сделать с помощью параметра 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 }}"