Repetitivo requerido para scripts operativos
RESUMEN Defina la plantilla para los scripts de operación.
Los scripts op 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 Op deben incluir la plantilla necesaria requerida para ese lenguaje de script, tanto para la funcionalidad básica del script, como para cualquier funcionalidad opcional utilizada dentro del script, como las funciones de extensión de Junos OS y las plantillas con nombre. En este tema se proporciona un modelo repetitivo estándar que se puede usar en scripts de operaciones XSLT, SLAX y Python.
Los scripts operativos 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 operativos
La plantilla de script op 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="/"> 9 <op-script-results> <!-- ... insert your code here ... --> 10 </op-script-results> 11 </xsl:template> <!-- ... insert additional template definitions here ... --> 12 </xsl:stylesheet>
La línea 1 es la instrucción de procesamiento (PI) del lenguaje de marcado extensible (XML), que marca este archivo como XML y especifica la versión de XML como 1.0. El IP XML, si está presente, debe ser el primer token sin comentarios en el 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"
En las líneas 3 a 6 se enumeran todas las asignaciones de espacio de nombres que se usan habitualmente en los scripts de operació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 (en el archivo /usr/libdata/cscript/import/junos.xsl). 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 </>
elemento. El <xsl:template match="/">
elemento es el elemento raíz y representa el nivel superior de la jerarquía XML. Todas las expresiones XPath del script deben comenzar en el nivel superior. Esto permite que la secuencia de comandos acceda a todas las posibles llamadas a procedimiento remoto (RPC) de protocolo Junos XML y Junos XML. Para obtener más información, vea Información general sobre XPath.
8 <xsl:template match="/">
Después del elemento tag <xsl:template match="/">
, las <op-script-results>
etiquetas contenedor y </op-script-results>
deben ser las etiquetas secundarias de nivel superior, como se muestra en las líneas 9 y 10.
9 <op-script-results> <!-- ... insert your code here ... --> 10 </op-script-results>
La línea 11 cierra la plantilla.
11 </xsl:template>
Entre la línea 11 y la línea 12, puede definir plantillas XSLT adicionales a las que se llama desde dentro de la <xsl:template match="/">
plantilla.
La línea 12 cierra la hoja de estilos y el script op.
12 </xsl:stylesheet>
Plantilla SLAX para scripts operativos
La plantilla de script op 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 / { <op-script-results> { /* * Insert your code here */ } }
Python Boilerplate para scripts operativos
Los scripts op de Python no tienen una plantilla requerida, pero deben importar cualquier objeto que se use en el script. Los scripts op de Python pueden importar lo siguiente:
Junos_Context
diccionario: contiene información sobre el entorno de ejecución de scripts.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 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.