Я хочу заархивировать все файлы, содержащие дату в своих именах, присутствующие в той же папке, в том же архиве по дате с Ansible.
Позвольте мне объяснить:
Файлы могутбыть такого типа: (обратите внимание, что дата может быть разделена тире или подчеркиванием)
/app/logs/app.log
/app/logs/app.log.2018-12-04
/app/logs/app.log.2018-12-05
/app/logs/batch.log
/app/logs/batch.log.2018-12-04
/app/logs/batch.log.2018-12-05
/app/logs/web.log
/app/logs/web.log.2018_12_04
/app/logs/web.log.2018_12_05
Я хочу архивные файлы с ansible, содержащие такую дату:
/app/logs/20181204.tar.gz
/app/logs/20181205.tar.gz
Дляв момент поиска файлов:
- name: Search files
find:
paths: "/app/logs/"
register: files
Я пытаюсь создать новый словарь:
- set_fact:
file:
- "name": "{{ item.path | basename | regex_replace( '[A-Z-_.a-z]' , '') }}"
"path": [ "{{ item.path }}" ]
loop: "{{ files.files }}"
when: item.path | basename | regex_replace( '[A-Z-_.a-z]' , '') != ''
И архивировать мои файлы, но мой файл var содержит только один файл
- name: archive logs
archive:
path: "{{ item.path }}"
dest: "/app/logs/{{ item.name }}.tar.gz"
with_items: "{{ file }}"
Спасибо за вашу помощь