用于创建归档文件的模块。它允许你在目标主机上创建tar、zip、gzip、bzip2、xz等类型的归档文件。解压使用unarchive模块。
path
:要打包的源目录或文件的路径。(可以是单个文件或目录,也可以是包含多个文件和目录的列表。)dest
:要创建的归档文件的路径和名称。format
:归档文件的格式,可以是tar、zip、gzip、bzip2或xz。mode
:指定归档文件的权限模式。owner
:指定归档文件的所有者。group
:指定归档文件的所属组。extra_opts
:包含任意其他选项的字符串。- unique:当设置为
yes
时,如果目标归档文件已存在且内容相同,则不会重新创建归档。这对于避免不必要的工作很有用。默认为no
。- remove:如果设置为
yes
,归档操作后会删除原始文件或目录。默认为no
。- exclude: 指定要从归档中排除的文件或目录列表。
压缩客户机(管理节点主机的的文件或目录)
压缩客户机(管理节点)的文件或目录只需要添加remote_src=yes即可。
创建tar格式的归档文件
ansible 192.168.20.23 -m archive -a 'path=/var/log dest=/opt/var_log_backup.tar format=tar'
这个命令会在远程主机192.168.20.23上将 /var/log
目录打包成一个名为 var_log_backup.tar
的tar归档文件,并存放在 /opt
目录下。
创建gzip压缩的tar归档文件(.tar.gz)
ansible 192.168.20.23 -m archive -a 'path=/var/log dest=/opt/var_log_backup.tar.gz format=gz'
这将会把 /var/log
目录压缩成gzip格式的tar文件 var_log_backup.tar.gz
。
创建bzip2压缩的tar归档文件(.tar.bz2)
ansible 192.168.20.23 -m archive -a 'path=/var/log dest=/opt/var_log_backup.tar.bz2 format=bz2'
此命令会创建一个bzip2压缩的tar文件,文件名是 var_log_backup.tar.bz2
。
设置归档文件的权限和所有者
ansible 192.168.20.23 -m archive -a 'path=/etc/yum.repos.d dest=/backup/yum_repos_backup.tar.gz format=gz owner=root group=wheel mode=0644'
此命令不仅创建了一个gzip压缩的tar文件,还设置了归档文件的所有者为 root
,所属组为 wheel
,以及权限为 0644
。
排除特定文件或目录
ansible 192.168.20.23 -m archive -a 'path=/var/www/html dest=/backups/html_backup.tar.gz format=gz exclude=html_backup.tar.gz exclude=log'
这个命令在创建归档文件时,会排除名为 html_backup.tar.gz
的文件和任何名为 log
的目录。
创建zip压缩的tar归档文件(.tar.zip)
bash
ansible jingyu -m archive -a "path=/csdn dest=/csdn.tar.zip format=zip"
压缩jingyu主机 / 跟下的csdn目录 到 / 根下名称叫csdn.tar.zip 压缩格式为format=zip。
创建xz压缩的tar归档文件(.tar.xz)
使用xz格式在客户端需要下载使用python-backports-lzma
bash
yum -y install python-backports-lzma
可能会让下载python-backports
bash
yum -y install python-backports
bash
ansible jingyu -m archive -a "path=/csdn dest=/csdn.tar.xz format=xz"
在jingyu组中 压缩 / 根下的csdn目录 到 / 根下叫csdn.tar.xz 名称 压缩格式为xz.