恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

自动化运维-从零开始编写ansible剧本(二)

  • 首页
  • 资讯中心
  • /
  • 自动化运维-从零开始编写ansible剧本(二)

相关资讯

XHS-Downloader 批量下载:命名格式 + 按作者归档,配一次就不用再管 2026/8/23 23:51:18
iForge V0.0.1正式发布!全链路一体化研发协作平台,适配中小团队私有化部署 2026/8/23 23:51:18
输入网址到看到页面只有0.3秒,这期间到底发生了什么? 2026/8/23 23:51:17

最新资讯

论文AI率过高怎么办?2026年12款免费降AI率工具实测指南
Marketch:从Sketch画板直接量取CSS
如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南
WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化
OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定
从省级培育直达国家级绿色工厂:开源能碳平台打通工信部 12 项标准 + 十五五新型电力系统全落地路径

今日推荐

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定
WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化
如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

自动化运维-从零开始编写ansible剧本(二)

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

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号