Ansible Playbook
type
status
date
slug
summary
tags
category
icon
password
一、核心概念速览
术语 | 说明 |
Playbook | 一个或多个 play 的集合,使用 YAML 格式编写,描述对被管理主机的操作序列。 |
Play | 针对一组 hosts 执行的任务集合,可包含 hosts、vars、tasks、handlers 等。 |
Task | 使用模块(如 yum、user)完成具体操作,设计为幂等性。 |
Facts | 由 setup 模块收集的主机环境信息(如 IP、主机名等),可在 playbook 中引用。 |
二、YAML 语法要点
✅ 必须遵守的规则:
- 冒号后必须有空格:
key: value
- 禁止使用 Tab,必须使用空格缩进(建议 2 空格)
- 缩进必须一致
- 列表项以 开头,子项缩进对齐
❌ 错误示例:
✅ 正确示例:
三、Playbook 结构与常用模块
3.1 基础模板
3.2 运行 Playbook
常见状态:
ok:任务已检查,无需更改
changed:任务已执行并改变状态
failed:任务失败,需排查
四、Facts 收集与使用
查看 Facts:
禁用自动收集:
建议:
使用通用 Facts(如
ansible_default_ipv4.address),避免硬编码接口名。五、变量定义与加密
5.1 Playbook 内定义
5.2 Inventory 中定义(INI)
5.3 外部变量文件
引入:
5.4 变量加密
六、Jinja2 模板与 template 模块
模板文件:my.cnf.j2
推送模板:
七、Handlers 与 notify
定义 Handler:
触发 Handler:
八、条件判断、注册变量与错误处理
8.1 使用 when 条件
8.2 使用 register 和 ignore_errors
九、循环 loop
简单列表循环:
字典循环:
十、常用命令速查
命令 | 说明 |
ansible <host> -m setup | 手动查看 facts |
ansible-playbook playbook.yml | 运行 playbook |
ansible-playbook playbook.yml --check --diff | 模拟运行(dry-run) |
ansible-vault encrypt file.yml | 加密变量文件 |
ansible-vault decrypt file.yml | 解密变量文件 |
常用模块:
yum/apt:安装软件包
user:管理用户
service:管理服务
copy:复制文件
template:渲染并推送模板
shell/command:执行命令(慎用)
debug:调试输出
setup:收集 facts
Loading...