3.Ansible的file模块,我最常用的文件操作

本文详细介绍了Ansible中的file模块,包括其官方概念,如设置属性、删除和创建文件或目录的功能。通过示例展示了如何使用state参数执行touch、directory、absent操作,并验证了结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 结果验证

从上面的结果来看,命令执行成功了。去远程机器上看下
在这里插入图片描述
我们看到目录删除掉了,符合预期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值