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

相关推荐
AquaPluto3 天前
Ansible-Playbook详解
ansible·playbook·roles
chairon10 天前
Ansible:playbook的高级用法
linux·运维·服务器·ansible·apache
树下一少年10 天前
ansible+docker+docker-compose快速部署4节点高可用minio集群
docker·容器·ansible·docker-compose·minio集群
千航@abc11 天前
Ansible 实战:Roles,运维的 “魔法函数”
ansible·playbook·roles·角色·模版·剧本
一个高效工作的家伙11 天前
ansible可视化自动化平台-semaphore
ansible
树下一少年11 天前
通过ansible+docker-compose快速安装一主两从redis+三sentinel
redis·docker·ansible·sentinel·docker-compose
独隅12 天前
针对Ansible执行脚本时报错“可执行文件格式错误”,以下是详细的解决步骤和示例
运维·开发语言·ansible·lua·lua5.4
大小科圣13 天前
Ansible playbook
ansible
大小科圣13 天前
ansible条件判断及循环
ansible
狂奔solar15 天前
ansible-playbook 写arm版达梦7数据库的一键安装脚本
ansible