systemadmin.es > Gestión de cofiguración > puppet: Configuración inicial de hiera

puppet: Configuración inicial de hiera

Mediante hiera podemos configurar mucho más fácilmente los diferentes nodos gestionados por puppet. Vamos a ver cómo realizar la configuración inicial

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

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>