YAML валидатор
и форматтер
Что такое YAML
YAML (YAML Ain't Markup Language) — это человекочитаемый формат сериализации данных, созданный в 2001 году. Формат стал стандартом де-факто для конфигурационных файлов в DevOps, облачной инфраструктуре и CI/CD-пайплайнах. В отличие от XML и JSON, YAML использует отступы для обозначения структуры, что делает его компактнее и удобнее для чтения и редактирования вручную.
YAML: простота и читаемость
YAML использует отступы пробелами для обозначения вложенности, двоеточия для пар ключ-значение и дефисы для списков. Никаких фигурных скобок, кавычек и запятых — только чистая, читаемая структура. Это делает YAML идеальным для конфигураций, которые часто редактируют вручную.
YAML vs JSON
JSON — подмножество YAML. Любой валидный JSON является валидным YAML, но не наоборот. JSON компактнее для машин и используется в API, а YAML — для конфигураций. JSON требует кавычки для ключей и строк, YAML — нет. JSON не поддерживает комментарии, YAML поддерживает через символ #.
YAML vs TOML
TOML (используется в Cargo.toml, pyproject.toml) — более строгий формат с явными типами данных. YAML гибче и поддерживает сложные структуры: якоря, псевдонимы, многодокументные файлы. TOML лучше для плоских конфигов, YAML — для глубоко вложенных структур вроде манифестов Kubernetes.
История YAML
YAML был создан в 2001 году Кларком Эвансом, Инги д'ет Нетом и Ореном Бен-Кики. Изначально аббревиатура расшифровывалась как «Yet Another Markup Language», но позже была изменена на рекурсивный акроним «YAML Ain't Markup Language», чтобы подчеркнуть: YAML — это формат данных, а не разметки.
Спецификация YAML 1.0 вышла в январе 2004 года. Текущая версия — YAML 1.2 (2009) — совместима с JSON и является надмножеством этого формата. YAML широко используется в экосистеме DevOps благодаря проектам Ruby on Rails, Ansible, Docker и Kubernetes.
Где используется YAML
YAML стал стандартом конфигурации в облачных технологиях, CI/CD и инфраструктуре как коде (IaC). Вот основные области применения.
Kubernetes
Манифесты Deployments, Services, ConfigMaps, Ingress, Helm Charts — вся конфигурация кластера описывается в YAML. Ошибка в отступе может привести к падению деплоя.
Ansible
Плейбуки, роли, инвентори и переменные — Ansible полностью построен на YAML. Валидация плейбука перед запуском экономит часы отладки на продакшене.
Docker Compose
Файлы docker-compose.yml описывают многоконтейнерные приложения: сервисы, сети, volumes, зависимости. Невалидный YAML — контейнеры не поднимутся.
GitHub Actions
Workflows в .github/workflows/*.yml определяют CI/CD-пайплайны: сборку, тесты, деплой. Строгий синтаксис — ошибка в YAML блокирует весь пайплайн.
GitLab CI/CD
Файл .gitlab-ci.yml описывает стадии, джобы, артефакты и окружения. GitLab парсит YAML строго — невалидный файл отключает весь CI/CD проекта.
Spring Boot
Конфигурация application.yml в Java/Kotlin-приложениях. Профили (dev, prod, test) в одном файле, иерархическая структура настроек сервера, БД, кеша.
Синтаксис YAML/ справочник
Основные конструкции YAML, которые используются в повседневной работе с конфигурационными файлами Kubernetes, Ansible, Docker Compose и CI/CD.
Скаляры (простые значения)
Строки, числа, булевы значения и null. Строки обычно не требуют кавычек, но кавычки нужны, если значение содержит спецсимволы (: # [ ] , & * ? | - < > = ! % @ \).
name: my-app # строка
port: 8080 # целое число
ratio: 3.14 # дробное число
enabled: true # булево (true/false/yes/no)
empty: null # пустое значение (null/~)
quoted: "value: here" # кавычки нужны из-за двоеточияСписки (последовательности)
Элементы списка начинаются с дефиса и пробела (- ). Списки могут быть вложенными и содержать объекты. Inline-форма: [a, b, c].
# Блочный стиль
fruits:
- apple
- banana
- cherry
# Inline-стиль (flow)
colors: [red, green, blue]
# Список объектов
users:
- name: Ivan
role: admin
- name: Maria
role: editorСловари (маппинги)
Пары ключ-значение через двоеточие и пробел. Вложенные словари создаются отступами. Inline-форма: {key: val}.
# Вложенный словарь
database:
host: localhost
port: 5432
credentials:
username: admin
password: secret
# Inline-стиль
limits: {cpu: "500m", memory: "256Mi"}Многострочные строки
Литеральный блок (|) сохраняет переносы строк. Свёрнутый блок (>) заменяет переносы на пробелы. Модификаторы: + (сохранить trailing newline), - (убрать trailing newline).
# Literal block (|) — переносы сохраняются
description: |
Первая строка
Вторая строка
Третья строка
# Folded block (>) — переносы → пробелы
summary: >
Это длинное описание,
которое склеится
в одну строку.Якоря и псевдонимы (& / *)
Якорь (&name) сохраняет блок, псевдоним (*name) ссылается на него. <<: *name — merge key для объединения словарей. Помогает избежать дублирования конфигураций.
# Определяем якорь
defaults: &defaults
adapter: postgres
host: localhost
pool: 5
# Используем псевдоним
development:
<<: *defaults
database: dev_db
production:
<<: *defaults
database: prod_db
pool: 25Частые ошибки в YAML
YAML чувствителен к отступам и форматированию. Вот наиболее распространённые ошибки, которые ловит наш валидатор.
Табуляция вместо пробелов
YAML запрещает символы табуляции. Настройте редактор на замену Tab пробелами (2 или 4).
server:\n\thost: localhostserver:\n host: localhostОтсутствие пробела после двоеточия
После двоеточия обязателен пробел (или конец строки для вложенных структур).
name:valuename: valueНепоследовательные отступы
Элементы одного уровня должны иметь одинаковый отступ. Смешивание 2 и 3 пробелов — ошибка.
server:\n host: x\n port: 80server:\n host: x\n port: 80Спецсимволы в строках без кавычек
Двоеточие с пробелом внутри значения воспринимается как новая пара ключ-значение. Оберните в кавычки.
message: Error: not foundmessage: "Error: not found"Дублирование ключей
Дублирующие ключи на одном уровне — поведение не определено. Второе значение может перезаписать первое.
name: first\nname: secondfirst_name: first\nlast_name: secondЧисла и булевы как строки
Кавычки превращают числа и булевы в строки. Kubernetes и Ansible могут обработать их неправильно.
port: "8080"\nenabled: "true"port: 8080\nenabled: trueСоветы по работе с YAML
Практические рекомендации от DevOps-инженеров для безопасной и эффективной работы с YAML-конфигурациями.
1Используйте линтер в CI/CD
Добавьте yamllint в пайплайн CI/CD. Он проверяет не только синтаксис, но и стилистику: длину строк, отступы, пустые строки. Конфигурация .yamllint.yml позволяет настроить правила под проект. Это предотвращает мёрж некорректных конфигов в main-ветку.
2Настройте EditorConfig
Создайте .editorconfig с правилами для *.yml и *.yaml: indent_style = space, indent_size = 2, insert_final_newline = true. Это гарантирует единообразие отступов у всех участников команды, независимо от используемого редактора.
3Избегайте yes/no и on/off
В YAML 1.1 значения yes, no, on, off, y, n автоматически преобразуются в булевы true/false. Это частая причина багов: country: NO (Норвегия) становится false. Используйте true/false для булевых и кавычки для строк, похожих на булевы.
4Разделяйте окружения файлами
Вместо одного файла с якорями и merge keys для dev/stage/prod используйте отдельные файлы: values-dev.yaml, values-prod.yaml. Helm и Kustomize поддерживают наложение конфигураций. Это упрощает ревью и снижает риск случайного деплоя продакшн-настроек в dev.
5Всегда оборачивайте версии в кавычки
Значение version: 1.0 парсится как число 1 (не «1.0»). Аналогично version: 3.10 становится 3.1. Всегда пишите version: "1.0" или version: "3.10" для сохранения точного значения. Это особенно критично для Docker-тегов и Helm Charts.
6Валидируйте перед деплоем
Помимо синтаксической проверки, используйте схемную валидацию: kubectl --dry-run=client для Kubernetes, ansible-lint для Ansible, docker compose config для Docker Compose. Это проверяет не только формат YAML, но и корректность конкретных полей.
Как пользоваться валидатором
Пошаговая инструкция для быстрой проверки и форматирования YAML-файлов.
Вставьте YAML
Скопируйте содержимое YAML-файла в текстовое поле слева. Или нажмите кнопку «Пример» для загрузки тестовой конфигурации Kubernetes.
Выберите режим
Валидация проверит синтаксис и покажет ошибки. Форматирование выровняет отступы. Конвертация переведёт YAML в JSON или обратно.
Настройте отступ
Выберите 2 пробела (стандарт Kubernetes, Ansible) или 4 пробела (стандарт Python, Spring Boot). Настройка влияет на форматирование и конвертацию.
Скопируйте результат
Нажмите «Копировать» для копирования результата в буфер обмена. Отформатированный YAML или сконвертированный JSON готов к использованию.
Часто задаваемые вопросы

Лиана Арифметова
Миссия: Демократизировать сложные расчеты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».
Отказ от ответственности
Только для информационных целей. Все расчёты, результаты и данные, предоставляемые данным инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.
Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.
Медицинские, финансовые и профессиональные решения должны приниматься исключительно на основании консультации с квалифицированными специалистами — врачом, финансовым советником, инженером или другим профессионалом в соответствующей области. Не используйте результаты данного инструмента как единственное основание для принятия важных решений.
Ограничение ответственности. Авторы и разработчики сервиса не несут никакой ответственности за прямой или косвенный ущерб, возникший в результате использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию и применение полученных результатов.
Похожие инструменты
Калькулятор ремонта квартиры: материалы, работы, бюджет
Калькулятор ремонта. Расчёт площади стен и пола, количества материалов, стоимости работ, электрики, сантехники и общего бюджета.
Калькулятор водного следа
Расчёт потребления воды: быт, еда, одежда. Сравнение с мировым и российским средним.
Инвестиционный калькулятор (валюты, APR/APY, облигации)
Комплексный финансовый инструмент: конвертер валют, перевод APR в APY, доходность облигаций (YTM, дюрация).
Калькулятор маятника
Период и частота простого и физического маятника. Формула T=2π√(L/g), определение длины нити по периоду.
Калькулятор пароизоляции
Расчёт пароизоляционной плёнки и мембраны: площадь, нахлёст, количество рулонов и скотча.
Калькулятор облачного хранилища
Расчёт объёма облачного хранилища: фото, видео, документы. Сравнение тарифов Яндекс.Диск, Google, iCloud.
URL Encode/Decode
Кодирование и декодирование URL-параметров онлайн. Поддержка кириллицы, percent-encoding, разбор URL на компоненты.
Калькулятор константы равновесия (Kc, Kp)
Kc по концентрациям, Kp по давлениям, энергия Гиббса ΔG°, уравнение Вант-Гоффа. Принцип Ле Шателье.
Калькулятор количества саморезов
Расчёт количества саморезов для гипсокартона, профнастила, OSB, доски. Шаг крепления, размер, количество упаковок.
Калькулятор DNS
Расчёты DNS: записи, TTL, производительность, DNSSEC, миграция, стоимость
Калькулятор парковки: стоимость, штрафы, количество мест
Расчёт стоимости парковки в Москве и регионах, количества мест по СП, площади парковки, доходности и штрафов за неоплату.
Калькулятор газового счётчика
Расчёт платы за газ по показаниям счётчика. Тарифы по регионам России 2024-2025.
Калькулятор тригонометрии
Вычисление sin, cos, tan, cot, sec, csc. Решение треугольников, радианы/градусы, тригонометрические уравнения.
Калькулятор кредитной нагрузки (ПДН)
Расчёт показателя долговой нагрузки (ПДН). Оценка шансов на одобрение кредита по требованиям ЦБ РФ.
Бухгалтерский калькулятор (НДС, амортизация, налоги)
Универсальный помощник бухгалтера: расчет НДС (20%, 10%), амортизация (линейная/ускоренная), оборотные средства и налоговая база.