使用 ansible unarchive 从 tar 存档中提取目录

rob*_*son 4 tar ansible

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

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

tar -xvf ingres.tar install
Run Code Online (Sandbox Code Playgroud)

对于ansible,我试过:

unarchive:
  remote_src: yes
  src: /ingres/ingres.tar
  dest: /ingres
  extra_opts:
    - "install"
Run Code Online (Sandbox Code Playgroud)

但它当然不起作用。任何的想法?

Ben*_*jen 7

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

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

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

unarchive:
  remote_src: yes
  src: /ingres/ingres.tar
  dest: /ingres
  extra_opts:
    - "--add-file"
    - "install"
Run Code Online (Sandbox Code Playgroud)