Создать архивный файл без его структуры в ansible - PullRequest
0 голосов
/ 13 января 2020

Мне нужно создать архив tar.gz с двумя файлами в разных каталогах, но я хочу, чтобы внутри tar.gz не отображалась родительская структура. У меня нет имени первого файла, но у меня есть каталог, в котором он находится. Теперь я использую этот код

- name: Create tar
          archive:
                path:
                - /var/opt/xxx/directory
                - /home/file2
                dest: /root/newDirectory/compressedFile.tar.gz
                format: gz

Я хочу, чтобы сжатыйFile.tar.gz содержал только файл1, который находится в каталоге / var / opt / xxx / directory и file2, но в этом случае с этим кодом появляется вся сжатая структура каталогов

Как можно не иметь родительскую структуру?

1 Ответ

1 голос
/ 13 января 2020

Это возможный сценарий (будет протестирован / адаптирован).

- name: Directory on local machine to hold relevant files
  file:
    state: directory
    path: "/tmp/my_archive_{{ inventory_hostname_short }}"
  deletegate_to: localhost

- name: Copy relevant files to localhost
  fetch:
    dest: "/tmp/my_archive_{{ inventory_hostname_short }}/"
    src: "{{ item }}"
    flat: true
  loop:
    - /var/opt/xxx/directory
    - /home/file2

- name: Create the archive
  archive:
    dest: "/tmp/my_archive_{{ inventory_hostname_short }}/archive.tar.gz"
    path: "/tmp/my_archive_{{ inventory_hostname_short }}/*"
  delegate_to: localhost
...