Преобразование наследования узлов в hiera

Я работаю над перемещением через дерево наследования узлов в hiera. В настоящее время работает над иерархией. До hiera мои узлы имели иерархию как таковую

base
  pre-prod
    qa
      nodes
    staging
      nodes
    development
      nodes
  prod
    nodes

Теперь я пытаюсь получить тот же уровень с Hiera. Начиная с меня это

:hierarchy:
  - base
  - "%{environment}"
  - "%{clientcert}"

но мне нужен другой уровень для захвата pred-prod и prod. Я хотел бы добавить запись в puppet.conf, что-то вроде

[agent]
realm = pre-prod

затем

:hierarchy:
  - base
  - "%{realm}"
  - "%{environment}"
  - "%{clientcert}"

Пара вопросов

  1. Разрешено ли вам помещать произвольные свойства в puppet.conf?
  2. Увидит ли Иера недвижимость королевства?

1 ответ

Решение

Вы можете сделать это на стороне клиента, используя пользовательский факт вместо puppet.conf установка. Тем не менее, я бы сказал, сделать это на стороне сервера, в данных Hiera. Уловка, которую я использую для чего-то подобного, заключается в следующем:

  1. Установите что-то в данных Hiera на clientcert уровень, для каждого сервера. В твоем случае:

    realm: "pre-prod"
    
  2. Захватите эту переменную в глобальную область с помощью Hiera в site.ppперед вашим hiera_include:

    $realm = hiera(realm)
    
    hiera_include(classes)
    
  3. Переменная была выбрана из clientcert.yaml файл, и теперь будет использоваться в поисках, которые происходят из вашего hiera_includeтянет из pre-prod.yaml на основе "%{realm}" Конфиг в вашей иерархии.

Другие вопросы по тегам