Командная строка 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