У меня есть несколько машин, одна из них класса dbserver
назначается через ENC. На других машинах работает программное обеспечение, которому нужна БД. Теперь я хочу настроить это программное обеспечение, чтобы иметь возможность подключаться к БД. Обычно я предпочитаю использовать для этого функцию автозапуска hiera. Итак, класс программного обеспечения, назовем его foo
, имеет параметр $dbserver
. Это рассматривается в иере как foo::dbserver
. Я могу поставить hiera lookup в hiera, например
dbserver: foo.bar.example.com
foo::dbserver: "%hiera('::dbserver')"
Поэтому мне нужно настроить имя хоста только один раз в hiera. Плюс мне нужно настроить dbserver
-задание в ENC. И я должен позаботиться о том, чтобы они совпадали, чтобы dbserver
работает на машине, имя хоста которой я ввел в hiera.
Есть ли способ это автоматизировать? Могу ли я сказать hiera, чтобы она как-то проверила, на каком сервере работает этот класс, и использовала имя хоста этого компьютера для настройки?
edit1: hiera.yaml
---
:backends: yaml
:yaml:
:datadir: /etc/puppet/hieradata/%{::environment}
:hierarchy:
- "nodes/%{::certname}"
- "clients/%{::client}" # custom fact
- "os_%{::osfamily}"
- common # the code above is inside this common.yaml