Эта запись в блоге объясняет, как установить несколько маршрутов для Linux в некоторых деталях.
Проблема в том, что hiera_include будет использовать классы со всех уровней (вероятно, использует hiera_array).
Это, вероятно, сработает:
[root@puppetmaster puppet]# cat hieradata/common.yaml
---
classes:
- ldap
- motd
- ntp
- puppet-conf
[root@puppetmaster puppet]# cat hieradata/environment/tst/tst-01.yaml
---
classes:
- puppet-update
- public-keys
- motd
- ntp
- puppet-conf
В node-def:
class { hiera('classes'): }
Обратной стороной является что вам нужно будет указать все классы в файле hiera для конкретного хоста, если вы переопределите значение по умолчанию.
Это поможет?
Вы можете использовать что-то вроде этого в вашем node.pp
:
node default {
hiera_include('classes')
}
node /^tst-0(1|2)\.example\.com$/ inherits default {
}
node /.*example\.com$/ inherits default {
include ldap
}