Ansible模块[02]:unarchive
1、应用
- 将本地主机上的存档文件,发送到远程主机指定的目录下解存档。
- 直接解压目标主机上的存档文件。
2、参数
-
copy:
- 如果参数copy=yes,则把本地的存档文件拷贝到目标主机。
- 如果参数copy=no,则在目标主机上查找存档文件。
-
creates:在目标主机上创建文件或目录,如果指定的绝对路径(文件或目录)已存在,则将不运行此步骤。
-
src:
- 如果copy=yes,是指定本地主机存档文件的源路径。
- 如果copy=no,则是指定远端主机存档文件的源路径。
-
dest:远程主机上的一个路径,即存档文件解压的绝对路径。
-
owner:解压后文件或目录的属主。
-
group:解压后的目录或文件的属组。
-
mode:解压后文件的权限。
-
creates:指定一个文件名,当该文件存在时,则解压指令不执行。
-
keep_newer:不要替换比存档文件更新的现有文件。[Default: False];type: bool。
-
list_files:如果设置为True,则返回tarball中包含的文件列表。[Default: False];type: bool。
-
remote_src:
-
默认为“no”,表示:
- 要将本地主机的存档文件,复制到目标主机的存档文件的本地路径下。
-
设置为“yes”,表示:
-
存档文件已在远程主机上,而存档文件不存在于本地主机。
-
目标主机上要解压缩的现有存档文件的路径。
-
-
3、示例
1、将本地主机上的foo.tgz提取到目标主机的/var/lib/foo中,copy=yes,remote_src=no 是默认选项。
- 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 (added in 2.0)
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/
5、设置解存档后文件的属主、属组、和权限
- name: Modify the properties of the extracted file
unarchive:
src: unarchive.tar.gz
dest: /usr/local/bin
owner: root
group: root
mode: 0755

浙公网安备 33010602011771号