Как запустить задание с несколькими переменными массива? - PullRequest
0 голосов
/ 12 марта 2019

Существует файл host_vars / my_host.yml, который включает переменные массива:

---
my_array_variable_1: '"arr1_el1" "arr1_el2"'
my_array_variable_2: '"arr2_el1" 
my_array_variable_3: '"file1" "file2"'

Существует задача main.yml, которая не работает, как я полагаю:


- name: my task.
  shell: |
    echo "{{ my_array_variable_1[] }} {{ my_array_variable_2[] }}" >>/home/user/{{ my_array_variable_3[] }}

1) Как я могу получить этот результат:

# cat /home/user/file1
arr1_el1
arr2_el1
# cat /home/user/file2
arr1_el2
arr2_el1

2) Как я могу получить этот результат:

# cat /home/user/file1
arr1_el1
arr1_el2
arr2_el1
# cat /home/user/file2
arr1_el1
arr1_el2
arr2_el1

3) Как я могу получить этот результат:

# cat /home/user/file1
arr1_el1
arr2_el1
# cat /home/user/file2
arr1_el2 

Я ищу, но не могу найти четкого примера ни в официальных документах, ни в поисковых системах. Пожалуйста, помогите с результатом или получите ссылку на соответствующую документацию или пример.

С уважением,

UPD: Найдите, что мне нужно использовать словарь и "with_dict" для создания ассоциативного массива, например this Как я должен написать задачу, чтобы получить все элементы, как в моем результате 2 или конкретные значения, как в результате 3

UPD2: Я нашел пример в ansible docs, как работать с dicts, но как включить его в файл host_vars? Я получаю ошибку ниже:

An unhandled exception occurred while running the lookup plugin 'dict'

1 Ответ

0 голосов
/ 12 марта 2019

Я просто использую модуль dict . Это позволяет формировать массивы любой сложности с помощью словарей.

...