Рейтинг:1

Использование с вложенными в cat несколькими файлами

флаг ar

Мне нужно создать пользователей, вводящих данные из двух файлов списка, как показано ниже:

кот user.yml
пользователь1
пользователь2
пользователь3

кошка группа.yml
группа 1
группа2
группа3

кошка playbook.yml
- имя: Добавить пользователя
  пользователь:
    имя: "{{ пункт[0] }}"
    группа: "{{ элемент[1] }}"
  with_nested:
    - кот user.yml
    - группа кошек.yml

Два файла будут динамически получать входные данные от других задач, поэтому я не смогу упомянуть список в ['user1', 'user2'] таким образом. Пожалуйста, предложите, как связать два списка с помощью with_nested

Рейтинг:1
флаг br

Вопрос: "Сопоставьте два списка, используя 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
pugazhendhi avatar
флаг ar
Спасибо @Vladimir Botka, у меня работает
флаг br
Пожалуйста. Я добавил пример файлов, хранящихся на удаленном хосте.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.