Ansible的file模块可以用于对文件或目录进行一些基本操作,包括创建文件或目录、删除文件或目录、修改文件权限等。
该模块有一些常用的参数,包括:
- path:必须参数,用于指定要操作的文件或目录。在之前的版本中,可以使用dest或name参数来指定。
- state:此参数非常灵活,其对应的值需要根据情况设定。当想要创建的路径是一个目录时,需要将state的值设置为directory;当想要操作的路径是一个文件时,需要将state的值设置为touch;当想要创建软链接文件时,需要将state的值设置为link;当想要创建硬链接文件时,需要将state的值设置为 hard;如果想要删除目录、文件或者取消链接文件,需要将state的值设置为absent。
- force:需要在两种情况下强制创建软链接,一种是源文件不存在,但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链。
- group:定义文件/目录的属组。
- mode:定义文件/目录的权限。
- owner:定义文件/目录的属主。
- recurse:递归的设置文件的属性,只对目录有效。
- src:要被链接的源文件的路径,只应用于state=link的情况。
- dest:被链接到的路径,只应用于state=link的情况。
- force=yes 强制。
创建或修改文件属性
ansible all -m file -a "path=/home/a.log state=touch group=root owner=root mode=600"
创建或修改文件夹属性
ansible all -m file -a "path=/home/a.log state=directory group=root owner=root mode=600"
创建软连接
ansible web -m file -a "src=/etc/hosts dest=/opt/hosts state=link"
强制创建软连接
ansible web -m file -a "src=/etc/hostsss dest=/opt/hosts state=link force=yes“