ansible 常用模块 archive
模块说明
-
该
unarchive
模块解压缩存档。它不会解压缩不包含存档的压缩文件。 -
默认情况下,它会在解包之前将源文件从本地系统复制到目标。
-
设置
remote_src=yes
为解压缩目标上已存在的存档。 -
在目标主机上需要
zipinfo
和gtar
/unzip
命令。 -
需要目标主机上的
zstd
命令来展开.tar.zst文件。 -
可以使用 处理.zip文件
unzip
以及使用.tar、.tar.gz、.tar.bz2、.tar.xz和.tar.zst文件gtar
。 -
不处理不包含.tar存档的.gz文件、.bz2文件、.xz或.zst文件。
-
目标中不在存档中的现有文件/目录不会被触及。这与正常的存档提取行为相同。
-
目标中不在存档中的现有文件/目录将被忽略,以决定是否应解压缩存档。
参数说明
Parameter |
Comments |
---|---|
attributes aliases: attr string added in Ansible 2.3 |
生成的文件系统对象应具有的属性。 要获得支持的标志,请查看目标系统上chattr的手册页。 该字符串应包含与lsattr显示的顺序相同的属性。 该 |
copy boolean |
如果为真,则文件从本地控制器复制到托管(远程)节点,否则,插件将在托管机器上查找 src 存档。 此选项已被弃用,取而代之的是 此选项与 互斥 选择:
|
creates path added in Ansible 1.6 |
如果指定的绝对路径(文件或目录)已经存在,则不会运行此步骤。 指定的绝对路径(文件或目录)必须在 . 给出的基本路径之下 |
decrypt boolean added in Ansible 2.4 |
此选项控制使用保管库对源文件的自动解密。 选择:
|
dest path / required |
存档应解压缩的远程绝对路径。 给定的路径必须存在。基本目录不是由此模块创建的。 |
exclude list / elements=string added in Ansible 2.1 |
列出您希望从取消存档操作中排除的目录和文件条目。 与 Default: |
extra_opts list / elements=string added in Ansible 2.1 |
通过传入数组指定其他选项。 每个以空格分隔的命令行选项应该是数组的一个新元素。请参阅示例。 具有多个元素的命令行选项必须在数组中使用多行,每个元素一行。 Default: |
group string |
应该拥有文件系统对象的组的名称,将被提供给chown。 如果未指定,它将使用当前用户的当前组,除非您是 root,在这种情况下,它可以保留以前的所有权。 |
include list / elements=string added in ansible-core 2.11 |
您要从存档中提取的目录和文件条目的列表。如果 与 Default: |
io_buffer_size integer added in ansible-core 2.12 |
用于从存档中提取文件的易失性内存缓冲区的大小(以字节为单位)。 Default: |
keep_newer boolean added in Ansible 2.1 |
不要替换比存档文件更新的现有文件。 选择:
|
list_files boolean added in Ansible 2.0 |
如果设置为 True,则返回压缩包中包含的文件列表。 选择:
|
mode any |
生成的文件系统对象应具有的权限。 对于习惯于/usr/bin/chmod的用户,请记住模式实际上是八进制数。您必须添加一个前导零,以便 Ansible 的 YAML 解析器知道它是一个八进制数(如 在不遵循这些规则之一的情况下为 Ansible 提供一个数字将以十进制数结尾,这将产生意想不到的结果。 从 Ansible 1.8 开始,模式可以指定为符号模式(例如, 如果 如果 |
owner string |
应该拥有文件系统对象的用户的名称,将被提供给chown。 如果未指定,它将使用当前用户,除非您是 root,在这种情况下,它可以保留以前的所有权。 指定数字用户名将被假定为用户 ID 而不是用户名。避免使用数字用户名以避免这种混淆。 |
remote_src boolean added in Ansible 2.2 |
设置 此选项与 选择:
|
selevel string |
SELinux 文件系统对象上下文的级别部分。 这是 MLS/MCS 属性,有时称为 设置为 时 |
serole string |
SELinux 文件系统对象上下文的角色部分。 设置为 时 |
setype string |
SELinux 文件系统对象上下文的类型部分。 设置为 时 |
seuser string |
SELinux 文件系统对象上下文的用户部分。 默认情况下,它会 设置为 时 |
src path / required |
如果 如果 |
unsafe_writes boolean added in Ansible 2.2 |
影响何时使用原子操作来防止数据损坏或从目标文件系统对象读取不一致。 默认情况下,此模块使用原子操作来防止数据损坏或从目标文件系统对象读取不一致,但有时系统会以防止这种情况的方式配置或破坏。一个例子是 docker 挂载的文件系统对象,它不能从容器内部自动更新,只能以不安全的方式写入。 此选项允许 Ansible 在原子操作失败时回退到更新文件系统对象的不安全方法(但是,它不会强制 Ansible 执行不安全的写入)。 重要的!不安全的写入受竞争条件的影响,并可能导致数据损坏。 选择:
|
validate_certs boolean added in Ansible 2.2 |
这仅适用于使用 https URL 作为文件源的情况。 这应该只设置为 在 2.2 之前,代码的工作方式就好像它被设置为 选择:
|
示例
- name: Extract foo.tgz into /var/lib/foo
ansible.builtin.unarchive:
src: foo.tgz
dest: /var/lib/foo
- name: Unarchive a file that is already on the remote machine
ansible.builtin.unarchive:
src: /tmp/foo.zip
dest: /usr/local/bin
remote_src: yes
- name: Unarchive a file that needs to be downloaded (added in 2.0)
ansible.builtin.unarchive:
src: https://example.com/example.zip
dest: /usr/local/bin
remote_src: yes
- name: Unarchive a file with extra options
ansible.builtin.unarchive:
src: /tmp/foo.zip
dest: /usr/local/bin
extra_opts:
- --transform
- s/^xxx/yyy/
参考文档
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/unarchive_module.html#ansible-collections-ansible-builtin-unarchive-module