当前位置: 首页 > news >正文

Ansible 剧本精粹 - 编写你的第一个 Playbook

Ansible 剧本精粹 - 编写你的第一个 Playbook


如果说 Ansible Ad-Hoc 命令像是你对厨房里的助手发出的零散口头指令(“切个洋葱”、“烧开水”),那么 Playbook 就是一份完整、详细、写在纸上的菜谱。它列明了所有需要的“食材”(变量),详细的“烹饪步骤”(任务),甚至还有一些“特殊处理程序”(处理器),可以指导任何人(或 Ansible)精确地烹制出一道(甚至一桌)美味佳肴(即完成复杂的系统配置)。

Playbook 是 Ansible 实现“配置即代码 (Configuration as Code)”的核心。

Playbook 基础结构

Playbook 使用 YAML (YAML Ain’t Markup Language) 格式编写。YAML 以其简洁、人类可读性强而著称。你需要了解一些基本的 YAML 语法:

  • 缩进: YAML 使用空格(通常是 2 个或 4 个,但必须在同一层级保持一致)来表示层级关系,非常重要!
  • 列表/数组: 以 - (短横线加空格) 开头。
  • 字典/映射: 以 key: value (冒号后有空格) 的形式表示。

下面是一个最小化的 Playbook 结构示例,用于确保 webservers 组中的服务器都安装并启动了 Nginx:

# my_nginx_playbook.yaml
--- # YAML 文档开始的标志 (可选,但推荐)
- name: Configure Nginx Web Servers # 这是第一个 "Play" (剧目) 的名称hosts: webservers                 # 此 Play 针对 Inventory 中的 'webservers' 组become: true                      # 表示需要提权 (例如 sudo) 来执行任务tasks:                            # 此 Play 包含的任务列表- name: Ensure nginx package is present and updated # 第一个任务的名称ansible.builtin.apt:          # 使用的模块 (推荐使用 FQCN - 完全限定集合名称)name: nginxstate: present              # 确保 nginx 包是 'present'(已安装) 状态update_cache: yes           # 执行前更新 apt 缓存- name: Ensure nginx service is started and enabled # 第二个任务的名称ansible.builtin.service:name: nginxstate: started              # 确保服务是 'started'

相关文章:

  • 告别手动绘图!基于AI的Smart Mermaid自动可视化图表工具搭建与使用指南
  • Vue拖拽组件:vue-draggable-plus
  • 如何设计一个支持线上线下的通用订单模块 —— 面向本地生活服务行业的架构思路
  • Portainer安装指南:多节点监控的docker管理面板-家庭云计算专家
  • docker 部署 gin
  • 模型训练相关的问题
  • CFTel:一种基于云雾自动化的鲁棒且可扩展的远程机器人架构
  • 实现RabbitMQ多节点集群搭建
  • 初学者如何微调大模型?从0到1详解
  • 基于Python与本地Ollama的智能语音唤醒助手实现
  • RV1126-OPENCV 图像叠加
  • Rust 学习笔记:发布一个 crate 到 crates.io
  • 性能优化 - 工具篇:基准测试 JMH
  • 性能优化 - 案例篇:数据一致性
  • NX753NX756美光科技闪存NX784NX785
  • QuickJS 如何计算黄金分割率 ?
  • Microsoft Fabric - 尝试一下Data Factory一些新的特性(2025年5月)
  • 【前端】成长路线
  • day16 leetcode-hot100-32(链表11)
  • AI视频“入驻”手机,多模态成智能终端的新战场
  • 国内做网站大公司/百度品牌推广
  • 备案价格网站/资源网站快速优化排名
  • 有域名后怎么建网站/西安优化seo托管
  • 亳州有做网站的吗/seo应该如何做
  • 织梦网站模板免费/百度推广下载
  • wordpress 商城插件/深圳seo外包