Para aquellos que no lo conocen, podemos decir que Facter es una librería multiplataforma que sirve para obtener información acerca de los nodos gestionados mediante Puppet.
Facter incorpora de serie un conjunto de facts y nos permite añadir nuevos facts creados por nosotros. El problema es que, aunque sea más o menos sencillo crear pequeños facts, sobre todo basándonos en el shell de linux, es necesario escribir dichos facts en Ruby.
La versión 1.7 de Facter incorpora una importante colección de nuevos facts, pero, además, nos ofrece la posibilidad de crear facts en los que definamos "variables" de una manera sencilla.
Para utilizar estos "external facts", crearemos un directorio, si no lo tenemos creado aún:
# mkdir /etc/facter/facts.d
En este directorio podemos crear:
- Ficheros de texto (.txt)
- Ficheros YAML (.yaml)
- Ficheros JSON (.json)
Dependiendo del tipo de fichero que creemos, tendremos que usar una sintaxis predeterminada.
Por ejemplo, si decidimos usar un fichero de texto para almacenar facts, utilizaremos la siguiente sintaxis:
# /etc/facter/facts.d# cat config.txt
uso=servidor
aula=terminales
Facter examinará los ficheros almacenados dentro del directorio /etc/facter/facts.d y convertirá los pares que lea de cada fichero en variables facter.
Si ahora ejecutamos:
# facter | grep -e uso -e aula
Comprobaremos que existen los dos nuevos facts:
aula => terminales
uso => servidor
De este modo se hace muy sencillo definir nuevos facter en los que asignamos valor a una variable.
Si en lugar de definir los facts en un fichero de texto, queréis hacerlo en ficheros JSON, la sintaxis es diferente:
{
"uso": "servidor",
"aula": "terminales"
}
Y si quisiéramos definir los facts en un fichero YAML, ésta sería la sintaxis:
# cat /etc/facter/facts.d/config.yaml
{
uso: servidor
aula: terminales
}
A gusto del consumidor...
0 comentarios:
Publicar un comentario