Командная строка 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
Другие вопросы по тегам