Утилита yamllint весьма полезна для анализа YAML-файлов Puppet Hiera.Когда я попробовал его на вашем файле, я получил:
▶ yamllint spec/fixtures/hiera/data/common.yaml
spec/fixtures/hiera/data/common.yaml
2:25 error syntax error: expected ',' or ']', but got '['
2:39 error too few spaces after comma (commas)
Синтаксическая ошибка показывает, что файл просто недействительный YAML.
Но как это исправить?
Смущает, что строка в манифесте Puppet, такая как:
subscribe => [Package['package-x'], Package['package-y']]
При компиляции в каталог кукол JSON становится:
"subscribe": ["Package[package-x]", "Package[package-y]"]
И вы можете поместить ту же строку JSON в файл YAML, чтобысделать допустимый YAML следующим образом:
service::common::httpd::packages: ["Package[package-x]", "Package[package-y]"]
Вы также можете использовать одинарные кавычки в YAML, т.е.
service::common::httpd::packages: ['Package[package-x]', 'Package[package-y]']
Подробнее о том, как скомпилировать каталог Puppet, в моем сообщении в блоге здесь .