Plantilla requerida para los scripts de confirmación
RESUMEN Defina la plantilla para los scripts de confirmación.
Los scripts de confirmación de Junos OS se pueden escribir en transformaciones de lenguaje de hoja de estilos extensible (XSLT), Stylesheet Language Alternative syntaX (SLAX) o Python. Los scripts de confirmación deben incluir la plantilla necesaria para ese lenguaje de script, tanto para la funcionalidad básica del script, como para cualquier funcionalidad opcional utilizada en el script, como las funciones de extensión de Junos OS y las plantillas con nombre. En este tema se proporciona una plantilla estándar que se puede usar en scripts de confirmación XSLT, SLAX y Python.
Los scripts de confirmación SLAX y XSLT se basan en elementos de etiqueta de protocolo Junos XML y Junos XML. Al igual que todos los elementos XML, los corchetes angulares encierran el nombre de un elemento de etiqueta de protocolo Junos XML o Junos XML en sus etiquetas de apertura y cierre. Se trata de una convención XML y los corchetes son una parte obligatoria del nombre completo del elemento de etiqueta. No deben confundirse con los corchetes angulares utilizados en la documentación para indicar partes opcionales de las cadenas de comandos de la CLI de Junos OS.
Plantilla XSLT para scripts de confirmación
La plantilla de script de confirmación XSLT es la siguiente:
1 <?xml version="1.0" standalone="yes"?> 2 <xsl:stylesheet version="1.0" 3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:junos="http://xml.juniper.net/junos/*/junos" 5 xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" 6 xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> 7 <xsl:import href="../import/junos.xsl"/> 8 <xsl:template match="configuration"> <!-- ... insert your code here ... --> 9 </xsl:template> 10 </xsl:stylesheet>
La línea 1 es la instrucción de procesamiento (PI) del lenguaje de marcado extensible (XML). Este PI especifica que el código se escribe en XML utilizando la versión 1.0. El IP XML, si está presente, debe ser el primer token sin comentarios del archivo de script.
1 <?xml version="1.0"?>
La línea 2 abre la hoja de estilos y especifica la versión XSLT como 1.0.
2 <xsl:stylesheet version="1.0"
Las líneas 3 a 6 enumeran todas las asignaciones de espacio de nombres que se usan habitualmente en los scripts de confirmación. No todos estos prefijos se usan en este ejemplo, pero no es un error enumerar asignaciones de espacio de nombres a las que no se hace referencia. Enumerar todas las asignaciones de espacio de nombres evita errores si las asignaciones se usan en versiones posteriores del script.
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 4 xmlns:junos="http://xml.juniper.net/junos/*/junos" 5 xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" 6 xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0">
La línea 7 es una instrucción de importación XSLT. Carga las plantillas y variables del archivo al que se hace referencia como .. /import/junos.xsl, que se incluye como parte de Junos OS. El archivo junos.xsl contiene un conjunto de plantillas con nombre a las que puede llamar en los scripts. Estas plantillas con nombre se describen en Descripción de las plantillas con nombre en scripts de automatización de Junos OS.
7 <xsl:import href="../import/junos.xsl"/>
La línea 8 define una plantilla que coincide con el <configuration>
elemento, que es el nodo seleccionado por la <xsl:template match="/">
plantilla, contenido en el archivo de importación junos.xsl . El <xsl:template match="configuration">
elemento permite excluir el /configuration/
elemento raíz de todas las expresiones XPath del script y comenzar las expresiones XPath con el nivel superior de jerarquía de Junos OS. Para obtener más información, vea Información general sobre XPath.
8 <xsl:template match="configuration">
Agregue su código entre las líneas 8 y 9.
La línea 9 cierra la plantilla.
9 </xsl:template>
La línea 10 cierra la hoja de estilos y el script de confirmación.
10 </xsl:stylesheet>
Plantilla SLAX para scripts de confirmación
La plantilla de script de confirmación de SLAX es la siguiente:
version 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 */ }
Plantilla de Python para scripts de confirmación
Los scripts de confirmación de Python no tienen una plantilla requerida, pero deben importar cualquier objeto que se use en el script. Los scripts de confirmación de Python pueden importar lo siguiente:
Junos_Context
diccionario: contiene información sobre el entorno de ejecución de scripts.Junos_Configuration
object: contiene la configuración del candidato posterior a la herencia.jcs
Biblioteca: permite que la secuencia de comandos utilice las funciones de extensión de Junos OS y la funcionalidad de plantilla con nombre de Junos OS en la secuencia de comandos.jnpr.junos
módulo y clases: permite que el script utilice Junos PyEZ.
Por ejemplo:
from junos import Junos_Context from junos import Junos_Configuration from jnpr.junos import Device import jcs if __name__ == '__main__':
Los scripts de automatización de Python no necesitan incluir una línea de directiva de intérprete (#!/usr/bin/env python
) al principio del script. Sin embargo, el programa seguirá ejecutándose correctamente si hay uno presente.