Я работаю над перемещением дерева наследования узлов в hiera. В настоящее время работает над иерархия. До hiera у моих узлов была иерархия как таковая
base
pre-prod
qa
nodes
staging
nodes
development
nodes
prod
nodes
Теперь я пытаюсь получить такой же уровень с hiera. Начиная, у меня есть это
:hierarchy:
- base
- "%{environment}"
- "%{clientcert}"
но мне нужен другой уровень, чтобы захватить предпродажа и толкать. Я подумал бы добавить запись в puppet.conf, что-то вроде
[agent]
realm = pre-prod
затем
:hierarchy:
- base
- "%{realm}"
- "%{environment}"
- "%{clientcert}"
Пара вопросов
Вы можете сделать это на стороне клиента, используя настраиваемый факт вместо puppet.conf
настройка. Однако я бы сказал, что делайте это на стороне сервера, в данных Hiera. Уловка, которую я использую для чего-то подобного, заключается в следующем:
Установите что-нибудь в данных Hiera на clientcert
уровень, для каждого сервера. В твоем случае:
realm: "pre-prod"
Захватите эту переменную в глобальную область видимости через Hiera в site.pp
перед твоим hiera_include
:
$realm = hiera(realm)
hiera_include(classes)
Переменная была получена из clientcert.yaml
файл, и теперь он будет использоваться в поисках, которые происходят из вашего hiera_include
, вытягивая из pre-prod.yaml
на основе "%{realm}"
config в вашей иерархии.