Вы можете просто извлечь список путей из результата find
с помощью фильтра map
и передать его в pip
, как вы делали это ранее при поиске fileglob
.
Принимая как должное ваше фактическое find
задание, возвращает то, что вы ожидаете (я все еще добавил recurse
, так как вы упомянули об этом), следующие две задачи должны соответствовать вашему требованию:
---
- hosts: localhost
tasks:
- name: Find to catch recursively all wheels
find:
paths: /vagrant/vagrant/*/dist/
patterns: '*.whl'
recurse: true
register: wheel_search
- name: Install all found wheels
pip:
name: "{{ wheel_search.files | map(attribute='path') | list }}"
virtualenv: "~/venv"
virtualenv_command: /usr/bin/python3 -m venv ~/venv
Обратите внимание, что Решение find
гораздо более переносимо, чем поиск fileglob
, поскольку при необходимости оно будет работать на удаленном хосте. Поиск всегда выполняется локально, тогда как поиск выполняется на целевом хосте.