PUPPET HIERA - JERARQUIA

Describimos la jerarquía utilizada por Hiera para la búsqueda de información, como podemos crear y configurar a nuestro gustos los diferentes archivos utilizados.

Cargando video...

NOTA: Solo puedes ver una versión limitada del video a baja resolución, si quieres ver la versión completa por favor regístrate y obtén alguno de nuestros planes!

Descripción del Vídeo

Hiera utiliza una jerarquía ordenada para buscar información. Esto te permite obtener una gran cantidad de información común y sustituirla en cantidades más pequeñas de lo que sea necesario.

Primero deberemos crear el fichero /etc/puppet/hiera.yaml dónde definiremos la jerarquía de ficheros (pero los más concretos, por lo tanto los más prioritarios)
---
:backends:
  - yaml
:yaml:
  :datadir: /etc/puppet/hieradata
:hierarchy:
  - "node/%{::fqdn}"
  - common


Creamos los directorios definidos (el :datadir: y el de los nodos en :hierarchy:):
mkdir -p /etc/puppet/hieradata/node


En el site.pp (/etc/puppet/manifests/site.pp) únicamente vamos a necesitar definir un include en función de una variable, generalmente se usa classes:
hiera_include('classes')
En el fichero /etc/puppet/hieradata/common.yaml vamos a definir la configuración general de los nodos, por ejemplo:
---
classes:
  - sysctl
  - logrotate
logrotate::compress: true


Para poder hacer las pruebas sin tener que lanzar agentes de puppet en los clientes podemos usar el comando hiera por linea de comandos, simplemente deberemos crear un softlink del /etc/hiera.yaml a nuestro hiera.yaml:
ln -sf /etc/puppet/hiera.yaml /etc/hiera.yaml


Mediante hiera classes veremos las clases que importamos para un determinado host, por ejemplo:
# hiera classes ::fqdn=node0.systemadmin.es
["sysctl", "logrotate"]


Podemos consultar también variables:
# hiera logrotate::compress ::fqdn=node0.systemadmin.es
true


Podemos crear un fichero yaml para un host en concreto y cambiar el valor de la variable, por ejemplo /etc/puppet/hieradata/node/node1.systemadmin.es.yaml
---
logrotate::compress: false


Lanzando el mismo comando cambiando el fqdn por éste veremos el cambio:
# hiera logrotate::compress ::fqdn=node1.systemadmin.es
false

Rating

Global

Ver video en playlist

comments powered by Disqus