ansible unarchive模块使用

本文概述

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

【ansible unarchive模块使用】4.使用其他选项取消存档文件
- name: Unarchive a file with extra options unarchive: src: /tmp/foo.zip dest: /usr/local/bin extra_opts: - --transform - s/^xxx/yyy/

    推荐阅读