Crear una macro de script de confirmación para leer la sintaxis personalizada y generar instrucciones de configuración relacionadas
Las macros de script de confirmación permiten expandir la sintaxis de configuración personalizada en instrucciones de configuración estándar de Junos OS. Por sí misma, la sintaxis personalizada de una apply-macro instrucción no tiene ningún impacto operativo en el dispositivo. Para dar significado a la sintaxis, debe haber una secuencia de comandos commit correspondiente que utilice la sintaxis como datos para generar instrucciones Junos OS relacionadas.
Para escribir un script de este tipo:
- Al principio del script, incluya la plantilla de script de confirmación adecuada de Required Boilerplate for Commit Scripts. Se reproduce aquí para mayor comodidad:
Plantilla XSLT
SLAX Boilerplate<?xml version="1.0" standalone="yes"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:junos="http://xml.juniper.net/junos/*/junos" xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> <xsl:import href="../import/junos.xsl"/> <xsl:template match="configuration"> <!-- ... insert your code here ... --> </xsl:template> </xsl:stylesheet>
Plantilla deversion 1.2; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; import "../import/junos.xsl"; match configuration { /* * insert your code here */ } Pythonfrom junos import Junos_Configuration import jcs if __name__ == '__main__': # insert your code here
- En la posición indicada por el comentario "insert your code here," incluya instrucciones de programación que inspeccionen la configuración de la
apply-macroinstrucción en un nivel de jerarquía especificado y cambie la configuración para incluir la sintaxis estándar de Junos OS.Para obtener un ejemplo que utiliza ambos tipos de instrucciones e incluye un análisis línea por línea de la sintaxis XSLT, vea Ejemplo: Crear sintaxis de configuración personalizada con macros de script de confirmación.
- Guarde el script con un nombre significativo.
- Copie el script en el directorio /var/db/scripts/commit del disco duro o en el directorio /config/scripts/commit de la unidad flash.
Para obtener información acerca de cómo configurar la ubicación de almacenamiento para los scripts de confirmación, consulte Almacenar y habilitar scripts de automatización de Junos y Almacenar scripts en la memoria flash.
- Habilite el script configurando la
file filenameinstrucción en el nivel de[edit system scripts commit]jerarquía.[edit system scripts] user@host# set commit file filename
- Si la secuencia de comandos genera cambios transitorios, configure la
allow-transientsinstrucción.Configure la instrucción en el nivel de
[edit system scripts commit]jerarquía para permitir que todos los scripts de confirmación realicen cambios transitorios.[edit system scripts] user@host# set commit allow-transients
Como alternativa, en dispositivos y versiones compatibles, configure la instrucción en el nivel de
[edit system scripts commit file filename]jerarquía para permitir que solo el script individual realice cambios transitorios.[edit system scripts] user@host# set commit file filename allow-transients
- Si el script está escrito en Python, habilite la ejecución de scripts de Python sin firmar.
[edit system scripts] user@host# set language (python | python3)
- Confirme la configuración.
[edit system scripts] user@host# commit and-quit
Si todos los scripts de confirmación se ejecutan sin errores, los cambios persistentes se cargan en la configuración candidata y los cambios transitorios se cargan en la configuración de retirada, pero no en la configuración candidata. A continuación, el proceso de confirmación continúa validando la configuración y propagando los cambios a los procesos afectados en el dispositivo que ejecuta Junos OS.