自动化运维-从零开始编写ansible剧本(二)
前言前述文章自动化运维-ansible常用模块详解已经详细介绍过ansible 常用模块的Ad-hoc命令实现方式适合执行 临时性、简单的任务而使用较多的方式是通过ansible playbook实现多任务执行无需重复多次输入命令。本篇文章将通过剧本的方式详细介绍ansible常用模块shell、script、file、fetch、copy、template、yum、yum_repository、service、cron、user、group、unarchive的实现。一、shell模块编写剧本用ansible shell模块安装并启动mariadb----hosts:webservertasks:-name:install mariadbshell:yum install-y mariadb-name:install mariadb-servershell:yum install-y mariadb-server-name:start mariadb serviceshell:systemctl start mariadb从上述playbook可以看出剧本中包含3个任务分别是install mariadb、install mariadb-server、start mariadb serviceshell模块执行的命令和直接服务器上执行的shell命令一样。在以上执行结果中有一个Gathering Facts任务这个任务会收集目标节点的信息收集的信息具体信息可以通过命令ansible webserver -m setup查看。可以通过ansible变量获取这些信息后续将会介绍如果剧本中没有指明是否收集信息这默认会自动收集节点信息。如果剧本中用不到与节点相关的信息这可以通过指明gather_facts: no关掉信息收集这样可以提高剧本的执行速度。二、script模块编写ansible playbook使用script模块获取被管理节点的磁盘使用情况。----hosts:webservergather_facts:notasks:-name:获取磁盘使用信息script:/data/project1/disk_check.shregister:diskinfo-name:显示磁盘使用信息debug:msg:{{diskinfo}}这个剧本通过执行控制节点上的脚本/data/project1/disk_check.sh获取被管理节点的磁盘使用信息由于脚本执行返回的结果在剧本执行结果中不能显示需要将返回结果通过register注册为一个变量然后通过debug模块读取磁盘的信息。三、file模块编写ansible playbook使用file模块创建文件、目录、链接文件。----hosts:webservergather_facts:notasks:-name:create a filefile:path:/data1/file.txtstate:touchmode:644-name:create a directoryfile:path:/data2/state:directorymode:755-name:create a linkfile:src:/data1/file.txtdest:/data1/linkfile.txtstate:link删除链接文件、文件、目录----hosts:webservergather_facts:notasks:-name:delete directoryfile:path:/data2state:absent-name:delete filefile:path:/data1/file.txtstate:absent-name:delete link filefile:path:/data1/linkfile.txtstate:absent四、copy模块编写ansible playbook使用copy模块将控制节点的文件拷贝到被管理节点。----hosts:webservergather_facts:notasks:-name:copy file to remote targetcopy:src:/etc/hostsdest:/tmp/backup:yesmode:0644五、template模块编写ansible playbook使用template模块将控制节点的模板文件拷贝到被管理节点。----hosts:webservertasks:-template:src:template.j2dest:/tmp/以上模板文件中的变量可以通过ansible webserver -m setup获取。六、yum模块编写ansible playbook使用yum模块安装tftp和php。----hosts:webservergather_facts:notasks:-name:yum install tftp and phpyum:name:tftp,phpstate:present七、yum_repository模块编写ansible playbook使用yum_repository模块创建一个yum仓库。----hosts:webservertasks:-name:create a yum repoyum_repository:name:centos_repodescription:create a centos yum repobaseurl:http://mirrors.aliyun.com/centos/$releasever/os/$basearch/enabled:yesgpgcheck:no八、service模块编写ansible playbook使用service模块对nginx服务进行管理。----hosts:webservertasks:-name:start nginx#启动nginxservice:name:nginxstate:started-name:restart nginx#重启nginxservice:name:nginxstate:restarted-name:stop nginx#停止nginxservice:name:nginxstate:stopped-name:reload nginx#重载nginxservice:name:nginxstate:reloaded-name:enable nginx#配置nginx服务重启自启动service:name:nginxenabled:yes九、cron模块编写ansible playbook使用cron模块添加计划任务。----hosts:webservertasks:-name:add cron to hostcron:name:clean filejob:find /tmp -type f -mtime 7 -deleteminute:0hour:2任务计划已经被添加到被管理节点。十、user模块编写ansible playbook使用user模块在被管理节点上添加用户。----hosts:webservertasks:-name:add useruser:name:user10#添加用户user10shell:/bin/bashcreate_home:yes#创建家目录十一、unarchive模块编写ansible playbook使用unarchive模块将控制节点上的压缩包拷贝到被管理节点并解压。----hosts:webservertasks:-name:unarchive packageunarchive:src:nginx-1.30.4.tar.gzdest:/tmp/以上介绍了11个模块的playbook相信对playbook已经有一个较深入的理解后续将继续介绍在playbook中使用变量、条件、循环等使剧本具有更多特性能够更加灵活的管理服务器。如果您对本节介绍内容有疑问欢迎留言交流

