Командная строка Hiera: как просмотреть все данные в иерархии для данного node?
просто проверяя hiera, и я хотел бы иметь возможность просматривать все доступные данные (пары variable = value) в иерархии для данного node.
Иерархия My Hiera настроена как:
---
:backends:
- yaml
- json
:yaml:
:datadir: C:\Puppet\hieradata
:hierarchy:
- "Env/%{::env}"
- common
Я могу запустить следующее, чтобы вернуть значение node1 для переменной "some-common":
>hiera some-common ::env=node1
data
То, что я хотел бы видеть, это все пары variable = value, доступные узлу1 в иерархии, возможно ли это?
Благодаря
Ответы
Ответ 1
Я боюсь, что это невозможно. Ближайшая вещь, которую вы можете сделать, - это данные дампа для определенного node:
facter -y > node.yml
И затем используйте их для поиска определенных ключей:
hiera -y node.yml my_class:arg -d
таким образом вы сможете получить доступ к ключам Hiera на основе операционной системы, домена и т.д. (зависит от вашей иерархии, определенной в hiera.yaml
).
Еще один вариант - ssh в кукольный мастер node. И используйте puppet lookup
(должен быть доступен с Puppet 4). lookup
использует по умолчанию фоновый файл Hiera (опять требуется файл конфигурации hiera.yaml
).
puppet lookup resolv_conf::nameservers --node mynode.example.net
или более подробная версия:
puppet lookup resolv_conf::nameservers --merge deep --environment production --explain --node mynode.example.net
Ответ 2
Я нашел другой обходной путь - вы можете добавить ключ верхнего уровня к своим данным yaml:
node-data:
hosts:
- localhost:3367
- company.com
dns: 8.8.8.8
policy:
retries: 3
timeout: 5
и выполните поиск кукол с помощью слияния для этого ключа верхнего уровня, например:
puppet lookup --merge hash/deep node_data