@gpfspam

Ansible. Как в модуле использовать еще один модуль?

Всем привет, пытаюсь разобраться в Ansible

Есть простая задача по перебору плейбуков из tasks/
Допустим я в каждый *.yml передам его же путь и верну результат {{ register }} в главный плейбук.

tasks:
  - include: "{{ item }}"
    vars:
     name_task: "{{ item} }"
    with_fileglob:
        - tasks/*.yml


Как я могу дальше обработать этот результат не выходя из цикла?
Например, записать в файл file.log

- local_action:
       module: copy
       content: "register.stdout_lines|join('\n') }}"
       dest: "file.log"


Конечно, я могу в каждом файле *.yml дописать этот модуль, но хотелось бы его описать один раз в цикле.

В итоге, если все собрать вместе, то получаю ошибку

tasks:
  - include: "{{ item }}"
    vars:
     name_task: "{{ item} }"
    local_action:
     module: copy
     content: "{{ register.stdout_lines|join('\n') }}"
     dest: "file.log"
    with_fileglob:
        - tasks/*.yml
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 2
@MaxKozlov
можно попробовать использовать block
или вложенные include_tasks

А если нет требования, чтобы выходной файл пополнялся сразу после выполнения, то register на цикл создаёт массив данных, который в конце можно и записывать
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
По поставленной задаче видно что у вас изначально неправильная задача и решение
Тачки все известны они не генерятся так что не надо их там как то искать, просто один раз переписать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы