Почему 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, мягко говоря) не четко определяет, в соответствии с какой версией стандарта оно анализирует его файлы конфигурации.