Вы можете выполнить все, что вам нужно, с помощью файлового модуля и цикла.Я предпочитаю роли.Итак, я создал следующую структуру каталогов:
.
+ testunarchive.yml
+ unarchive
+ files
| + foo1.zip
| + foo2.tgz
+ tasks
+ main.yml
+ unarchive.yml
foo1.zip и foo2.tgz - это просто тестовые архивные файлы в формате zip и сжатый tar.
testunarchive.yml содержитсборник пьес.Я только что проверил это на локальном хосте.
---
- hosts: localhost
roles:
- unarchive
...
Задача main.yml приносит файл unarchive.yml и перебирает все задачи в этом файле.
---
- include: unarchive.yml
loop:
- { src: foo1.zip, dest: /tmp/foo1 }
- { src: foo2.tgz, dest: /var/tmp/foo2 }
...
Unarchive.ymlФайл task выполняет фактическую работу по созданию каталога назначения, если он не существует, и разархивированию исходного архива в каталог назначения.
---
- name: "Creating {{ item.dest }}"
file:
path: "{{ item.dest }}"
state: directory
- name: "Unarchiving {{ item.src }}"
unarchive:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
...
Надеемся, что что-то подобное поможет вам.