我有几台机器,其中一台dbserver
通过 ENC 分配了类别。其他机器运行需要数据库的软件。现在我想配置这个软件以便能够连接到数据库。我通常更喜欢使用 hiera 自动查找功能来实现这一点。因此,软件类别(我们称之为)foo
有一个参数$dbserver
。这在 hiera 中被查找为foo::dbserver
。我可以在 hiera 中放置一个 hiera 查找,例如
dbserver: foo.bar.example.com
foo::dbserver: "%hiera('::dbserver')"
因此,我只需在 hiera 中配置一次主机名。另外,我还必须dbserver
在 ENC 中配置 -assignment。我必须注意,它们必须匹配,以便运行dbserver
在将主机名放入 hiera 的机器上。
有没有办法实现自动化?我可以告诉 hiera 以某种方式检查此类在哪个服务器上运行,并使用该计算机的主机名进行配置吗?
编辑1: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