跳到主要内容

Ansible Playbook YAML 格式化工具

清理杂乱的 Ansible playbook、role 或任务列表 YAML,将缩进规范为一致的 2 或 4 空格步长,并整理列表项的破折号。完全在您的浏览器中运行 — 不会上传任何内容。

输入

Drop a file or browse
One file · text

输出

格式化后的 YAML
 
这对您有帮助吗?

使用指南

杂乱的 Ansible YAML 是 DevOps 工作流中最常见的痛点之一 — playbook 被复制粘贴到各个 role 之间、由设置不同的团队成员编辑、或者从 Slack 和工单系统里粘贴进来,最终导致同一个文件里混用了 2 空格、3 空格和 4 空格缩进。由于 YAML 的结构就是它的空白,不一致的缩进不只是难看 — 它还会悄悄改变一个任务的归属。

这个工具会将 Ansible playbook、role 和任务列表的 YAML 重新缩进为一致的缩进步长(2 或 4 空格),让视觉结构真正匹配文档的含义。它还会整理列表项的破折号,将 - name: foo-name: foo 归一为惯用的 - name: foo

如何使用

  1. playbook.yml、某个 role 的 tasks/main.yml 或任意任务列表粘贴到输入框中 — 或直接上传一个 .yml/.yaml 文件。
  2. 选择 2 个空格4 个空格 作为缩进大小(2 是 Ansible 社区惯例)。
  3. 格式化后的 YAML 会立即出现在输出面板中。您可以复制它,或将其下载为 playbook.yml

该工具会随输入实时更新,因此您可以粘贴粗糙的、复制过来的 YAML,并看着它变成干净、一致的结构。

它能做什么 — 不能做什么

这个格式化工具逐行工作:它会跟踪每行相对于周围行的原始缩进深度,然后以成比例的、统一的缩进步长重新输出每一行。这足以修复绝大多数真实世界中杂乱的 YAML — 不一致的空格、与空格混用的制表符,以及参差不齐的列表标记。

它刻意做的事是将 YAML 解析为结构化文档。它不会重新排列 Ansible 任务键(name → module → whenregister 等)、不会验证 playbook 结构(缺少 hosts:、没有 module 的任务),也不会标记 ansible-lint 风格的问题,比如应该使用完全限定集合名称的简短模块名称。这些都要求真正的 YAML 解析器和对 Ansible 感知的 schema 的了解,而这个轻量、无依赖的格式化工具不会尝试这些。如果您的 YAML 使用了流式集合({ key: value }[a, b, c])或多行块标量(|>),这些值会原样保留而不会被重新构造 — 只有行级缩进和列表标记会被规范化。

对于大多数日常的"我的 playbook 一团糟,请帮我清理空白"的任务来说,这正是所需要的。要进行深层 lint,请自己运行 ansible-lint

我的 YAML 会被上传到任何地方吗?

不会。格式化完全在您的浏览器中发生 — 您粘贴或上传的 YAML 永远不会离开您的设备,也不会触及我们的服务器。

这个工具会验证我的 playbook 是否正确吗?

不会 — 它只规范化缩进和列表标记的空格。它不会捕获缺少的必需键、无效的模块名称或逻辑错误。请使用 ansible-playbook --syntax-checkansible-lint 进行真正的验证。

它也适用于非 Ansible 的 YAML 吗?

可以。虽然它是围绕 Ansible playbook 设计的,但底层的操作是一个通用 YAML 重新缩进工具 — 它同样适用于 Kubernetes 清单、GitHub Actions 工作流,或任何只需要清理缩进的 YAML 文件。

如果我粘贴了无效文本或非 YAML 文本会怎样?

这个格式化工具永远不会报错。因为它基于行和缩进工作,而不是解析文档,所以它会尽可能地将您给出的任何文本重新缩进,而不是显示解析错误消息。

yamlansibleplaybookformatterdevopsindentation

Use it from code

From 3 credits per call

REST 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_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。