Hiera: Escribiendo fuentes de información

Temas a desarrollar YAML Sumario Formato de la información Ejemplo JSON Sumario Formato de la información Ejemplo Puppet Hiera puede usar diferentes backends de información, incluyendo dos backends integrados y otros opcionales. Cada backend usa un formato diferente para sus fuentes de información. Esta página describe los backends integrados yaml

Recent Posts

Temas a desarrollar

  1. YAML
    • Sumario
    • Formato de la información
    • Ejemplo
  2. JSON
    • Sumario
    • Formato de la información
    • Ejemplo
  3. Puppet

Hiera puede usar diferentes backends de información, incluyendo dos backends integrados y otros opcionales. Cada backend usa un formato diferente para sus fuentes de información.

Esta página describe los backends integrados yaml y json, que al igual que el backend de puppet, incluido con la integración de Hiera en Puppet. Para backends opcionales, mira la documentación de backends.

YAML

Sumario

El backend yaml busca fuentes de información en disco, en el directorio especificado en su opción de configuración :datadir). Espera que cada fuente de información sea un archivo de texto que contenga información en formato YAML válido, con extensión .yaml. No está permitida ninguna otra extensión de nombre de archivo, por ejemplo: .yml.

Formato de la información

Mira yaml.org y El manual básico de “YAML para Ruby” para una descripción completa del formato YAML válido.

El objeto raíz (de nivel superior) de cada fuente de información YAML debe ser un mapeo YAML (hash). Hiera tratará sus claves de nivel superior como piezas de información disponible en la fuente de información. El valor para cada clave puede ser cualquiera de los tipos de información descritos a continuación:

Los tipos de información de Hiera se asignan a los tipos de datos YAML nativos de la siguiente manera:

Hiera YAML
Hash Mapeo (Mapping)
Array Secuencia (Sequence)
String Escalar citado o Escalar no citado no-booleano
Número Entero o flotante
Booleano Booleano (nota: incluye on y offyes y no,  además de true y  false)

Cualquier string puede incluir cualquier número de símbolo de interpolación variable

Ejemplo

---
# array
apache-packages:
    - apache2
    - apache2-common
    - apache2-utils

# string
apache-service: apache2

# variable de facter interpolada
hosts_entry: sandbox.%{fqdn}

# hash
sshd_settings: 
    root_allowed: "no"
    password_allowed: "yes"

# notación alternativa de hash
sshd_settings: {root_allowed: "no", password_allowed: "yes"}

# para devolver "true" o "false"
sshd_settings: {root_allowed: no, password_allowed: yes}

JSON

Sumario

El backend json busca fuentes de información en disco, en el directorio especificado en su opción de configuración :datadir. Espera que cada fuente de información sea un archivo de texto que contenga información en JSON válida, con extensión .json. No está permitida ninguna otra extensión de nombre de archivo.

Formato de información

Mira las la guía de especificaciones para una descripción completa del formato JSON válido

El objetivo principal de cada fuente de información JSON debe ser un objeto JSON (hash). Hiera tratará estas claves de nivel superior como piezas de información disponible en la fuente de información. El valor para cada clave puede ser cualquiera de los tipos de información descritos a continuación:

Hiera JSON
Hash Objeto
Array Array
String String
Número Número
Booleano verdadero / falso

Cualquier string puede incluir cualquier número de símbolos de interpolación variables.

Ejemplo

{   
"apache-packages" : [
"apache2",
"apache2-common",
"apache2-utils"
],

"hosts_entry" :  "sandbox.%{fqdn}",

"sshd_settings" : {
                    "root_allowed" : "no", 
                    "password_allowed" : "no"
                  }
}

Puppet

Próximamente.