Ansible Playbook YAML 格式化工具
清理杂乱的 Ansible playbook、role 或任务列表 YAML,将缩进规范为一致的 2 或 4 空格步长,并整理列表项的破折号。完全在您的浏览器中运行 — 不会上传任何内容。
输入
输出
使用指南
杂乱的 Ansible YAML 是 DevOps 工作流中最常见的痛点之一 — playbook 被复制粘贴到各个 role 之间、由设置不同的团队成员编辑、或者从 Slack 和工单系统里粘贴进来,最终导致同一个文件里混用了 2 空格、3 空格和 4 空格缩进。由于 YAML 的结构就是它的空白,不一致的缩进不只是难看 — 它还会悄悄改变一个任务的归属。
这个工具会将 Ansible playbook、role 和任务列表的 YAML 重新缩进为一致的缩进步长(2 或 4 空格),让视觉结构真正匹配文档的含义。它还会整理列表项的破折号,将 - name: foo 或 -name: foo 归一为惯用的 - name: foo。
如何使用
- 将
playbook.yml、某个 role 的tasks/main.yml或任意任务列表粘贴到输入框中 — 或直接上传一个.yml/.yaml文件。 - 选择 2 个空格 或 4 个空格 作为缩进大小(2 是 Ansible 社区惯例)。
- 格式化后的 YAML 会立即出现在输出面板中。您可以复制它,或将其下载为
playbook.yml。
该工具会随输入实时更新,因此您可以粘贴粗糙的、复制过来的 YAML,并看着它变成干净、一致的结构。
它能做什么 — 不能做什么
这个格式化工具逐行工作:它会跟踪每行相对于周围行的原始缩进深度,然后以成比例的、统一的缩进步长重新输出每一行。这足以修复绝大多数真实世界中杂乱的 YAML — 不一致的空格、与空格混用的制表符,以及参差不齐的列表标记。
它刻意不做的事是将 YAML 解析为结构化文档。它不会重新排列 Ansible 任务键(name → module → when → register 等)、不会验证 playbook 结构(缺少 hosts:、没有 module 的任务),也不会标记 ansible-lint 风格的问题,比如应该使用完全限定集合名称的简短模块名称。这些都要求真正的 YAML 解析器和对 Ansible 感知的 schema 的了解,而这个轻量、无依赖的格式化工具不会尝试这些。如果您的 YAML 使用了流式集合({ key: value }、[a, b, c])或多行块标量(|、>),这些值会原样保留而不会被重新构造 — 只有行级缩进和列表标记会被规范化。
对于大多数日常的"我的 playbook 一团糟,请帮我清理空白"的任务来说,这正是所需要的。要进行深层 lint,请自己运行 ansible-lint。
我的 YAML 会被上传到任何地方吗?
不会。格式化完全在您的浏览器中发生 — 您粘贴或上传的 YAML 永远不会离开您的设备,也不会触及我们的服务器。
这个工具会验证我的 playbook 是否正确吗?
不会 — 它只规范化缩进和列表标记的空格。它不会捕获缺少的必需键、无效的模块名称或逻辑错误。请使用 ansible-playbook --syntax-check 或 ansible-lint 进行真正的验证。
它也适用于非 Ansible 的 YAML 吗?
可以。虽然它是围绕 Ansible playbook 设计的,但底层的操作是一个通用 YAML 重新缩进工具 — 它同样适用于 Kubernetes 清单、GitHub Actions 工作流,或任何只需要清理缩进的 YAML 文件。
如果我粘贴了无效文本或非 YAML 文本会怎样?
这个格式化工具永远不会报错。因为它基于行和缩进工作,而不是解析文档,所以它会尽可能地将您给出的任何文本重新缩进,而不是显示解析错误消息。
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/ansible-playbook-yaml-formatter \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputYaml": "- hosts: web\n become: yes\n vars:\n nginx_p…",
"indentSize": "2"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `ansible-playbook-yaml-formatter` tool (Ansible Playbook YAML Formatter) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.