自动化运维-从零开始编写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中使用变量、条件、循环等使剧本具有更多特性能够更加灵活的管理服务器。如果您对本节介绍内容有疑问欢迎留言交流

相关新闻

最新新闻

LeKiwi 上手指南:低成本移动操作器的完整上手路径

LeKiwi 上手指南:低成本移动操作器的完整上手路径

LeKiwi 上手指南:低成本移动操作器的完整上手路径 【免费下载链接】LeKiwi LeKiwi - Low-Cost Mobile Manipulator 项目地址: https://gitcode.com/gh_mirrors/le/LeKiwi LeKiwi 是一个低成本移动操作器:三个全向轮底盘加一条 SO101 机械臂&#…

2026/8/24 1:22:16
Meta WildArtifactBench:评测多模态大模型在复杂真实图像上的理解能力

Meta WildArtifactBench:评测多模态大模型在复杂真实图像上的理解能力

Meta 最近发布了一个名为 WildArtifactBench 的评测框架,这个工具不是用来生成图片或语音的,而是专门用来“考”多模态大模型的。简单说,它是一套包含 10,000 张“刁钻”图片的测试集,专门检验模型在真实、复杂、充满“人工痕迹”…

2026/8/24 1:22:16
Fallout 1 CE 性能调优完整指南:5 步在 x86_64 现代 PC 上锁定稳定 60 帧

Fallout 1 CE 性能调优完整指南:5 步在 x86_64 现代 PC 上锁定稳定 60 帧

Fallout 1 CE 性能调优完整指南:5 步在 x86_64 现代 PC 上锁定稳定 60 帧 【免费下载链接】fallout1-ce Fallout for modern operating systems 项目地址: https://gitcode.com/GitHub_Trending/fa/fallout1-ce Fallout 1 CE 把经典等距 RPG 搬上了现代操作系…

2026/8/24 1:22:16
从提示词到AI Agent:构建稳定AI应用的四层技术架构解析

从提示词到AI Agent:构建稳定AI应用的四层技术架构解析

在实际 AI 应用开发中,很多开发者会遇到一个困惑:我写好了提示词,但 AI 的输出总是不稳定,或者无法完成多步骤的复杂任务。于是,大家开始接触“循环工程”、“工作流”和“AI Agent”这些概念。它们看起来都和“提示词…

2026/8/24 1:22:16
6步实战:通过微调根治RAG幻觉,打造精准企业AI助手

6步实战:通过微调根治RAG幻觉,打造精准企业AI助手

你花了三天时间,终于把公司内部的技术文档、产品手册、客户案例都灌进了RAG系统。老板满怀期待地问:“这个AI客服,能准确回答我们产品的技术参数了吧?”你信心满满地输入:“我们旗舰产品A100的最大并发支持是多少&…

2026/8/24 1:22:16
让手机也跑微信平板模式:WeChatPad双设备登录安装指南

让手机也跑微信平板模式:WeChatPad双设备登录安装指南

让手机也跑微信平板模式:WeChatPad双设备登录安装指南 【免费下载链接】WeChatPad 强制使用微信平板模式 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPad 开会切到平板,手机弹出"此账号已在另一台设备登录",只能二…

2026/8/24 1:17:16