Puppet代理应该根据位置选择DNS和NTP服务器



我们的基础设施中有3个不同的数据中心。我正在使用puppetlabs/ntp模块和saz/resolv_conf,并使用hiera_include('classes')将这2个模块安装到添加到puppet的所有代理中。

现在我的common。Yaml文件看起来像这样:

---
classes: ['ntp', 'resolv_conf']
ntp::servers:
        - datacenter1 NTP server
        - datacenter2 NTP server
        - datacenter3 NTP server
resolv_conf::nameservers:
        - datacenter1 DNS server
        - datacenter2 DNS server
        - datacenter3 DNS server

所以我在数据中心3中的傀儡代理获得所有3个数据中心的NTP服务器和DNS服务器。

但是我希望它只根据它的位置选择NTP服务器和DNS服务器。

如果我的傀儡代理在数据中心1,那么使用数据中心1的NTP和DNS服务器。我怎么用我的共同语言来定义。yaml吗?

我建议更改您的层次结构,例如通过在傀儡代理上定义自定义事实。你可以定义一些自定义事实,比如data_center然后修改你的层次结构例如:

:hierarchy:
  - "%{::data_center}"
  - common

data_center的值应该取决于您的agent所在的位置,例如,假设对于数据中心N中的代理,该值为datacenter_n。最后,在puppet master上创建文件datacenter_n.yaml,内容为:

ntp::servers:
    - datacenterN NTP server
resolv_conf::nameservers:
    - datacenterN DNS server

相关内容

  • 没有找到相关文章

最新更新