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 工作目录中的文件同步到受管主机:

相关推荐
Lynnxiaowen1 小时前
今天我们开始学习ansible之playbook的简单运用
linux·运维·学习·云计算·ansible
初学者_xuan17 小时前
零基础新手小白快速了解掌握服务集群与自动化运维(十八)Ansible自动化模块--安装与入门
运维·自动化·ansible
Empty_77718 小时前
Ansible进行Nginx编译安装的详细步骤
linux·nginx·ansible
Lynnxiaowen1 天前
今天我们开始学习Linux自动化运维Ansible基础
linux·运维·学习·自动化·云计算·ansible
落日漫游3 天前
Ansible主机清单:自动化管理的核心基石
运维·ansible
YJlio5 天前
自动化实践(7.25):把 PsTools 接入 PowerShell / 批处理 / Ansible
microsoft·自动化·ansible
开源Linux12 天前
Ansible高频面试题详解:30个问题从入门到精通
ansible
我爱钱因此会努力14 天前
ansible实战-不同的用户登录不同的主机
linux·运维·服务器·ansible
我爱钱因此会努力14 天前
ansible实战- 关机
linux·运维·服务器·centos·自动化·ansible
运维李哥不背锅15 天前
Ansible 模块详解:高效管理你的 IT 基础设施
服务器·网络·ansible