Сделать массив в ansible пользователем Prompt - PullRequest
0 голосов
/ 10 ноября 2018

Я хочу сделать массив в ansible, где пользователь также может вводить элементы.

Например:

Пользователь должен иметь возможность вводить приложения по одному, и я хочу сохранить приложение в массиве.

Пробовал следующий playbook, но не работает

- hosts: TestServer
  vars_prompt:
  - name: "application_list"
    prompt: "Please specify the applications"
    private: "No"
    loop: '{{application_lists|length}}'
  tasks:
  - set_fact:
    application_list: "{{ application_lists | default([])"
  - name:
    with_items : '{{application_lists}}'
    debug :
    msg: "{{application_list}}"

Я новичок в ANSIBLE, пожалуйста, помогите. Заранее спасибо.

1 Ответ

0 голосов
/ 10 ноября 2018

Если вам действительно нужно запросить у пользователя эту информацию, вы можете запросить список, разделенный запятыми:

- hosts: TestServer
  vars_prompt:
    - name: application_list_csv
      prompt: "Please specify the applications, separated by commas"

, а затем разбить его в задании на фактический список:

  tasks:
    - set_fact:
        application_list: "{{ application_list_csv.split(',') }}"

Затем вы можете циклически перебирать значения, используя loop, например:

    - debug:
        msg: "{{item}}"
      loop: "{{application_list}}"

Сказав это, я все же думаю, что вам лучше, если пользователь поместит информацию в файл,как это:

application_list:
  - app1
  - app2
  - app3

А затем включите это в свою игру:

ansible-playbook playbook.yml -e @applist.yml
...