Linux——ansible关于“文件操作”的模块

修改文件并将其复制到主机

一、确保受管主机上存在文件

使用 file 模块处理受管主机上的文件。其工作方式与 touch 命令类似,如果不存在则创建一个空文件,如果存在,则更新其修改时间。在本例中,除了处理文件之外,Ansible还确保将文件的拥有用户、组和权限设置为特定值。

二、修改文件属性

您可以使用 file 模块,确保新的或现有的文件具有正确的权限和 SELinux 类型。

例如,以下文件保留了相对于用户主目录的默认 SELinux上下文,这不是所需的上下文。

三、 使selinux文件上下文更具有持久性

设置文件上下文时,file模块的行为与chcon类似。通过运行restorecon,可能会意外地撤消使用该模块所做的更改。使用 file 设置上下文后,您可以使用system 模块集合中的sefcontext来更新SELinux策略,如semanage fcontext。

四、在受管主机上复制和编辑文件

在此示例中,copy 模块用于将位于控制节点上的Ansible 工作目录中的文件复制到选定的受管主打。

默认情况下,此模块假定设置了force:yes。这会强制该模块覆盖远程文件(如果存在但包含与正在复制的文件不同的内容)。如果设置force:no,则它仅会将该文件复制到受管主机(如果该文件尚不存在)。

复制文

确定内容

lineinfile模块

添加内容

要将文本块添加到现有文件,请使用block file模块:

五、删除文件

从受管主机中删除文件的基本示例是使用 file 模块和 state:absent 参数。state 参数对于许多模块是可选的。出于多个原因,您应始终明确您的意图,即您是需要state:present 还是state:absent。一些模块也支持其他选项。默认值可能会在某个时候发生变化,但也许最重要的是可以更轻松地根据您的任务了解系统应处于的状态。

六、检索受管主机上的文件状态

stat 模块检索文件的事实,类似于 Linuxstat 命令。参数提供检索文件属性、确定文件校验和等功能。

stat 模块返回一个包含文件状态数据的值的散列字典,允许您使用单独的变量引用各条信息。以下示例注册 stat 模块的结果,然后显示它检查的文件的 MD5 校验和。(也可使用更现代的SHA256 算法;这里使用 MD5 以提高易读性。)

七、同步控制节点和受管主机之间的文件

synchronize 模块是一个围绕rsync 工具的打包程序,它简化了 playbook 中的常见文件管理任务。rsync 工具必须同时安装在本地和远程主机上。默认情况下,在使用synchronize模块时,"本地主机"是同步任务所源自的主机(通常是控制节点),而"目标主机"是synchronize 连接到的主机。

以下示例将位于 Ansible 工作目录中的文件同步到受管主机:

相关推荐
我是koten3 小时前
用Ansible查找文件并记录文件名的playbook
linux·运维·centos·ssh·ansible·find·playbook
jcsx3 小时前
采用ansible收集多个centos6主机的一个特定日志文件vsftpd.log的后3000行
ansible
广目软件1 天前
GM DC Monitor一体化监控预警平台部署手册2025-12-10
运维·自动化·ansible·zabbix·运维开发·prometheus
tianyuanwo2 天前
Ansible构建节点管理:Koji与Mock构建节点的自动化运维实践
运维·自动化·ansible
星融元asterfusion4 天前
容器化NPB + Ansible:自动化运维方案
运维·自动化·ansible
乾元5 天前
SDN 与 AI 协同:控制面策略自动化与策略一致性校验
运维·网络·人工智能·网络协议·华为·系统架构·ansible
车传新6 天前
Ansible
ansible
ylmzfun7 天前
基于Ansible的自动化运维实战:从入门到企业级应用
运维·架构·ansible
码界奇点7 天前
基于Django与Ansible的智能运维管理系统设计与实现
运维·python·django·毕业设计·ansible·源代码管理
乾元9 天前
AI + Jinja2/Ansible:从自然语义到可执行 Playbook 的完整流水线(工程级深度)
运维·网络·人工智能·网络协议·华为·自动化·ansible