Ansible教程

Ansible Unarchive

Ansible Unarchive

Ansible unarchive 模块用于从诸如 zip、tar、tar.gz 等存档文件中解压或解压文件。它可以选择在解压缩文件之前将文件复制到远程服务器。
解压缩模块使用基本的解压缩和 tar-xvf 命令行工具进行操作。所以目标服务器一定已经安装了这些命令。由于大多数 *nix 发行版都内置了这些工具。以下是 Ansible unarchive 的一些要点,例如:
它需要目标远程主机上的 zipinfo 和 gtar/unzip 命令。 您可以使用 unzip 处理 .zip 文件,使用 gtar 处理 .tar、.tar.gz、.tar.bz2、.tar.xz 文件。 它不处理不包含 .tar 存档的 .gz、.bz2、.xz 文件。 它使用 gtar--diff arg 来计算是否更改。如果不支持--diff arg,它将始终解压缩存档。 默认情况下,它会在解包之前将源文件从本地系统复制到目标。 设置 remote_src=yes 以解压缩目标上已存在的存档。 如果需要校验和验证,请改用 get_url 或 Uri 来获取文件并设置 remote_src=yes。 将 win_unzip 模块用于 Windows 目标。 我们无法触及目标中不在存档中的现有文件或目录。 目标中不在存档中的现有文件或目录将被忽略,以决定是否应解压缩存档。

为什么使用 Unarchive 模块

Ansible Unarchive 模块对于跨主机移动大文件和文件夹很有用。
例如,如果您有一堆 NGINX 配置文件,您可以使用 unarchive 命令从 URL 下载一个压缩文件夹并解压。

示例

1.将 foo.tgz 解压到/var/lib/foo 中,如下代码所示,如​​:
-name: Extract foo.tgz into /var/lib/foo
  unarchive:
    src: foo.tgz
    dest: /var/lib/foo
2、要取消存档远程计算机上已有的文件:
-name: Unarchive a file that is already on the remote machine
  unarchive:
    src: /tmp/foo.zip
    dest: /usr/local/bin
    remote_src: yes
3、要取消归档需要下载的文件:
-name: Unarchive a file that needs to be downloaded 
  unarchive:
    src: https://example.com/example.zip
    dest: /usr/local/bin
    remote_src: yes
4、使用额外选项取消归档文件
-name: Unarchive a file with extra options
  unarchive:
    src: /tmp/foo.zip
    dest: /usr/local/bin
    extra_opts:
   ---transform
   -s/^xxx/yyy/
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4