ansible常用模块之 -- archive模块 -- 创建一个或多个文件或树的压缩存档

ansible常用模块之 -- archive模块 -- 创建一个或多个文件或树的压缩存档

archive模块 – 创建一个或多个文件或树的压缩存档

一、摘要

  • 包存档
  • 它与 unarchive 相反。
  • 默认情况下,它假定压缩源存在于目标上
  • 在存档之前,它不会将源文件从本地系统复制到目标系统。
  • 通过指定 remove=True,可以在归档后删除源文件。

二、参数

参数选项/默认值描述
attributes
string
生成的文件或目录应该具有的属性。
要获得支持的标志,请查看目标系统上的 chatr 手册页。
该字符串应该包含与lsattr显示的相同顺序的属性。
= 操作符为默认值,否则需要在字符串中包含 + 或 - 操作符。
dest
path
目标存档的文件名。
当 path 通过指定 glob、目录或列表中的多个路径引用多个文件时,这是必需的。
exclude_path
list
要从存档中排除的文件的远程绝对路径、glob或路径列表。
force_archive
boolean
· no ←
· yes
允许您强制模块将其作为存档处理,即使只指定了一个文件。
默认情况下,行为是保持的。例如,当单个文件被指定时,它只被压缩(而不是存档)。
format
string
· gz ←
· bz2
· tar
· xz
· zip
要使用的压缩类型。
Ansible 2.5中增加了对xz的支持。
group
string
应该拥有该文件/目录的组的名称,将提供给 chown。
mode
string
生成的文件或目录应该具有的权限。
对于那些习惯了/usr/bin/chmod的人来说,记住模式实际上是八进制数。你必须添加一个前导零,这样Ansible的YAML解析器就知道这是一个八进制数(比如0644或01777),或者引用它(比如’644’或’1777’),这样Ansible就可以接收到一个字符串,并可以进行自己的从字符串到数字的转换。
给Ansible一个不遵循这些规则的数字将会得到一个十进制数,这将会产生意想不到的结果。
从Ansible 1.8开始,模式可以指定为符号模式(例如,u+rwx或u=rw,g=r,o=r)。
owner
string
应该拥有该文件/目录的用户名,将提供给chown。
path
list
required
要压缩或归档的文件的远程绝对路径、glob或路径列表。
remove
boolean
· no ←
· yes
在添加到存档后,删除所有添加的源文件和树。
selevel
string
Default:“s0”SELinux文件上下文的 level 部分。
这是MLS/MCS属性,有时称为 range。
当设置为_default时,它将使用策略的级别部分(如果可用的话)。
serole
string
SELinux文件上下文的角色部分。
当设置为_default时,它将使用策略的角色部分(如果可用的话)。
setype
string
SELinux文件上下文的类型部分。
当设置为_default时,它将使用策略的类型部分(如果可用的话)。
seuser
string
SELinux文件上下文的用户部分。
默认情况下,它使用系统策略。
当设置为_default时,它将使用策略的用户部分(如果可用的话)。
unsafe_writes
boolean
· no ←
· yes
影响何时使用原子操作以防止数据损坏或从目标文件读取不一致。
默认情况下,该模块使用原子操作来防止数据损坏或从目标文件读取不一致,但有时系统的配置或破坏会防止这种情况发生。一个例子是docker装载的文件,它不能从容器内部原子地更新,只能以不安全的方式写入。
这个选项允许Ansible在原子操作失败时使用不安全的方法更新文件(然而,它并不强制Ansible执行不安全的写操作)。
重要!不安全的写操作会受到竞争条件的影响,并可能导致数据损坏。

三、描述

# 压缩“/path/to/foo/”到“/path/to/foo.tgz”
- name: Compress directory /path/to/foo/ into /path/to/foo.tgz
  archive:
    path: /path/to/foo
    dest: /path/to/foo.tgz

# 将常规文件/path/to/foo压缩为/path/to/foo.gz并删除源文件
- name: Compress regular file /path/to/foo into /path/to/foo.gz and remove it
  archive:
    path: /path/to/foo
    remove: yes

# 创建/path/to/foo的zip归档文件
- name: Create a zip archive of /path/to/foo
  archive:
    path: /path/to/foo
    format: zip

# 创建多个文件的bz2存档,根目录为/path
- name: Create a bz2 archive of multiple files, rooted at /path
  archive:
    path:
    - /path/to/foo
    - /path/wong/foo
    dest: /path/file.tar.bz2
    format: bz2

# 创建globbed路径的bz2归档文件,同时排除特定的dirname
- name: Create a bz2 archive of a globbed path, while excluding specific dirnames
  archive:
    path:
    - /path/to/foo/*
    dest: /path/file.tar.bz2
    exclude_path:
    - /path/to/foo/bar
    - /path/to/foo/baz
    format: bz2

# 创建globbed路径的bz2存档,同时排除dirnames的glob
- name: Create a bz2 archive of a globbed path, while excluding a glob of dirnames
  archive:
    path:
    - /path/to/foo/*
    dest: /path/file.tar.bz2
    exclude_path:
    - /path/to/foo/ba*
    format: bz2

# 使用gzip压缩单个归档文件(例如,不要先用tar压缩它)
- name: Use gzip to compress a single archive (i.e don't archive it first with tar)
  archive:
    path: /path/to/foo/single.file
    dest: /path/file.gz
    format: gz

# 创建单个文件的tar.gz存档。
- name: Create a tar.gz archive of a single file.
  archive:
    path: /path/to/foo/single.file
    dest: /path/file.tar.gz
    format: gz
    force_archive: true

官方文档: https://docs.ansible.com/ansible/2.9/modules/archive_module.html#archive-module

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值