将配置应用于puppet+;希拉
需要一些帮助思考 我有200台服务器,必须对100台应用特定配置 它们唯一的共同点是名称前缀:它们都以将配置应用于puppet+;希拉,puppet,hiera,facter,Puppet,Hiera,Facter,需要一些帮助思考 我有200台服务器,必须对100台应用特定配置 它们唯一的共同点是名称前缀:它们都以zmb- hiera.yaml --- :backends: - yaml :yaml: :datadir: :hierarchy: - "nodes/pro/%{::trusted.certname}" - "nodes/hom/%{::trusted.certname}" - "nodes/%{::trusted.certname}" - "%{::os.fami
zmb-
hiera.yaml
---
:backends:
- yaml
:yaml:
:datadir:
:hierarchy:
- "nodes/pro/%{::trusted.certname}"
- "nodes/hom/%{::trusted.certname}"
- "nodes/%{::trusted.certname}"
- "%{::os.family}"
- common
:logger: puppet
---
classes:
- base
- ntp
ntp::server: '10.1.1.1'
我应该在:层次结构:
中更改什么
傀儡版本:4.10.10
我们需要更多的信息来了解你的数据 发送到您的100个节点,以及为什么您认为这是一个数据问题, i、 一个需要在希拉而不是你的木偶中解决的问题 舱单 一个非常简单的例子可以让事情顺利进行: 直到昨天,所有节点都有相同的NTP服务器,
10.1.1.1
这是由类
ntp
设置的,该类从common
普通。yaml
---
:backends:
- yaml
:yaml:
:datadir:
:hierarchy:
- "nodes/pro/%{::trusted.certname}"
- "nodes/hom/%{::trusted.certname}"
- "nodes/%{::trusted.certname}"
- "%{::os.family}"
- common
:logger: puppet
---
classes:
- base
- ntp
ntp::server: '10.1.1.1'
ntp/init.pp
class ntp ($server) {
...
}
现在,今天,我想将100台服务器的IP改为10.1.1.99
,它们的主机名都以zmb-
我的问题是:如何在Hiera层次结构定义中使用正则表达式匹配(据我所知,也据我所知) 您需要首先创建一个自定义事实。例如,您可以编写:
Facter.add(:host_code) do
setcode do
Facter.value(:hostname).slice(0..2)
end
end
然后您可以添加一个级别:
:hierarchy:
- "nodes/%{::host_code}" # here
- "nodes/pro/%{::trusted.certname}"
- "nodes/hom/%{::trusted.certname}"
- "nodes/%{::trusted.certname}"
- "%{::os.family}"
- common
然后创建一个文件hieradata/nodes/zmb.yaml
当然,我会质疑基于主持人名字前三个字母的事实是否是精心设计的事实。这100个节点是什么导致它们拥有主机名的?这个问题的答案可能为您的新事实提供了正确的基础。在Hiera层次结构定义中没有办法使用正则表达式匹配(据我所知,也据我所知) 您需要首先创建一个自定义事实。例如,您可以编写:
Facter.add(:host_code) do
setcode do
Facter.value(:hostname).slice(0..2)
end
end
然后您可以添加一个级别:
:hierarchy:
- "nodes/%{::host_code}" # here
- "nodes/pro/%{::trusted.certname}"
- "nodes/hom/%{::trusted.certname}"
- "nodes/%{::trusted.certname}"
- "%{::os.family}"
- common
然后创建一个文件hieradata/nodes/zmb.yaml
当然,我会质疑基于主持人名字前三个字母的事实是否是精心设计的事实。这100个节点是什么导致它们拥有主机名的?该问题的答案可能为您提供了新事实的正确基础。我们需要更多信息,以了解您发送到100个节点的数据是什么,以及您为什么认为这是一个数据问题,也就是说,需要在Hiera而不是傀儡舱单中解决的问题。@Alexarvey编辑了问题我们需要更多信息,以了解您发送到100个节点的数据是什么,以及为什么您认为这是一个数据问题,也就是说,一个问题要在希拉而不是在你的木偶清单中解决。@Alexarvey编辑了这个问题你是100%正确的!我应该关注为什么它们被分组/前缀为
zmb-
。它们可能共享的不仅仅是名称,我必须更改的设置可以在其他地方配置。我得到了我来找的东西。感谢您的时间。基于主机名(定义为层次结构级别)的自定义事实无疑是最快/最安全的成功途径。当然也应该考虑使用健壮的角色定义和分组的建议,而且@RASG似乎认识到了这一点。你是100%正确的!我应该关注为什么它们被分组/前缀为zmb-
。它们可能共享的不仅仅是名称,我必须更改的设置可以在其他地方配置。我得到了我来找的东西。感谢您的时间。基于主机名(定义为层次结构级别)的自定义事实无疑是最快/最安全的成功途径。关于使用健壮的role
定义和分组的建议当然也应该考虑,而且@RASG似乎也认识到了这一点。