Introducción a los Rulebooks
Los Rulebooks son el lenguaje de automatización basado en archivos de Clarive.
Cada aspecto funcional del sistema puede automatizarse con rulebooks, desde pipelines de CI/CD (usados para construir, probar y desplegar aplicaciones), hasta formularios, personalización de flujos de trabajo y dashboards.
Los Rulebooks son archivos que definen reglas. Las reglas son conjuntos de acciones que se
activan en ciertos eventos del sistema. Los eventos del sistema incluyen cosas como
build, deploy en pipelines de job, promoción y degradación de topics en un flujo de trabajo
y otros. Así que ampliamos el concepto de un evento para incluir cualquier lugar en el que pueda
enganchar código.
Dónde usar Rulebooks¶
Los Rulebooks pueden usarse en 2 lugares en Clarive:
.clarive.ymly otros archivos YAML basados en proyectos- en el REPL, para pruebas
Otro YAML más¶
Los rulebooks de Clarive están inspirados en los lenguajes informáticos usados para automatizar el trabajo de sistemas, desde Bash hasta Python. Pensamos que la automatización requiere un poco más que un simple lenguaje declarativo, por lo que los rulebooks pretenden ser un lenguaje imperativo completo de Turing basado en YAML, y no una estructura de datos rígida dispuesta en un lenguaje de marcado.
do: - foo = shell: git branch -a - echo: your branch is {{ foo.output }}
Sin embargo, somos conscientes de que crear otro lenguaje en un espacio de lenguajes informáticos ya diverso, tal vez incluso saturado, es un desafío. Es por eso que los rulebooks están destinados a ser código de pegamento para otros lenguajes.
Puede (y debe) escribir reglas minimalistas. Aunque las reglas pueden tener mucha lógica.
Características clave de Rulebook¶
- bucles (
for) y condicionales (if) - variables
- enviar e importar archivos
- leer/escribir archivos de configuración
- ejecutar comandos de sistema locales y remotos
El Entorno¶
¿Dónde se ejecutan los rulebooks?
Clarive es un sistema centralizado. Todos los rulebooks se ejecutan desde el servidor central. Los Rulebooks no se envían a workers, agentes o nodos en general. Están destinados a ejecutarse desde el servidor central de Clarive (de hecho, desde donde está instalado el Dispatcher).
Dependiendo del evento que se active, el entorno será una de dos posibilidades:
- un directorio de job de pipeline desechable, creado para cada job que ejecuta el sistema
- un directorio de workspace estable
Todos los archivos necesarios para su .clarive.yml deben estar dentro de repositorios git
administrados por Clarive.
Ops¶
Ops es una abreviatura de operations. "Ops" es como se llaman las instrucciones del lenguaje de reglas de Clarive. Aquí hay algunos ejemplos de ops de reglas:
Ops de lenguaje o control:
var- sección de asignación/declaración de variablesdef- defina sus propios ops usando YAMLimport- importa módulos como ops en su rulebookimport_vars- importa variables del alcance de llamada superiorif- condicionalfor- bucle sobre contenido de variables.try-catch- capturar errores
Ops de servicio:
ship- enviar un archivo a un servidorfetch- traer un archivo de vuelta desde un servidorparse- analizar una plantilla de configuración de cadena o archivodump- volcar una estructura de datosprint- imprimir cadena o estructura de datosecho- imprimir cadena seguida de una nueva líneaemail- enviar un correo electrónico a usuarios o direccionesslack_post- publicar un mensaje en slack- y muchos, muchos más...
En realidad, la lista de ops instalados en su sistema puede variar según los plugins que pueda haber instalado. Consulte la referencia de la api del rulebook para la lista oficial de ops (que no incluye ops de plugins).
Para una referencia completa para su instalación de Clarive abra el documento de ayuda en su servidor en:
https://yourclariveserver/r/help?path=/rulebook/rulebook-api
Características del lenguaje YAML¶
Los Rulebooks son YAML válido y perfectamente legal, o al menos según lo que comúnmente se establece como legal. El analizador YAML de Clarive no realiza ningún análisis especial, que está basado en LibYAML.
Variables y plantillas¶
Los Rulebooks pueden hacer uso de un sistema de reemplazo de variables y plantillas basado en ClaJS, un intérprete JavaScript muy rápido que viene incluido con Clarive.
${myvar}- análisis simple de variables{{ myvar }}- análisis de variables JavaScript
Las plantillas JavaScript con lo que se conoce como handlebars ({{ .. }})
son una herramienta muy poderosa para tratar con datos complejos.
Llamar a su lenguaje favorito¶
Uno de los aspectos más útiles de los rulebooks es que pueden convertir cualquier programa en un op.
Hola Mundo¶
Para probar el lenguaje de rulebook, diríjase al REPL.
do: - echo: hello world