文章目录

  • 一、文件操作模块的参数介绍
  • 1、copy模块的参数
  • 2、file模块的参数
  • 3、find模块的参数
  • 二、文件操作模块的验证与练习


一、文件操作模块的参数介绍

1、copy模块的参数

copy模块可以完成对文件的拷贝(从本机拷贝到受控主机,和fetch模块正好相反)

src 源路径,也就是要拷贝的文件在哪里
dest 目标路径,也就是打算拷贝文件到哪里
content 如果拷贝的时候不使用src指定源文件的话,那就用这个直接指定文件内容,它和src二者必须有一个
force 受控主机的目标路径里如果已经有这个同名文件,并且文件内容和要拷贝的源文件内容不一样,是否强制覆盖,默认为yes,如果选no,意味着同名不同内容的文件,不会进行覆盖
backup 受控主机的目标路径里如果已经有这个同名文件,并且文件内容和要拷贝的源文件内容不一样,是否先备份受控主机里的文件,然后再进行覆盖,设置为yes时,会进行备份然后覆盖
owner 指定文件属主,也就是文件拷贝到受控主机上后,文件所属者是谁,如果指定了属主,但受控主机上却没有这个用户,就会报错
group 指定文件属组,也就是文件拷贝到受控主机上后,文件所属组是谁,如果指定了属组,但受控主机上却没有这个用户组,就会报错
mode 指定文件权限,也就是文件拷贝到受控主机上后,文件的权限,如果想把文件设置为rw-r–r--权限,也就是644权限,可以用mode=0644表示,如果想要再user对应的权限位上加上执行权限,那就是mode=u+x,其实和linux系统里的chmod改法很像

2、file模块的参数

file模块可以完成对文件或目录的创建、删除、修文件权限的修改等

path 指定要操作的目录,ansible较新的版本使用这个,但是也兼容旧版本中使用的dest参数和name参数
state 后面可以指定状态为directory(创建目录)、touch(创建文件)、link(创建软链接)、hard(创建硬链接)、absent(删除文件或目录等)
src 这个是用在创建链接文件的时,src指定链接到哪个文件也就是链接源
force 用在创建链接文件时,force=yes时,链接的源文件不存在的话,会先把链接文件创建出来,如果链接文件所处目录下已经存在同名的链接文件时,会替换掉原来的链接文件
owner 指定被操作文件的属主,属主对应的用户必须在远程主机中存在,否则就会报错
group 指定被操作文件的属组,属组对应的组必须在远程主机中存在,否则就会报错
mode 指定被操作文件的权限,例如"rw-r-x—"这样的权限可以用mode=650或者mode=0650设置,如果想要设置特殊权限,比如二进制文件的suid,则可以使用mode=4700
recurse 当操作的文件为目录,将其设置为yes,则可以递归修改目录中文件的属性

3、find模块的参数

find模块可以实现对受控主机中文件的查找

paths 指定受控主机中在哪个路径下查找,路径之间用逗号隔开,可以查找多个路径,可以用别名name或path

recurese 此参数为yes时,进行递归查找

hidden 设置为yes时,隐藏文件也会查找

file_type 默认情况下,ansible只会根据条件查找"文件",不会查找"目录"或"软链接"等文件类型,如果想要指定查找的文件类型,可以通过file_type指定文件类型,可指定的文件类型有any、directory、file、link四种

patterns 使用此参数指定需要查找的文件名称,默认支持使用shell通配符,如果想要使用python正则匹配文件名的话,需要将use_regex的参数设置为yes

use_regex 设置为yes时,才可使用python正则解析patterns参数中的表达式

contains 使用此参数可以根据文件内容查找文件,此参数的值是正则表达式,find根据正则表达式找哪个文件里包含了正则匹配的内容

age 根据时间范围查找文件,以当前时间为基准,想要查找3天之前的文件,则设置age=3d,如果想要查找3天以内的文件,可以设置age=-3d,除了天,还可以使用的单位有秒(s)、分(m)、时(h)、天(d)、星期(w)

age_stamp 设置时间种类,有atime、ctime、mtime,设置哪个,就以哪个时间为准

size 根据大小查找,size=3m表示大于3兆,size=-500k,表示查找小于500k的

get_checksum 当有符合查找条件的文件被找到时,会同时返回对应文件的sha1校验码,如果要查找的文件比较大,生成校验码的时间就会比较长

二、文件操作模块的验证与练习