Я не вижу никаких проблем.

ьзование роли Ansible. Я хотел бы перебрать список путей к файлам, но я получаю сообщение об ошибке:

template error while templating string: unexpected '/'.
String: {{/home/xyz/download.log}}

Этоmain.yml для роли "list_log_files":

- name: "find logs"
  find:
    paths: /
    patterns: 'download.log'
    recurse: yes
  register: find_logs

- name: "list log files"
  debug: var="{{ item.path }}"
  with_items: "{{ find_logs.files }}"

Find возвращает массив «files», каждый из которых является словарем. Словарь содержит запись пути, которая мне интересна.

Ответы на вопрос(1)

Решение Вопроса

var аргументdebug Модуль (со значением для вашего варианта использования):

В примечании Ansible:

debug: var=item.path

В нотации YAML:

debug:
  var: item.path

Использование Ansible модулей хорошо документировано, и примеры охватывают потребности большинства пользователей. Это также верно дляdebug модуль, такобратитесь к примерам проверить основной синтаксис.

 J2104219 окт. 2017 г., 16:14
Да, мне нужно многое узнать об Ansible. Я действительно хотел бы получить массив путей из «find», чтобы перейти к другим шагам, но я пока не знаю, как это сделать.
 J2104219 окт. 2017 г., 15:31
К сожалению, «debug: var: item.path» не просто печатает путь, он печатает все содержимое «item», но мне нужен только путь. Может быть, фильтр будет работать?
 techraf19 окт. 2017 г., 15:36
Не совсем. Любыеdebug задача выполняется в цикле печатает целоеitem к тому же в указанную переменную, потому что именно так был написан модуль. Кто-то только что разработалdebug быть использованным для ... неожиданности ... отладки.
 techraf19 окт. 2017 г., 16:15
Я не вижу никаких проблем.

Ваш ответ на вопрос