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

相关推荐
leo__5202 天前
自动化运维:使用Ansible简化日常任务
运维·自动化·ansible
风清再凯7 天前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible
IT乌鸦坐飞机7 天前
ansible部署数据库服务随机启动并创建用户和设置用户有完全权限
数据库·ansible·centos7
遇见火星20 天前
如何使用Ansible一键部署MinIO集群?
ansible
粥周粥20 天前
ANSIBLE
ansible
码农101号20 天前
Linux中ansible模块补充和playbook讲解
linux·运维·ansible
码农101号20 天前
Linux的Ansible软件基础使用讲解和ssh远程连接
ansible
烟雨书信22 天前
ANSIBLE运维自动化管理端部署
运维·自动化·ansible
碎碎-li22 天前
ANSIBLE(运维自动化)
运维·自动化·ansible
@donshu@25 天前
Linux运维-ansible-python开发-获取inventroy信息
linux·运维·ansible