Caldera necesaria para secuencias de comandos operativos
RESUMEN Defina la placa de caldera para scripts operativos.
Las secuencias de comandos op de Junos OS se pueden escribir en transformaciones de lenguaje de hoja de estilo extensible (XSLT), syntaX alternativa de lenguaje de hoja de estilo (SLAX) o Python. Los scripts operativos deben incluir la caldera necesaria necesaria para ese lenguaje de secuencias de comandos tanto para la funcionalidad básica de la secuencia de comandos como para cualquier funcionalidad opcional utilizada dentro de la secuencia de comandos, como las funciones de extensión de Junos OS y las plantillas con nombre. En este tema, se proporciona una placa de caldera estándar que se puede usar en scripts operativos de XSLT, SLAX y Python.
Las secuencias de comandos op 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 de ángulo encierran el nombre de un elemento de etiqueta de protocolo XML de Junos o Junos XML en sus etiquetas de apertura y cierre. Esta es una convención XML y los corchetes son una parte necesaria del nombre completo del elemento de etiqueta. No se deben confundir con los corchetes de ángulo que se utilizan en la documentación para indicar partes opcionales de las cadenas de comando de la CLI de Junos OS.
Caldera de XSLT para scripts operativos
La secuencia de comandos de operació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="/"> 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 de lenguaje de marcado extensible (XML), que marca este archivo como XML y especifica la versión de XML como 1.0. La PI XML, si está presente, debe ser el primer token sin comentarios en el archivo de secuencia de comandos.
1 <?xml version="1.0"?>
La línea 2 abre la hoja de estilo y especifica la versión de XSLT como 1.0.
2 <xsl:stylesheet version="1.0"
Las líneas del 3 al 6 enumeran todas las asignaciones de espacio de nombres que se usan comúnmente en las secuencias de comandos de operación. No todos estos prefijos se utilizan en este ejemplo, pero no es un error enumerar las 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 utilizan en versiones posteriores de la secuencia de comandos.
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 envía como parte de Junos OS (en el archivo /usr/libdata/cscript/import/junos.xsl). El archivo junos.xsl contiene un conjunto de plantillas denominadas que puede llamar en sus scripts. Estas plantillas denominadas se describen en Descripción de plantillas denominadas 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 de la secuencia de comandos deben comenzar en el nivel superior. Esto permite que la secuencia de comandos acceda a todas las llamadas de procedimiento remoto (RPC) de protocolos XML y Junos XML posibles. Para obtener más información, consulte Descripción general de XPath.
8 <xsl:template match="/">
Después del <xsl:template match="/">
elemento tag, las <op-script-results>
etiquetas y </op-script-results>
contenedor 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 las líneas 11 y 12, puede definir plantillas XSLT adicionales a las que se llama desde la <xsl:template match="/">
plantilla.
La línea 12 cierra la hoja de estilo y la secuencia de comandos op.
12 </xsl:stylesheet>
Caldera SLAX para scripts operativos
La secuencia de comandos op SLAX correspondiente es la siguiente:
version 1.0; 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 */ } }
Caldera de Python para scripts operativos
Las secuencias de comandos op de Python no tienen una placa de caldera necesaria, pero deben importar cualquier objeto que se utilice en la secuencia de comandos. Los scripts operativos de Python pueden importar lo siguiente:
Junos_Context
diccionario: contiene información sobre el entorno de ejecución de secuencias de comandos.jcs
biblioteca: permite que la secuencia de comandos utilice las funciones de extensión de Junos OS y la funcionalidad de plantilla denominada Junos OS en la secuencia de comandos.jnpr.junos
módulo y clases: permite que el script use 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 inicio de la secuencia de comandos. Sin embargo, el programa seguirá funcionando correctamente si uno está presente.