1.file 模块的用法
1.1 官方概念
Set attributes of files, symlinks or directories. Alternatively, remove files, symlinks or directories. Many other modules support the same options as the `file’ module - including [copy], [template], and
[assemble]. For Windows targets, use the [win_file] module instead.
1.2 参数描述
参数 | 描述 |
---|---|
path | 指定要操作的文件或目录Path to the file being managed |
state | 这个参数的值很多,主要是来规定操作的一些类型,我这里就列举一下我经常用到的 |
absent:删除操作,可以删除文件或者目录 | |
touch:创建文件,如果文件已经存在,则会更新文件的时间戳 | |
directory:创建目录,如果目录不存在,那么所有的子目录将被创建(而且提供权限的创建),如果目录# 已经存在,则不进行任何操作 | |
mode:修改权限 |
1.3 示例
1.3.1 创建目录
1.3.1.1 执行命令
ansible all -m file -a 'path=/testfile state=directory'
1.3.1.2 验证
从上面的结果来看,已经创建成功了。去远程机器上看下
结果符合预期。
1.3.2 创建文件
1.3.2.1 执行命令
ansible all -m file -a 'path=/testfile/a.txt state=touch'
1.3.2.2 结果验证
从上面的返回结果来看,已经执行成功。再去远程机器看下
符合预期。
1.3.2.3 重新执行命令
我们在host1上修改a.txt文件,加入内容
再执行命令:
ansible all -m file -a 'path=/testfile/a.txt state=touch'
1.3.2.4 重新执行命令的结果
我们看到,内容没变变化,文件时间改变了。
1.3.3 删除文件
1.3.3.1 执行命令
ansible all -m file -a 'path=/testfile/a.txt state=absent'
1.3.3.2 结果验证
从返回结果来看,已经成功。去远程机器看下
文件已经删除了。
1.3.4 删除目录
1.3.4.1 执行命令
ansible all -m file -a 'path=/testfile/ state=absent'
1.3.4.2 结果验证
从上面的结果来看,命令执行成功了。去远程机器上看下
我们看到目录删除掉了,符合预期。