如何修改Hiera层级为zmb-前缀服务器配置(Puppet 4.10.10)
Puppet Hiera层级配置问题解答
用户问题:
现有200台服务器,需为其中100台应用特定配置,这批服务器仅有的共同点是名称前缀均为zmb-。请问在hiera.yaml的:hierarchy:部分应做何修改?使用的Puppet版本为4.10.10。
解答:
其实要给出完全贴合你需求的Hiera层级修改方案,还需要你补充两个关键信息:一是你要给这100台节点配置的具体数据内容是什么,二是你为什么认为这个需求应该通过Hiera来解决,而不是直接用Puppet清单处理呢?
不过我可以先给你一个非常基础的示例参考,帮你理解思路:
假设你原本的hiera.yaml层级配置是这样的:
:hierarchy: - "nodes/%{trusted.certname}" - "common"
你可以添加一个基于主机名前缀的层级条目,利用Puppet的regsubst函数提取主机名的前缀部分,修改后的层级会是:
:hierarchy: - "nodes/%{trusted.certname}" - "prefixes/%{regsubst(trusted.certname, '^(zmb-).*$', '\\1')}" - "common"
这样配置后,所有主机名以zmb-开头的节点,会优先加载prefixes/zmb-.yaml(或者对应目录下的配置文件)里的特定配置,之后才会应用common里的通用配置。
需要注意的是,这只是最基础的场景方案,实际的层级调整还得结合你要配置的数据类型、现有Hiera的结构来优化,如果你能提供更多细节,就能给出更精准的方案啦。
内容的提问来源于stack exchange,提问作者yodog
相关产品推荐
相关产品推荐

