官术网_书友最值得收藏!

Using Hiera as an ENC

Hiera provides an interesting function called hiera_include, which allows users to include all the classes defined for a given key.

This, in practice, exploits the Hiera flexibility to provide classes to nodes as an External Node Classifier does.

It's enough to place the following line in our site.pp file at /etc/puppet/manifests/:

hiera_include('classes')

Define in our data sources a classes key with an array of the classes to be included.

In a YAML-based backend, it would look like the following:

---
classes:
  - apache
  - mysql
  - php

This is exactly the same as having some declarations in our site.pp as follows:

include apache
include mysql
include php

The classes key (can have any name, but classes is a standard de facto) contains an array that is merged along the hierarchy. So we can define in a common.yaml file the classes that we want to include in all our nodes, and include specific classes for specific servers, adding them to the different layers of our hierarchy.

Along with the hiera-file backend, this function can help us have a fully Hiera-driven configuration on our Puppet architecture. It is one of the many options we have that will help us glue together the pieces that define and build our infrastructure.

主站蜘蛛池模板: 榆中县| 永和县| 甘孜| 沁源县| 莱西市| 石门县| 邵武市| 化州市| 宝山区| 方山县| 炉霍县| 德兴市| 金山区| 镇康县| 诸暨市| 临夏县| 郸城县| 天台县| 丹棱县| 邮箱| 慈溪市| 永胜县| 吕梁市| 齐齐哈尔市| 安溪县| 道孚县| 铜川市| 霍城县| 寻甸| 岢岚县| 宁武县| 海淀区| 祥云县| 永川市| 裕民县| 黄大仙区| 河西区| 景洪市| 通河县| 巍山| 南溪县|