0

我们的基础架构中有 3 个不同的数据中心。我正在使用 puppetlabs/ntp 模块和 saz/resolv_conf 并使用 hiera_include('classes') 将这两个模块安装到添加到 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

所以我在 Datacenter 3 中的 puppet 代理获取了所有 3 个数据中心的 NTP 服务器和 DNS 服务器。

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

就像我的木偶代理在数据中心 1 中一样,那么使用数据中心 1 中的 NTP 和 DNS 服务器。我如何在我的 common.yaml 中定义它?

4

1 回答 1

2

我建议更改您的层次结构,例如通过在您的 puppet 代理上定义自定义事实。因此,您定义了一些自定义事实,假设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
于 2015-09-12T08:50:08.837 回答