Я пытаюсь загрузить файл hiera в соответствии с определенным флагом.
Конфигурация Hiera hierarachy
:hierarchy:
- "%{environment}/%{::fqdn}"
- "%{environment}/%{nodetype}"
- "%{environment}/%{calling_module}"
- "%{environment}"
- "common/%{calling_module}"
- "common"
Фактически, я хочу факторизовать некоторую конфигурацию на уровне "типа узла". Цель состоит в том, чтобы не помещать один и тот же «блок» в файлы:
но вместо этого, но общая часть в:
После этого все серверы получат свои собственные конкретные значения с файлом fqdn yaml. (эта часть в порядке)
В настоящее время я не знаю, как предоставить данные "nodetype" в контекст hiera.
Я попытался поместить его в основной файл манифеста, например (да, я прочитал документ, и я знаю, что это плохая идея, но даже при попытке отчаяния это все равно не работает)
node 'nfs1.example.com', 'nfs2.example.com' {
$nodetype= 'nfs-server'
но файл среда / тест / nfs-server.yaml не загружается hiera.
Я также пытался использовать настраиваемый факт, но используя настраиваемый факт с
modules/hosts/facts.d/host-fact-test.txt
Файл отправляется на хост агента, но здесь опять же, hiera не использует специальный файл.
Notice: /File[/var/lib/puppet/facts.d/host-fact-test.txt]/ensure: defined content as '{md5}d7492faae1bfe55f65f9958a7a5f6df9'
Если я использую поставить в известность марионеточная команда, значение в порядке
if $nodetype== 'nfs-server' {
notify {"Running with \$nodetype ${nodetype} ID defined":
withpath => true,
}
}
результат:
Notice: /Stage[main]/attemps/Notify[Running with $nodetype nfs-server ID defined]/message: Running with $nodetype nfs-server ID defined
Стек - это Puppet с открытым исходным кодом в Ubuntu 14, поэтому версии:
Есть идея или предложение, чтобы заставить его работать (или добиться аналогичного поведения)?
Главный процесс Puppet обычно не использует конфигурацию в /etc/hiera.yaml
, что может сбивать с толку. С марионеткой 3.x
, это обычно /etc/puppet/hiera.yaml
.
Вы можете убедиться, что используете (как root)
puppet master --configprint hiera_config
на мастер-машине.