在ansible中创建没有其结构的存档文件

Posted

技术标签:

【中文标题】在ansible中创建没有其结构的存档文件【英文标题】:Create archive file without its structure in ansible 【发布时间】:2020-01-13 08:48:40 【问题描述】:

我需要创建一个 tar.gz 存档,其中包含不同目录中的两个文件,但我希望 tar.gz 内部不会出现父结构。我没有第一个文件的名称,但我有它所在的目录。现在我正在使用此代码

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

我希望compressedFile.tar.gz 仅包含目录/var/opt/xxx/directory 和file2 中的file1,但在此代码中显示整个压缩目录结构

没有父结构怎么办?

【问题讨论】:

是否可以将这两个文件复制到一个目录然后压缩? 有可能,这种情况会怎样?我一直在寻找最高效、最优雅的方式 【参考方案1】:

这是一个可能的场景(待测试/调整)。

- 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

【讨论】:

以上是关于在ansible中创建没有其结构的存档文件的主要内容,如果未能解决你的问题,请参考以下文章

无法在 ios 6 中创建存档文件

如何在 IntelliJ IDEA 中创建 .jar 文件或导出 JAR(如 Eclipse Java 存档导出)? [复制]

如何在 Terraform 中创建存档文件?

在python中创建zip存档

如何在 Perl 中创建 Zip 存档?

由于文件间依赖关系,在 Xcode 中创建存档不起作用