本文概述
- 为什么要使用非归档模块
取消存档模块使用基本的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目标。
- 我们无法触摸目标文件中未存在的目标文件或目录。
- 目标中不在归档文件中的现有文件或目录将被忽略,以决定是否应解压缩归档文件。
例如,如果你有一堆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/
推荐阅读
- ansible awx用法
- ansible yum模块使用
- ansible windows使用
- ansible vault命令用法
- ansible文件模块用法
- ansible命令模块用法
- ansible复制模块
- ansible lineinfile模块
- ansible apt模块