Командная строка Hiera: Как просмотреть все данные в иерархии для данного узла?
Просто протестирую hiera, и я хотел бы иметь возможность просматривать все доступные данные (пары переменная = значение) в иерархии для данного узла.
Моя иерархия Hiera настроена так:
---
:backends:
- yaml
- json
:yaml:
:datadir: C:\Puppet\hieradata
:hierarchy:
- "Env/%{::env}"
- common
Я могу запустить следующее, чтобы вернуть значение node1 для переменной 'some-common':
>hiera some-common ::env=node1
data
То, что я хотел бы видеть, это то, что все пары переменная = значение, доступные для node1 в иерархии, это возможно? Спасибо
1 ответ
Боюсь, это невозможно. Самое близкое, что вы можете сделать, это сбросить факты для определенного узла:
facter -y > node.yml
А затем используйте их для поиска конкретных ключей:
hiera -y node.yml my_class:arg -d
таким образом, вы сможете получить доступ к ключам Hiera в зависимости от операционной системы, домена и т. д. (зависит от вашей иерархии, определенной в hiera.yaml
).
Еще один вариант - подключиться к марионеточному узлу. И использовать puppet lookup
(должно быть доступно начиная с Puppet 4). lookup
по умолчанию использует Hiera Backend (снова требует 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
Я нашел другой обходной путь - вы можете добавить ключ верхнего уровня к своим данным 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