Файл yaml что это
Нам, веб-разработчикам, нужно все больше и больше узнавать о различных областях, чтобы стать лучшими профессионалами и меньше зависеть от других специалистов в простых вещах.
Если вы начинаете карьеру в качестве фронтенд разработчика, вы можете встретить в разных репозитариях множество файлов .yml, таких как .travis.yml (для Travis Build), .gitlab-ci.yml (для git lab CI) и т. д. И давайте будем честными, что порой могут возникать вопрос, что это такое?
Почему люди используют этот тип файлов? В чем от них выгода? Как это работает?
Что такое YAML?
Часто используется для записи файлов конфигурации, что многое объясняет, верно?
В какой то момент времени возникла усталость от множество форматов разных конфигов, которые никто не мог понять, пока кто-то просто не сказал:
Что если бы мы могли как-то написать нашу конфигурацию как «рецепт торта»? Я имею в виду минимальный голый текст, максимально простым способом?
Бум, и в мае 2001 года был создан Yaml.
YAML против JSON
Если бы я мог дать вам представление о том, что это значит, я бы сказал:
В мире фронтенда Yaml и JSON можно сравнить как TypeScript и JavaScript
Чтобы лучше понять, давайте посмотрим на этот пример конфига:
Это пример tsconfig.json, он очень легко читаться, мы можем легко определить, что к чему, но … у него есть некоторые ограничения, например:
- Нельзя создавать переменные;
- Невозможно использовать внешние переменные (например, переменные окружения);
- Нельзя переопределить значения;
В мире JS, если мы можем создать .json файл конфигурации, мы почти всегда можем также создать .js (например, .eslintrc или .eslint.js), который позволяет нам смягчить недостатки, упомянутые ранее.
Но, если вы используете другой язык программирования, файлы JS не вариант. И именно в этот момент Yaml начинает сиять.
Если бы нам пришлось переписать tsconfig.json в синтаксисе YAML и получить такой же результат, это было бы так:
Обратите внимание, что это только пример. Вы не можете написать свой tsconfig в YAML!😜
Я надеюсь, что вы поняли идею из этих примеров.
Концепции, Типы, и синтаксис
Теперь давайте немного углубимся в концепцию языка.
Отступы
В Yaml отступы очень важны. Он использует отступы для разделения информации. Помнить нужно использовать только пробелы, табы не допускаются.
Если вы похожи на меня и используете табы для всего, установите какой-нибудь плагин в вашей IDE, чтобы заменить все пропуски на пробелы (например, editorconfig). Это может делаться автоматически, когда вы нажимаете на пропуск, он автоматически заменяется пробел! 😉
Root (Начало)
Поскольку здесь важен отступ, отсутствия отступа перед первым объявлением YAML поймет, что это корень (уровень 0) вашего файла:
Как и в JSON с первым символом < фигурной скобки:
Ключ/Значение
Как и в JSON/JS, YAML также использует синтаксис ключ/значение, и вы можете использовать его различными способами:
Комментарии
Это круто, чтобы документировать какое-то решение или сделать заметку в конфиге. К сожалению, мы не можем так эе сделать это в JSON.
Списки
Есть 2 способа написания списков:
Синтаксис JSON: массив строк
Синтаксис дефиса
Наиболее распространенный (и, вероятно, рекомендуется)
Строки
Есть несколько способов объявить строку в Yaml:
В то время как в JSON у нас есть только один способ использовать двойные кавычки:
В качестве предложения предпочитайте использовать кавычки, если вы хотите использовать какой-либо специальный символ, такой как _, @ и т. Д.
Номера
Как и в любом языке программирования, у нас есть 2 типа чисел: целое число и число с плавающей запятой:
Якоря узла (переменные)
Давайте представим, что вам нужно создать конфигурацию для вашего CI. Он будет иметь версию для production, и для staging (промежуточную) сред. Обе версии будут иметь почти одинаковые базовые настройки.
В мире JSON нам пришлось бы дублировать эти конфиги:
Копирование и вставка очень раздражают, особенно когда вам нужно что-то изменить во всех местах, где это использовалось.
Якоря, решают эту проблему. Мы можем:
- Во-первых, создайте наш якорь
- Затем, используем эту переменную:
Выглядит очень просто, верно? И это также проще в обслуживании.
Если вы скопируете этот код и вставите его в онлайн-инструмент «Конвертер Yaml в JSON», вы увидите тот же код, который я упоминал ранее в примере JSON, но с добавлением базовой конфигурации:
Синтаксис JSON (да, JSON)
Как объяснялось ранее, расширенный язык является таким же как базовый язык, плюс некоторые дополнительные функции, что означает, что мы можем написать файл Yaml в формате JSON.
Сомневаетесь? Скопируйте этот код и вставьте его сюда
Если вы преобразуете этот YAML в JSON, у вас будет такая же структура:
Shell/Bash окружение
Как я говорил в начале этой статьи, очень часто файлы .yml используются как файлы конфигурации для многих вещей, но особенно для среды CI/CD.
Для использования CI/CD вам нужно будет описать, как должен работать компьютер/docker, что должно быть установлено, запущено и т. д.
Например, в GitLab CI вы можете указать на глобальном уровне переменные среды, которые должны быть доступными для всех процессов:
Обратите внимание, что синтаксис для использования переменных $ не из YAML, а из shell/bash.
GitLab CI делает все, что вы определили в переменных, и создает переменные оболочки.
Некоторые другие платформы также вводят другие значения, такие как ref, имя ветки (branch name), время сборки (build time), авторы (author), а также секретные ключи (secret keys), определенные вне конфигурации:
В приведенном выше примере мы используем переменную внешней среды $CI_COMMIT_REF_NAME, которую предоставляет платформа GitLab CI, которая описывает имя ветви или тега, для которого построен проект.
Заключение
Я надеюсь, что теперь вы знаете немного больше о YAML и, по крайней мере, будуте чувствовать себя более комфортно при чтении и записи своих файлов.
Всегда читайте документацию по платформе, над которой вы работаете, чтобы узнать, что можно или не нужно делать! 🙂
YAML — это не язык разметки или сокращенно YAML — это язык сериализации данных, обычно используемый в файлах конфигурации, таких как Kubernetes, Docker, Ansible и многих других. Его популярность росла с годами, что сделало его своего рода конкурентом JSON.
Хорошо, если YAML не является языком разметки, что это такое?
Как уже упоминалось, YAML — это язык сериализации данных, разработанный для улучшения удобочитаемости за счет использования отступов и собственных структур данных. Думайте об этом как о строгом надмножестве JSON или как о помесье JSON и XML. Этот гибрид позволяет ему делать то, что может JSON, и другие дополнительные функции.
Цель этого руководства — познакомить вас с YAML, дать вам руководство по синтаксису языка, предоставить вам быстрые инструменты для работы с YAML и научить использовать его для файлов конфигурации и многое другое.
Как написать YAML
Написание YAML невероятно интуитивно понятно (я думаю, в этом суть), поскольку он использует синтаксис пары ключ-значение. Таким образом, это похоже на словарь в Python. Однако, в отличие от Python, YAML не позволяет использовать интервалы табуляции; он использует пробелы.
Чтобы начать новый документ YAML, мы начинаем с трех тире, обозначающих начало нового файла.
Эта функция позволяет вам иметь несколько документов, разделенных тире, в одном файле.
Создайте файл с расширением.YAML и добавьте следующее содержимое.
Как видно из приведенного выше файла, каждый документ в yaml начинается с трех точек, за которыми следуют данные, хранящиеся в парах ключ-значение.
Установите YAML linter
Прежде чем продолжить, давайте подтвердим, что у нас есть действующий файл YAML. Для этого нам необходимо установить линтер YAML.
Линтер — это инструмент, который проверяет и уведомляет разработчика об ошибках программирования, таких как синтаксические ошибки и недопустимые конструкции. Например, он позволяет вам проверить допустимый синтаксис файла.
В нашем примере мы будем использовать yamllint.
Для установки используйте apt как:
sudo apt-get update
sudo apt-get install yamllint -y
После установки мы можем запустить линтер для файла с помощью команды
echo -e ‘this is a valid : YAML syntax’ | yamllint sample.yamlЕсли файл содержит допустимый синтаксис YAML, он не дает нам никаких результатов.
Теперь попробуйте добавить пробелы внутри файла YAML или добавить один дефис внизу как:
Если мы запустим линтер для этого файла, появятся ошибки, как показано ниже:
ПРИМЕЧАНИЕ. Подобно словарям в Python и аналогичным структурам данных в различных языках программирования, пары ключ-значение в документе YAML должны быть уникальными.
Типы данных YAML
YAML поддерживает различные способы представления данных. Они включают:
Это наиболее распространенный тип данных в YAML. Они представлены в виде пар «ключ-значение», как показано в примере выше.
Значения в паре могут быть любого типа, например строки, числа, включая шестнадцатеричные, целые числа и т. Д.
YAML также поддерживает строки, заключенные в одинарные или двойные кавычки. Это не является требованием, поскольку синтаксический анализатор YAML определит это, но может быть полезным, особенно в строках с escape-символами.
Ниже приведены примеры действительных строк в YAML.
ПРИМЕЧАНИЕ. Не забудьте закрыть двойные или одинарные кавычки, если они используются. Следующее приведет к ошибке.
Чтобы добавить абзац в файл YAML, используйте знак (больше). Не забудьте добавить пробел перед строкой. Например:
Другой тип данных, поддерживаемый в YAML, — это числовые типы. Числовые типы включают целые, десятичные, шестнадцатеричные, восьмеричные и другие числовые типы.
Следующий синтаксис YAML представляет числовые типы.
Списки в YAML указываются одним тире как:
Последовательности — это типы данных, используемые для хранения нескольких значений в одном и том же ключе. Например:
Сопоставление очень похоже на последовательность, но состоит из пар ключ-значение, содержащихся в одной подгруппе.
мы устанавливаем null в YAML, используя тильду (
) или строку null, как показано в примере ниже:
Массивы в YAML указываются в квадратных скобках в одной строке. В следующем примере показано определение массивов в YAML.
Комментарии YAML
YAML также поддерживает комментарии, которые позволяют добавлять дополнительную информацию к данным YAML. Парсер игнорирует комментарии.
Преобразование YAML в JSON
В некоторых случаях нам может потребоваться преобразовать YAML в JSON. Поскольку они тесно связаны между собой, имеет смысл использовать одно в другом.
Для таких сценариев мы можем использовать такой инструмент, как yq, который представляет собой синтаксический анализатор YAML / XML для jq.
Чтобы установить его, используйте pip с командой, как показано ниже:
ПРИМЕЧАНИЕ. Убедитесь, что у вас установлен jq, поскольку это обязательная зависимость для yq.
Предположим, у нас есть образец файла для создания пода Kubernetes (Kubernetes.yaml) с таким содержимым, как показано:
ПРИМЕЧАНИЕ. Приведенный выше файл предназначен для иллюстрации и может содержать ошибки при использовании в реальном экземпляре Kubernetes.
Чтобы преобразовать файл YAML в JSON, используйте команду:
После выполнения приведенной выше команды содержимое файла автоматически преобразуется в JSON, как показано ниже:
Это упрощает работу при переходе с JSON на YAML и наоборот.
Заключение
YAML — это невероятно мощный инструмент, который позволяет создавать хорошо читаемые и совместимые файлы конфигурации для служб поддержки. Используя концепции этого руководства, вы можете создавать сложные документы YAML для своих приложений или приложений, поддерживающих YAML.
Мы все любим Ansible, но Ansible – это YAML. Для конфигурационных файлов существует масса форматов: списки значений, пары «параметр-значение», INI-файлы, YAML, JSON, XML и множество других. Однако по нескольким причинам из всех них YAML часто считается особенно трудным. В частности, несмотря на его освежающий минимализм и впечатляющие возможности для работы с иерархическими значениями, синтаксис YAML может раздражать своим Python-образными подходом к отступам.
Если вас бесит YAML, вы можете – и должны! – предпринять 10 следующих шагов, чтобы снизить свое раздражение до приемлемого уровня и полюбить YAML. Как и положено настоящему списку, наша десятка советов будет нумероваться с нуля, медитацию и духовные практики добавляем по желанию ;-)
0. Заставьте ваш редактор работать
Неважно, какой у вас текстовый редактор – для него наверняка существует хотя бы один плагин для работы с YAML. Если у вас такого нет, немедленно найдите и установите. Потраченное на поиск и настройку время будет многократно окупаться каждый раз, когда вам придется редактировать YAML.
Например, редактор Atom поддерживает YAML по умолчанию, а вот для GNU Emacs придется установить дополнительные пакеты, например, yaml-mode.
Emacs в режиме YAML и отображения пробелов.
Если в вашем любимом редакторе нет режима YAML, то часть проблем можно решить, поработав с настройками. Например, штатный для GNOME текстовый редактор Gedit не имеет режима YAML, но по умолчанию подсвечивает синтаксис YAML и позволяет настроить работу с отступами:
Настройка отступов в Gedit.
А плагин drawspaces для Gedit отображает пробелы в виде точек, устраняя неясности с уровнями отступа.
Иными словами, потратьте время на изучение своего любимого редактора. Выясните, что он сам или его сообщество разработки предлагают для работы с YAML, и используйте эти возможности. Вы точно об этом не пожалеете.
1. Используйте линтер (linter)
В идеале языки программирования и языки разметки используют предсказуемый синтаксис. Компьютеры хорошо справляются с предсказуемостью, поэтому еще в 1978 году возникла концепция линтера. Если за 40 лет своего существования она прошла мимо вас и вы до сих пор не пользуетесь YAML-линтером, то самое время попробовать yamllint.
Установить yamllint можно с помощью штатного менеджера пакетов Linux. Например, в Red Hat Enterprise Linux 8 или Fedora это делается так:
Затем вы просто запускаете yamllint, передавая ему YAML-файл для проверки. Вот как это выглядит, если передать линтеру файл с ошибкой:
Цифры слева – это не время, а координаты ошибки: номер строки и столбца. Описание ошибки может вам ни о чем не говорить, зато вы точно знаете, где она находится. Просто посмотрите на это место в коде, и, скорее всего, все станет ясно.
Когда yamllint не находит ошибок в файле, на экран ничего не выводится. Если вас пугает такая тишина и хочется немного больше обратной связи, то можно запускать линтер с условной командой echo через двойной амперсанд (&&), вот так:
В POSIX двойной амперсанд срабатывает тогда и только тогда, когда предшествующая команда возвращает 0. А yamllint как раз возвращает количество найденных ошибок, поэтому вся эта условная конструкция и работает.
2. Пишите на Python, а не на YAML
Если вас реально бесит YAML, просто не пишите на нем, в буквальном смысле. Бывает, что YAML – это единственный формат, который воспринимается приложением. Но и в этом случае необязательно создавать YAML-файл. Пишите на том, что вам нравится, а потом конвертируйте. Например, для Python есть отличная библиотека pyyaml и целых два способа конвертирования: самоконвертирование и конвертирование через скрипты.
Самоконвертирование
В этом случае файл с данными заодно является и Python-скриптом, который генерирует YAML. Этот способ лучше всего подходит для небольших наборов данных. Вы просто пишите JSON-данные в переменную Python, предваряете это директивой import, а в конце файла добавляете три строчки для реализации вывода.
Теперь запускаем это файл на Python-е и на выходе получаем файл output.yaml:
Конвертирование через скрипты
В этом случае сначала пишем на JSON-е, а затем запускаем конвертор в виде отдельного Python-скрипта, который на выходе дает YAML. По сравнению с предыдущим этот способ лучше масштабируется, поскольку конвертирование отделено данных.
Затем создадим простой скрипт-конвертор и сохраним его под именем json2yaml.py. Этот скрипт импортирует оба модуля — YAML и JSON Python, а также загружает указанный пользователем файл JSON, выполняет конвертирование и пишет данные в файл output.yaml.
Сохраните этот скрипт в system path и запускайте по мере необходимости:
3. Парсите много и часто
Иногда на проблему полезно взглянуть под другим углом. Если вам трудно представить взаимосвязи между данными в YAML, можно временно преобразовать их в нечто более привычное.
Например, если вам удобно работать со словарными списками или с JSON, то YAML можно преобразовать в JSON всего двумя командами в интерактивной оболочке Python. Допустим, у вас есть YAML-файл mydata.yaml, тогда вот как это будет выглядеть:
На эту тему можно найти массу других примеров. Кроме того, в наличии множество онлайн-конвертеров и локальных парсеров. Так что не стесняйтесь переформатировать данные, когда видите в них только непонятную мешанину.
4. Читайте спеки
5. Псевдоконфиги
При написании книги или статьи всегда полезно сперва набросать предварительный план, хотя бы в виде оглавления. Так же и с YAML. Скорее всего, вы представляете, какие данные надо записать в файл YAML, но не очень понимаете, как связать их друг с другом. Поэтому прежде чем ваять YAML, нарисуйте псевдоконфиг.
Псевдоконфиг похож на псевдокод, где не надо заботиться о структуре или отступах, отношениях «родитель-потомок», наследовании и вложенности. Так и здесь: вы рисуете итерации данных по мере того, как они возникают у вас в голове.
Псевдоконфиг с перечислением программистов (Martin и Tabitha) и их навыков (языков программирования: Python, Perl, Pascal и Lisp, Fortran, Erlang, соответственно).
Нарисовав псевдоконфиг на листе бумаги, внимательно проанализируйте его и, если все в порядке, оформите в виде валидного YAML-файла.
6. Дилемма «табуляция или пробелы»
Вам придется решить дилемму «табуляция или пробелы?». Не в глобальном смысле, а лишь на уровне вашей организации, или хотя бы проекта. Неважно, будет ли при этом использоваться пост-обработка скриптом sed, настройка текстовых редакторов на машинах программистов или же поголовное взятие расписок о строгом соблюдении указаний линтера под угрозой увольнения, но все члены вашей команды, которые так или иначе касаются YAML, в обязательном порядке должны использовать только пробелы (как того требует спецификация YAML).
В любом нормальном текстовом редакторе можно настроить автозамену табуляции на заданное количество пробелов, поэтому бунта приверженцев клавиши Tab можно не бояться.
Как хорошо известно каждому ненавистнику YAML, на экране не видно разницы между табуляцией и пробелами. А когда чего-то не видно, об этом, как правило, вспоминают в последнюю очередь, после того, как перебрали, проверили и устранили все остальные возможные проблемы. Час времени, убитый на поиск кривой табуляции или блока пробелов, просто вопиет о том, что вам над срочно создать политику использования того или другого, а затем реализовать железобетонную проверку ее соблюдения (например, через Git-хук для принудительного прогона через линтер).
7. Лучше меньше да лучше (или больше – это меньше)
Некоторые люди любят писать на YAML, поскольку он подчеркивает структуру. При этом они активно используют отступы, чтобы выделять блоки данных. Это такое своего рода жульничество для имитации языков разметки, в которых используются явные разделители.
Вот пример такой структурированности из документации Ansible:
Кому-то такой вариант помогает разложить в голове структуру YAML, других он наоборот раздражает массой ненужных, на их взгляд, отступов.
Но если вы являетесь владельцем YAML-документа и отвечаете за его сопровождение, то вы и только вы должны определять, как использовать отступы. Если вас раздражают большие отступы, сведите их к минимуму, который только возможен согласно спецификации YAML. Например, вышеприведенный файл из документации Ansible без каких бы то ни было потерь можно переписать вот так:
8. Используйте заготовки
Если при заполнении файла YAML вы постоянно повторяете одни и те же ошибки, имеет смысл вставить в него шаблон-заготовку в виде комментария. Тогда в следующий раз можно будет просто скопировать эту заготовку и вписать туда реальные данные, например:
9. Используйте что-то другое
Если приложение не держит вас мертвой хваткой, то, возможно, стоит сменить YAML на другой формат. Со временем конфигурационные файлы могут перерастать себя и тогда лучше преобразовать их в простые скрипты на Lua или Python.
YAML – отличная штука, которую многие любят за минимализм и простоту, но это далеко не единственный инструмент в вашем арсенале. Так что иногда от него можно отказаться. Для YAML легко найти библиотеки парсинга, поэтому, если вы предложите удобные варианты миграции, ваши пользователи относительно безболезненно переживут такой отказ.
Если же без YAML никак не обойтись, то возьмите на вооружение эти 10 советов и победите свою неприязнь к YAML раз и навсегда!
Программы, которые поддерживают YAML расширение файла
Следующий список содержит программы, сгруппированные по 3 операционным системам, которые поддерживают YAML файлы. Файлы с суффиксом YAML могут быть скопированы на любое мобильное устройство или системную платформу, но может быть невозможно открыть их должным образом в целевой системе.
Программы, обслуживающие файл YAML
Как открыть файл YAML?
Причин, по которым у вас возникают проблемы с открытием файлов YAML в данной системе, может быть несколько. С другой стороны, наиболее часто встречающиеся проблемы, связанные с файлами YAML Document, не являются сложными. В большинстве случаев они могут быть решены быстро и эффективно без помощи специалиста. Мы подготовили список, который поможет вам решить ваши проблемы с файлами YAML.
Шаг 1. Получить gVim
Наиболее распространенной причиной таких проблем является отсутствие соответствующих приложений, поддерживающих файлы YAML, установленные в системе. Этот легкий. Выберите gVim или одну из рекомендованных программ (например, Adobe Dreamweaver, Windows Notepad, NotePad++ text editor) и загрузите ее из соответствующего источника и установите в своей системе. Полный список программ, сгруппированных по операционным системам, можно найти выше. Если вы хотите загрузить установщик gVim наиболее безопасным способом, мы рекомендуем вам посетить сайт и загрузить его из официальных репозиториев.
Шаг 2. Убедитесь, что у вас установлена последняя версия gVim
Если проблемы с открытием файлов YAML по-прежнему возникают даже после установки gVim, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия gVim. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Это может быть одной из причин, по которой YAML файлы не совместимы с gVim. Самая последняя версия gVim обратно совместима и может работать с форматами файлов, поддерживаемыми более старыми версиями программного обеспечения.
Шаг 3. Свяжите файлы YAML Document с gVim
Если проблема не была решена на предыдущем шаге, вам следует связать YAML файлы с последней версией gVim, установленной на вашем устройстве. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы
Процедура изменения программы по умолчанию в Windows
- Нажатие правой кнопки мыши на YAML откроет меню, из которого вы должны выбрать опцию Открыть с помощью
- Далее выберите опцию Выбрать другое приложение а затем с помощью Еще приложения откройте список доступных приложений.
- Чтобы завершить процесс, выберите Найти другое приложение на этом. и с помощью проводника выберите папку gVim. Подтвердите, Всегда использовать это приложение для открытия YAML файлы и нажав кнопку OK .
Процедура изменения программы по умолчанию в Mac OS
Шаг 4. Убедитесь, что файл YAML заполнен и не содержит ошибок
Если вы выполнили инструкции из предыдущих шагов, но проблема все еще не решена, вам следует проверить файл YAML, о котором идет речь. Вероятно, файл поврежден и, следовательно, недоступен.
1. Проверьте YAML файл на наличие вирусов или вредоносных программ.
Если YAML действительно заражен, возможно, вредоносное ПО блокирует его открытие. Сканируйте файл YAML и ваш компьютер на наличие вредоносных программ или вирусов. Если файл YAML действительно заражен, следуйте инструкциям ниже.
2. Убедитесь, что структура файла YAML не повреждена
Если вы получили проблемный файл YAML от третьего лица, попросите его предоставить вам еще одну копию. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. При загрузке файла с расширением YAML из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.
3. Проверьте, есть ли у вашей учетной записи административные права
Иногда для доступа к файлам пользователю необходимы права администратора. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл YAML Document.
4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия gVim
5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений
Регулярно обновляемая система, драйверы и программы обеспечивают безопасность вашего компьютера. Это также может предотвратить проблемы с файлами YAML Document. Возможно, что одно из доступных обновлений системы или драйверов может решить проблемы с файлами YAML, влияющими на более старые версии данного программного обеспечения.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла YAML мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле YAML.
Читайте также: