在Linux中编写首个Ansible Playbook需掌握YAML语法规范与Ansible基本结构,确保环境就绪(Ansible已安装、SSH免密配置完成、连通性测试通过),创建hello.yml文件并正确缩进,运行ansible-playbook hello.yml验证执行效果。

在 Linux 中编写第一个 YAML 格式的 Ansible Playbook,核心是掌握 YAML 语法规范和 Ansible 的基本结构。Playbook 本质是用 YAML 写的配置文件,描述“要在哪些机器上、以什么用户身份、执行哪些任务”。只要格式正确、缩进一致、冒号后留空格,就能被 Ansible 正确解析。
准备前提:确保环境就绪
编写前确认已安装 Ansible,并能通过 ansible --version 查看版本;目标主机已配置好 SSH 免密登录(或在 Playbook 中指定密码);控制节点能通过主机名或 IP 访问目标主机。
- 运行 ansible all -m ping 测试连通性,成功返回 "pong" 表示基础环境正常
- 创建专用目录存放 Playbook,例如 mkdir -p ~/playbooks && cd ~/playbooks
- 推荐使用支持 YAML 语法高亮的编辑器(如 VS Code、Vim + yaml 插件),避免缩进错误
写一个最简可用的 Playbook(hello.yml)
新建文件 hello.yml,内容如下(注意:YAML 对缩进敏感,必须用空格,不能用 Tab):
---
- name: 输出欢迎信息
hosts: localhost
gather_facts: false
tasks:
- name: 打印 Hello World
ansible.builtin.debug:
msg: "Hello, Ansible!"
- --- 表示 YAML 文档开始(可选但推荐)
- name: 是 Play 的描述,对人友好,非必需但强烈建议写
- hosts: 指定目标主机组,localhost 表示本机执行
- gather_facts: false 跳过收集系统信息(加快简单任务执行)
- tasks: 是任务列表,每个任务需有 name 和一个模块调用(此处用 debug 模块输出消息)
运行并验证结果
保存文件后,在终端执行:
ansible-playbook hello.yml
你会看到清晰的执行流程:PLAY 开始 → TASK [打印 Hello World] → 输出 msg 内容 → PLAY RECAP。若出现 "FAILED! => ..." ,常见原因是缩进错位、冒号后少了空格、用了中文标点,逐行对照检查即可。
下一步可尝试的小扩展
熟悉基础后,可快速升级这个 Playbook:
- 把 hosts: localhost 改成你 inventory 中定义的其他主机组名(如 webservers)
- 添加一个真实操作任务,比如创建文件:
- name: 创建测试文件
ansible.builtin.file:
path: /tmp/ansible_test.txt
state: touch - 用 vars: 块定义变量,让 msg 动态化,例如:
vars:
greeting: "Hi there"
tasks:
- debug:
msg: "{{ greeting }}"


















