El lenguaje de configuración pan permite definir la información de configuración de la máquina y un esquema asociado mediante una sintaxis sencilla y comprensible para el usuario. Un compilador del lenguaje pan transforma la información de configuración contenida en un conjunto de plantillas pan a un formato XML o JSON legible por máquina.
El lenguaje pan se utiliza en el conjunto de herramientas Quattor para definir la configuración deseada para una o más máquinas. Se trata principalmente de un lenguaje declarativo donde los elementos de una estructura jerárquica se configuran con valores específicos. La sintaxis de pan es intuitiva y bastante sencilla, y permite a los administradores de sistemas establecer simultáneamente valores de configuración, definir un esquema de configuración general y validar la configuración final con respecto a dicho esquema.
Implementación
El compilador panc sirve como implementación de referencia de facto del lenguaje y está implementado en Java , aunque actualmente no es posible ejecutar el compilador con OpenJDK .
Una configuración se define mediante un conjunto de archivos, denominados plantillas, escritos en el lenguaje pan. Estas plantillas definen simultáneamente los parámetros de configuración, el esquema de configuración y las funciones de validación. Cada plantilla tiene un nombre y se encuentra en un archivo con el mismo nombre. La sintaxis de un archivo de plantilla es sencilla:
[ objeto | declaración | único | estructura ] plantilla plantilla -nombre ; [ instrucción … ]Estos archivos pueden contener comentarios que comienzan con el signo de almohadilla ('#') y terminan con la siguiente línea nueva o el final del archivo.
Tipos
En el lenguaje pan existen cinco tipos primitivos y atómicos:
- booleano
- largo
- doble
- cadena
- enlace
Existen dos tipos de colecciones primitivas:
- lista (una lista/matriz ordenada de elementos)
- nlist (Una lista con nombre asocia una clave de cadena con un valor, de forma similar a los hashes, diccionarios o matrices asociativas).
Los usuarios pueden crear nuevos tipos a partir de los tipos primitivos, con funciones de validación opcionales para aplicar restricciones específicas a campos concretos.
Tipos de plantillas
Existen cinco tipos diferentes de plantillas que se identifican mediante el modificador de plantilla:
Plantillas ordinarias
Una plantilla ordinaria no utiliza ningún modificador de plantilla en la declaración. Estas plantillas pueden contener cualquier instrucción `pan`, pero dichas instrucciones deben operar únicamente sobre rutas absolutas.
Plantillas de objetos
Las plantillas de objetos pueden considerarse la base de cada perfil de configuración XML generado. El compilador pan generará un perfil XML para cada plantilla de objeto procesada. En todos los demás aspectos, son iguales a las plantillas ordinarias.
Plantillas de declaración
Estas plantillas solo pueden contener instrucciones de pan que no modifiquen el perfil de la máquina. Una plantilla de declaración se ejecutará solo una vez por cada plantilla de objeto procesado, independientemente de cuántas veces se incluya.
Plantillas únicas
Una plantilla definida con el modificador único se comporta como una plantilla ordinaria, excepto que solo se incluirá una vez por cada plantilla de objeto procesada.
Plantillas de estructura
Las plantillas de estructura son una alternativa práctica para crear listas de nombres y se utilizan mediante la función `create`. Una plantilla declarada con el modificador `structure` solo puede contener instrucciones `include` y de asignación que operen sobre rutas relativas. Las instrucciones `include` solo pueden hacer referencia a otras plantillas de estructura.
Enlaces externos
- compilador de lenguaje de configuración de pan
- documentación del compilador de lenguaje pan
- Documentación antigua de la sartén y archivos del compilador
- Software libre multiplataforma
- lenguajes de programación declarativos