ansbile file模块大体功能同copy模块,下面看看参数

参数
选项
必须说明
followyes/no
no如果原来的文件是link,拷贝后依旧是link
followyes/nono强制文件操作
recurseyes/no
no递归设置目录的属性
groupyes/nono设定一个群组拥有拷贝到远程节点的文件权限
mode yes/nono等同于chmod,参数可以为“u+rwx or u=rw,g=r,o=r”
owneryes/nono设定一个用户拥有拷贝到远程节点的文件
pathyes/noyes目标路径,也可以用dest,name代替
srcyes/noyes

要被链接的源文件的路径,只应用于state=link的情况

statefile/link/directory/hard/touch/absent no

file:即使文件不存在,也不会被创建

link:创建软链接

hard:创建硬链接

touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间

absent:删除目录、文件或者取消链接文件

不对之处请看官方文档

1.1.修改文件属性示例

源文件:

# ll
total 4
-rw-r--r-- 1 root root 17 Dec 28 04:52 2.txt

操作:

# ansible dbserver -m file -a "follow=yes group='ckl' mode='640' owner='ckl' path=/app/2.txt state=file force=yes" 
172.16.110.49 | SUCCESS => {
    "changed": true, 
    "gid": 1000, 
    "group": "ckl", 
    "mode": "0640", 
    "owner": "ckl", 
    "path": "/app/2.txt", 
    "size": 17, 
    "state": "file", 
    "uid": 1000
}


查看文件:

# ll
total 4
-rw-r----- 1 ckl ckl 17 Dec 28 04:52 2.txt


1.2.创建链接文件示例

查看源文件

# ll mf.txt 
-rw-r--r-- 1 root root 21 Dec 28 04:56 mf.txt
# ansible dbserver -m file -a "src=/data/mf.txt dest=/app/kk state=link"
172.16.110.49 | SUCCESS => {
    "changed": true, 
    "dest": "/app/kk", 
    "gid": 0, 
    "group": "root", 
    "mode": "0777", 
    "owner": "root", 
    "size": 12, 
    "src": "/data/mf.txt", 
    "state": "link", 
    "uid": 0
}
# ll /app/
total 4
-rw-r----- 1 ckl  ckl  17 Dec 28 04:52 2.txt
lrwxrwxrwx 1 root root 12 Dec 28 05:06 kk -> /data/mf.txt


1.3.文件删除示例

# ansible dbserver -m file -a "path=/data/mf.txt force=yes state=absent"
172.16.110.49 | SUCCESS => {
    "changed": true, 
    "path": "/data/mf.txt", 
    "state": "absent"
}
# ll /data/
total 0