Какая версия YAML используется в Ansible (2.9) playbooks? - PullRequest
1 голос
/ 24 апреля 2020

Почему YAML 1.2

Согласно статье Ansible документации Синтаксис YAML :

Список разрешенных выходов можно найти в спецификации YAML. в разделе «Escape-последовательности» (YAML 1.1) или «Escape-символы» ( YAML 1.2 ).

Это может указывать на тот факт, что Ansible на самом деле анализирует пьесы в соответствии с YAML 1,2 . Кроме того, первая версия Ansible вышла в 2012 году, то есть уже через 3 года после того, как YAML 1.1 был признан устаревшим (?) В пользу YAML 1.2.

Почему YAML 1.1

На с другой стороны, в той же статье документации упоминается следующее:

Булево преобразование полезно, но это может быть проблемой, если вы хотите, чтобы в качестве строки были литеральные yes или другие логические значения. В этих случаях просто используйте кавычки. [...]

Если я правильно понимаю, это преобразование "yes" в (логическое) истинное было удалено в YAML 1.2.

Кроме того, yes (якобы оцениваемый как логическое значение true) отображается во всем официальном руководстве пользователя (случайным образом выбранный пример: здесь ).


Я очень кратко просмотрел код парсера (в выпуске Ansible 2.9), и они, кажется, используют нестандартные парсеры, а не стороннюю библиотеку. Есть немного комментариев, и я не могу иметь много смысла в этом.

Есть ли однозначный ответ на это? Я нахожу очень странным, что YAML-ориентированное программное обеспечение (YAML, являющийся языком общеизвестно чувствительным к точности syntacti c, мягко говоря) не четко определяет, в соответствии с какой версией стандарта оно анализирует его файлы конфигурации.

...