community.windows.win_unzip 模块 – 在 Windows 节点上解压缩文件和压缩包

注意

此模块是 community.windows 集合 (版本 2.3.0) 的一部分。

如果您使用的是 ansible 软件包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.windows。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

要在 playbook 中使用它,请指定:community.windows.win_unzip

摘要

  • 解压缩文件和压缩包。

  • 原生支持 .zip 文件。

  • 支持 PowerShell Community Extensions (PSCX) 模块支持的其他格式(基本上是 7zip 支持的所有格式)。

  • 对于非 Windows 目标,请改用 ansible.builtin.unarchive 模块。

要求

执行此模块的主机需要以下要求。

  • PSCX

参数

参数

注释

creates

path

如果此文件或目录存在,则不会提取指定的 src。

delete_archive

别名:rm

布尔值

解压缩后删除 zip 文件。

选项

  • false ← (默认)

  • true

dest

路径 / 必需

zip 文件的目标位置(提供目录的绝对路径)。如果它不存在,则将创建该目录。

password

字符串

如果 zip 文件使用密码加密。

将值传递给密码参数需要安装 PSCX 模块。

recurse

布尔值

递归展开 src 文件中的压缩文件。

设置为 yes 值需要安装 PSCX 模块。

选项

  • false ← (默认)

  • true

src

路径 / 必需

要解压缩的文件(提供绝对路径)。

备注

注意

  • 此模块并非真正幂等的,它每次都会提取压缩包并报告更改。

  • 要提取 .zip 以外的任何压缩类型,需要使用 PowerShell Community Extensions (PSCX) 模块。此模块(与 PSCX 结合使用)能够递归解压缩提供的 src zip 文件中的文件,并且还具有许多其他压缩类型的功能。如果目标目录不存在,则会在解压缩文件之前创建它。指定 rm 参数将强制在提取后删除 src 文件。

另请参阅

另请参阅

ansible.builtin.unarchive

(可选) 从本地机器复制后解压缩压缩包。

示例

# This unzips a library that was downloaded with win_get_url, and removes the file after extraction
# $ ansible -i hosts -m win_unzip -a "src=C:\LibraryToUnzip.zip dest=C:\Lib remove=yes" all

- name: Unzip a bz2 (BZip) file
  community.windows.win_unzip:
    src: C:\Users\Phil\Logs.bz2
    dest: C:\Users\Phil\OldLogs
    creates: C:\Users\Phil\OldLogs

- name: Unzip gz log
  community.windows.win_unzip:
    src: C:\Logs\application-error-logs.gz
    dest: C:\ExtractedLogs\application-error-logs

# Unzip .zip file, recursively decompresses the contained .gz files and removes all unneeded compressed files after completion.
- name: Recursively decompress GZ files in ApplicationLogs.zip
  community.windows.win_unzip:
    src: C:\Downloads\ApplicationLogs.zip
    dest: C:\Application\Logs
    recurse: true
    delete_archive: true

- name: Install PSCX
  community.windows.win_psmodule:
    name: Pscx
    state: present

- name: Unzip .7z file which is password encrypted
  community.windows.win_unzip:
    src: C:\Downloads\ApplicationLogs.7z
    dest: C:\Application\Logs
    password: abcd
    delete_archive: true

返回值

常见返回值已在 此处 记录,以下是此模块独有的字段

描述

dest

字符串

提供的目标路径

返回:始终

示例:"C:\\ExtractedLogs\\application-error-logs"

removed

布尔值

模块是否在任务运行期间删除了任何文件

返回:始终

示例:true

src

字符串

提供的源路径

返回:始终

示例:"C:\\Logs\\application-error-logs.gz"

作者

  • Phil Schwartz (@schwartzmx)