我有一个puppet安装程序,其中每个节点清单被命名为类似
/^web-\d+\.example\.com$/
我们这样做,所以我们可以启动新服务器以获得更多容量,并使用启动时间戳为每个服务器提供一个唯一的certname 。
这是由于我们无法做到的,所以我们的Puppet安装程序的Hiera部分出现问题
:hierarchy: - "nodes/%{::trusted.certname}" - common
因为我们无法预测所有的certname是什么。 现在我们只是在层次结构中指定每个节点types,但是我们希望能够添加新的节点types,而无需每次都编辑hiera.yaml 。
是否有可能在我们的层次结构中进行某种dynamic查找,使我们能够在不指定每个节点types的情况下dynamic生成certnames?
我已经更新了我们的层次结构和自定义事实来完成这个工作。 现在的层次包括
roles/%{::role}/${::environment}
我们的节点现在在/etc/facter/facts/role.yaml包含以下/etc/facter/facts/role.yaml :
--- role: web