Вопрос: "Сопоставьте два списка, используя with_nested."
А: Например
- отладка:
сообщение: "{{ item.0 }} {{ item.1 }}"
with_nested:
- "{{ lookup('file', 'user.yml').splitlines() }}"
- "{{ lookup('file', 'group.yml').splitlines() }}"
дает
сообщение: пользователь1 группа1
сообщение: пользователь1 группа2
сообщение: пользователь1 группа3
сообщение: пользователь2 группа1
сообщение: пользователь2 группа2
сообщение: пользователь2 группа3
сообщение: пользователь3 группа1
сообщение: пользователь3 группа2
сообщение: пользователь3 группа3
Такой же результат дает трубка плагин поиска, .e.g.
- отладка:
сообщение: "{{ item.0 }} {{ item.1 }}"
with_nested:
- "{{ lookup('pipe', 'cat user.yml').splitlines() }}"
- "{{ lookup('pipe', 'cat group.yml').splitlines() }}"
Плагины поиска «... как и все шаблоны, поиск выполняется и оценивается на управляющей машине Ansible».
Если файлы хранятся на удаленном хосте, например.
оболочка> ssh admin@test_11 cat user.yml
пользователь1
пользователь2
пользователь3
оболочка> ssh admin@test_11 cat group.yml
группа 1
группа2
группа3
сначала прочитайте файлы с удаленного хоста, например.
- хосты: test_11
задачи:
- команда: cat user.yml
регистрация: результат_пользователь
- команда: cat group.yml
зарегистрироваться: результирующая_группа
- отладка:
сообщение: "{{ item.0 }} {{ item.1 }}"
with_nested:
- "{{ result_user.stdout_lines }}"
- "{{result_group.stdout_lines }}"
дает тот же результат
сообщение: пользователь1 группа1
сообщение: пользователь1 группа2
сообщение: пользователь1 группа3
сообщение: пользователь2 группа1
сообщение: пользователь2 группа2
сообщение: пользователь2 группа3
сообщение: пользователь3 группа1
сообщение: пользователь3 группа2
сообщение: пользователь3 группа3