file模块
file模块可以帮助我们完成一些对文件的基本操作,比如,创建文件或目录、删除文件或目录、修改文件权限等

path参数:必须参数,用于指定要操作的文件或目录,在之前版本的ansible中,使用dest参数或者name参数指定要操作的文件或目录,为了兼容之前的版本,使用dest或name也可以。

state参数:此参数非常灵活,此参数对应的值需要根据情况设定,比如,当我们需要在远程主机中创建一个目录的时候,我们需要使用path参数指定对应的目录路径,假设,我想要在远程主机上创建/testdir/a/b目录,那么我则需要设置path=/testdir/a/b,但是,我们无法从

src参数:当state设置为link或者hard时,表示我们想要创建一个软链或者硬链,所以,我们必须指明软链或硬链链接的哪个文件,通过src参数即可指定链接源。
force参数:当state=link的时候,可配合此参数强制创建链接文件,当force=yes时,表示强制创建链接文件,不过强制创建链接文件分为两种情况,情况一:当你要创建的链接文件指向的源文件并不存在时,使用此参数,可以先强制创建出链接文件。情况二:当你要创建链接文件的目录中已经存在与链接文件同名的文件时,将force设置为yes,回将同名文件覆盖为链接文件,相当于删除同名文件,创建链接文件。情况三:当你要创建链接文件的目录中已经存在与链接文件同名的文件,并且链接文件指向的源文件也不存在,这时会强制替换同名文件为链接文件。

owner参数:用于指定被操作文件的属主,属主对应的用户必须在远程主机中存在,否则会报错。
group参数:用于指定被操作文件的属组,属组对应的组必须在远程主机中存在,否则会报错。
mode参数:用于指定被操作文件的权限,比如,如果想要将文件权限设置为“rw-r-x---",则可以使用mode=650进行设置,或者使用mode=0650,效果也是相同的,如果你想要设置特殊权限,比如为二进制文件设置suid,则可以使用mode=4700,很方便吧。
recurse参数:当要操作的文件为目录,将recurse设置为yes,可以递归的修改目录中文件的属性

测试

在server3中创建一个testdir文件

ansible lineinfile模块参数 ansible的file模块_ansible

然后在ansible主机中在远程主机的testdir文件夹中创建一个westos文件

ansible lineinfile模块参数 ansible的file模块_file模块_02

此时远程主机中便存在改文件

ansible lineinfile模块参数 ansible的file模块_ansible_03

当我们再次执行上述命令是此时的ansible幂等性就不存在了它更改了文件的时间戳(因为我们使用touch创建文件会改变问价的时间戳)

ansible lineinfile模块参数 ansible的file模块_file模块_04

我们也可以在远程主机中创建一个目录

ansible lineinfile模块参数 ansible的file模块_创建文件_05

ansible lineinfile模块参数 ansible的file模块_操作文件_06

当我们再次执行该命令时他会根据幂等性不会做任何改变

ansible lineinfile模块参数 ansible的file模块_软链接_07

我们创建一个软链接

ansible lineinfile模块参数 ansible的file模块_软链接_08

ansible lineinfile模块参数 ansible的file模块_操作文件_09

我们进行硬链接

ansible lineinfile模块参数 ansible的file模块_创建文件_10

ansible lineinfile模块参数 ansible的file模块_创建文件_11

要连接的文件不存在,但是原文件存在我们可以使用force对软链接进行强行操作

ansible lineinfile模块参数 ansible的file模块_file模块_12

ansible lineinfile模块参数 ansible的file模块_ansible_13

删除远程主机中的目标文件

ansible lineinfile模块参数 ansible的file模块_创建文件_14

ansible lineinfile模块参数 ansible的file模块_操作文件_15

修改文件的所属组,

ansible lineinfile模块参数 ansible的file模块_软链接_16

ansible lineinfile模块参数 ansible的file模块_创建文件_17

对目录也能进行改操作

ansible lineinfile模块参数 ansible的file模块_软链接_18

ansible lineinfile模块参数 ansible的file模块_创建文件_19

修改参数

ansible lineinfile模块参数 ansible的file模块_ansible_20

已经存在的和新创建的都可以改变

ansible lineinfile模块参数 ansible的file模块_软链接_21

创建递归模块

ansible lineinfile模块参数 ansible的file模块_file模块_22

ansible lineinfile模块参数 ansible的file模块_file模块_23