Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Plantilla requerida para scripts SNMP

Los scripts SNMP de Junos OS se pueden escribir en Transformaciones de lenguaje de hoja de estilos extensible (XSLT), Lenguaje de hoja de estilos Alternative syntaX (SLAX) o Python. Los scripts SNMP 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 en el 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 SNMP XSLT, SLAX y Python.

Plantilla SLAX para scripts SNMP

La plantilla de script SNMP de SLAX es la siguiente:

Nota:

Los scripts SNMP 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.

La línea 1 especifica la versión de SLAX como 1.2.

Las líneas 2 a 6 enumeran todas las asignaciones de espacio de nombres que se usan habitualmente en los scripts SNMP. No todos estos prefijos se utilizan en este ejemplo. Enumerar todas las asignaciones de espacio de nombres evita errores si las asignaciones se usan en versiones posteriores del script. Estas asignaciones de espacio de nombres permiten utilizar funciones de extensión y plantillas con nombre en los scripts. Estas funciones de extensión y plantillas con nombre se describen en Descripción de las funciones de extensión en scripts de automatización de Junos OS y Descripción de plantillas con nombre en scripts de automatización de Junos OS.

Las líneas 5 y 6 tienen asignaciones de espacio de nombres EXSLT. Las funciones de extensión SNMP se definen en el espacio de nombres con el http://exslt.org/functions URI asociado. La línea 6 registra el espacio de nombres de extensión snmp con el espacio de nombres de funciones EXSLT, lo que le permite definir funciones personalizadas utilizando snmp como un prefijo dentro de su script SLAX. Para obtener más información acerca del espacio de nombres EXSLT, consulte http://exslt.org/func/index.html.

La línea 7 define una plantilla sin nombre, match /, que representa el nivel superior de la jerarquía de configuración. Todas las expresiones de lenguaje de ruta XML (XPath) del script deben comenzar en el elemento de nivel superior de la jerarquía de configuración. 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.

Después del elemento de match / etiqueta, la <snmp-script-results> etiqueta de contenedor debe ser la etiqueta secundaria de nivel superior, como se muestra en la línea 8. El valor de este contenedor se devuelve al solicitante OID.

Las líneas 9 y 10 definen variables basadas en los elementos correspondientes que puede usar en el código para determinar si la acción es get o get-next, y el valor del OID.

Entre la línea 10 y la línea 11, puede definir código adicional que incluya plantillas XSLT a las que se llama desde dentro de la match / plantilla.

Las líneas 11 a 13 definen los valores devueltos por el script SNMP al solicitante OID. El valor de <snmp-oid> se toma del valor de entrada de snmp-script-input/snmp-oid. Para la característica de script SNMP, se admiten los siguientes tipos de identificador de objeto para <snmp-type> :

  • Counter32

  • Counter64

  • Integer32

  • Unsigned32

  • Octet String

Establezca el <snmp-value> en el valor devuelto del script.

Plantilla XSLT para scripts SNMP

La plantilla XSLT es:

Plantilla de Python para scripts SNMP

Los scripts SNMP de Python no tienen una plantilla requerida, pero deben importar cualquier objeto que se use en el script. Los scripts SNMP de Python deben incluir la import jcs instrucción para poder utilizar las funciones , get_snmp_oid()y emit_snmp_attributes() que get_snmp_action()recuperan los valores de acción y OID pasados al script y devuelven los datos para el objeto MIB solicitado.

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.