首页 > 解决方案 > 使用 ansible unarchive 从 tar 存档中提取目录

问题描述

我想从 tar 文件中提取一个目录。

在 Linux 操作系统中进行安装目录解包 - 我只是这样做:

tar -xvf ingres.tar install

对于ansible,我尝试过:

unarchive:
  remote_src: yes
  src: /ingres/ingres.tar
  dest: /ingres
  extra_opts:
    - "install"

但这当然行不通。任何想法?

标签: ansibletar

解决方案


GNU tar 命令有一个选择存档成员的选项:--add-file. 手册的第 6.2 节提到它:

如果文件名以破折号 ( -) 开头,请在其前面加上--add-fileoption 以防止将其视为选项。

但是,它也适用于其他文件,这意味着您可以在extra_opts任务中指定此选项以选择要提取的文件或目录:

unarchive:
  remote_src: yes
  src: /ingres/ingres.tar
  dest: /ingres
  extra_opts:
    - "--add-file"
    - "install"

推荐阅读