相关新闻

GEO常见误区:以逸阳女裤为例看做了内容不等于被AI引用

GEO常见误区:以逸阳女裤为例看做了内容不等于被AI引用

核心摘要 服装品牌做GEO,最容易踩的坑是“以为发了文章就完事”。逸阳女裤作为可溯源案例,恰好能说明哪些做法有效、哪些只是自我安慰。本文列四个常见误区,帮服装老板少走弯路。河南新流量文化传播有限公司的GEO系统,是一套覆盖…

2026/8/23 23:54:52 阅读更多 →
模拟案例:兰州建材实施异常怎么排查?模拟环境与验证步骤

模拟案例:兰州建材实施异常怎么排查?模拟环境与验证步骤

围绕建材,先明确读者需要解决的具体问题,再依次核对适用条件、事实依据、验证方法和不适用边界,不能用宣传结论代替可复查证据。## 案例性质本文是一个基于典型建材业务场景的模拟案例,旨在说明健康墙板从需求确认到落地验收的全过…

2026/8/23 23:54:52 阅读更多 →
嵌入式:深刻理解UART与USART串口通信的波特率与帧格式

嵌入式:深刻理解UART与USART串口通信的波特率与帧格式

前言 文章合集: 嵌入式系列https://blog.csdn.net/2401_88433210/category_13196870.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId13196870&sharereferPC&sharesource2401_88433210&sharefromfrom_link 文章以STM32F103ZET6芯片为例…

2026/8/23 23:54:52 阅读更多 →

最新新闻

论文AI率过高怎么办?2026年12款免费降AI率工具实测指南

论文AI率过高怎么办?2026年12款免费降AI率工具实测指南

现在毕业论文答辩前,“AI率超标”已经彻底取代“查重率过高”,成了同学们的头号难题!不少同学只是用AI润色了摘要和结论,AI率直接飙升到离谱,纯手动修改根本不管用——这说明AIGC检测系统抓的不是个别词语,…

2026/8/23 23:59:54 阅读更多 →
Marketch:从Sketch画板直接量取CSS

Marketch:从Sketch画板直接量取CSS

Marketch:从Sketch画板直接量取CSS 【免费下载链接】marketch Marketch is a Sketch 3 plug-in for automatically generating html page that can measure and get CSS styles on it. 项目地址: https://gitcode.com/gh_mirrors/ma/marketch 设计稿交付还在…

2026/8/23 23:59:54 阅读更多 →
如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南 【免费下载链接】ThinkpadX390-Opencore-EFI macOS Catalina & Big Sur & Monterey on ThinkPad X390 (Hackintosh) 项目地址: https://gitcode.com/gh_mirrors/th/ThinkpadX390-Opencore-EFI …

2026/8/23 23:59:54 阅读更多 →
WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化 【免费下载链接】WechatHook Enjoy hooking wechat by Xposed....Accessibility...and so on... 项目地址: https://gitcode.com/gh_mirrors/we/WechatHook WechatHook 是一个基于 Xpos…

2026/8/23 23:59:54 阅读更多 →
OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan OpenModScan 是一款开源免…

2026/8/23 23:59:54 阅读更多 →
Gin-JWT认证与授权方案从Token到RBAC权限控制

Gin-JWT认证与授权方案从Token到RBAC权限控制

Gin-JWT认证与授权方案从Token到RBAC权限控制 文章导语 JWT(JSON Web Token)是现代Web服务的身份认证标准。在Gin框架中集成JWT看似简单,但涉及Token刷新、黑名单、多设备登录、RBAC权限控制等实际需求时,就需要更完善的设计。本文…

2026/8/23 23:57:54 阅读更多 →

日新闻

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →