Я изо всех сил пытаюсь понять, как hiera работает с данными, мне кажется, что простой yaml, использующий frontmatter для включения файлов глобальных данных, был бы проще и мощнее.
В любом случае, я хочу сделать что-то вроде этого:
# global.yaml
collection1: &collection1
foo: 1
collection2: &collection2
bar: 2
collection3: &collection3
baz: 3
# development_environment.yaml
collection:
<<: *collection1
<<: *collection2
# production_environment.yaml
collection:
<<: *collection2
<<: *collection3
По сути, чтобы я мог хранить несколько списков вещей в одном месте, а затем комбинировать их по-разному в зависимости от среды. У Hiera есть возможность слияния ключей верхнего уровня с глубоким слиянием, но я не могу найти ничего о включении данных с более высокого уровня в иерархии (для моей конкретной проблемы я также мог бы заставить его работать достаточно хорошо, если бы был способ перезаписать ключи). данные в глобальном файле, а не объединять их в более конкретный файл, но это также не представляется возможным).
Как я могу это сделать? Я застрял в ручном дублировании базовых данных во всех моих различных средах?
Я понимаю, что я мог бы поместить оператор case среды в код марионетки, чтобы выбрать, какие базовые коллекции включать, но это нарушает разделение задач хранения данных в hiera и кода в марионетке. Если мне нужно это сделать, я могу вообще пропустить hiera и поместить свои данные в марионеточные модули.