Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción de scripts de automatización de Python para dispositivos Junos

Descripción general de scripts de Python

Como alternativa a SLAX y XSLT, puede crear y ejecutar scripts de Python en dispositivos Junos que admitan el paquete de extensiones de Python en la imagen de software. Python es un lenguaje práctico y rico en funciones con un amplio soporte de biblioteca que le permite crear scripts personalizados. La tabla 1 describe las versiones de Python disponibles en dispositivos Junos y señala la versión en la que se agregó o eliminó la compatibilidad con esa versión para ciertos tipos de scripts.

Tabla 1: Versiones de Python en dispositivos que ejecutan Junos OS

Versión de Python

Lanzamiento

Cambio

Tipos de secuencias de comandos afectadas

Python 2.7.x

Junos OS versión 16.1R1 y posteriores

Soporte agregado

Secuencias de comandos commit, event, op y SNMP

Scripts del Kit de herramientas de extensión (JET) de Juniper

Secuencias de comandos de traducción y acción YANG

Junos OS versión 20.2R1 y posteriores

Soporte eliminado

Secuencias de comandos de traducción y acción YANG

Junos OS versión 21.1R1 y posteriores

Soporte eliminado

Secuencias de comandos commit, event, op y SNMP

Scripts del Kit de herramientas de extensión (JET) de Juniper

Junos OS versión Evolved 22.3R1 y posteriores

Soporte eliminado

Secuencias de comandos commit, event, op y SNMP

Scripts del Kit de herramientas de extensión (JET) de Juniper

Secuencias de comandos de traducción y acción YANG

Python 3.x

Junos OS versión 19.4R1 y posteriores

Soporte agregado

Secuencias de comandos commit, event, op y SNMP

Junos OS versión 20.2R1 y posteriores

Soporte agregado

Scripts del Kit de herramientas de extensión (JET) de Juniper

Secuencias de comandos de traducción y acción YANG

Junos OS Evolved versión 21.1R1 y posteriores

Soporte agregado

Consulte Explorador de funciones para obtener plataformas compatibles.

Secuencias de comandos commit, event, op y SNMP

Scripts del Kit de herramientas de extensión (JET) de Juniper

Secuencias de comandos de traducción y acción YANG

Nota:

La fecha de fin de vida y fin de soporte de Python 2.7 fue el 1 de enero de 2020. La ruta de actualización oficial para Python 2.7 es a Python 3. Como la compatibilidad con Python 3 se agrega a dispositivos que ejecutan Junos OS para los diferentes tipos de scripts de onbox, recomendamos que migre los tipos de secuencias de comandos compatibles de Python 2 a Python 3.

Los scripts de Python pueden aprovechar todas las características y construcciones en el lenguaje Python, lo que proporciona flexibilidad sobre SLAX y XSLT, y le permite realizar operaciones difíciles o imposibles de realizar en SLAX y XSLT. SLAX y XSLT están diseñados para procesar datos XML, pero Python es adecuado para procesar cualquier formato. Python admite una amplia lista de tipos de datos, incluyendo listas, diccionarios, conjuntos y tuplas, y muchas variables de Python son mutables, a diferencia de la mayoría de las variables SLAX y XSLT. El control de bucles está limitado en scripts SLAX y XSLT, pero los scripts de Python pueden utilizar instrucciones como break y continue para controlar con precisión el comportamiento del bucle. Python también tiene una amplia compatibilidad con las operaciones de archivo, y puede invocar el depurador de Python estándar en la línea de comandos para depurar scripts operativos de Python.

Además, Junos OS admite lo siguiente en scripts de Python:

  • Biblioteca Junos PyEZ : simplifica la ejecución de RPCs y la realización de tareas operativas y de configuración en dispositivos que ejecutan Junos OS.

  • lxml biblioteca: simplifica el manejo de XPath.

  • Biblioteca Jinja2: motor de plantillas que le permite generar contenido a partir de plantillas predefinidas, lo que puede ser útil para generar datos de configuración de Junos OS.

  • IPv6: a partir de Junos OS versión 19.3R1, los dispositivos que ejecutan Junos OS con soporte freeBSD actualizado mediante IPv6 en scripts de automatización de Python. Para obtener más información, consulte Compatibilidad con IPv6 en scripts de automatización de Python.

  • Instancias de enrutamiento no predeterminadas: a partir de Junos OS versión 19.3R1, los scripts de Python en dispositivos compatibles pueden usar la función de extensión set_routing_instance() para conectarse a un dispositivo remoto mediante una instancia de enrutamiento no predeterminada.

  • Módulos python adicionales: para obtener información acerca de los módulos que están disponibles para scripts de Python en dispositivos que ejecutan Junos OS, consulte Descripción general de los módulos python en dispositivos que ejecutan Junos OS.

Para evitar la ejecución de código Python no autorizado en dispositivos que ejecutan Junos OS, las secuencias de comandos de Python sin signo deben cumplir ciertos requisitos antes de poder ejecutar la secuencia de comandos en un dispositivo. Para obtener información detallada acerca de los requisitos para ejecutar scripts de automatización de Python en dispositivos que ejecutan Junos OS, consulte Requisitos para ejecutar scripts de automatización de Python en dispositivos Junos.

Para ejecutar scripts de Python sin signo mediante Python 2.7 o Python 3, debe configurar la language python instrucción o language python3 , respectivamente, en el [edit system scripts] nivel de jerarquía. Si configura la language python3 instrucción, el dispositivo utiliza Python 3 para ejecutar scripts que admiten esta versión de Python, y utiliza Python 2.7 para ejecutar scripts que no admiten Python 3 en la versión dada de Junos OS, como se indica en la tabla 1.

Para scripts JET, debe configurar la versión de la instrucción que corresponda a la versión de Python que admite la secuencia de comandos. Por ejemplo, si configura la language python3 instrucción para una secuencia de comandos JET que solo admite Python 2.7, recibirá un error de tiempo de ejecución cuando ejecute la secuencia de comandos.

Entradas de secuencia de comandos de Python para secuencias de comandos Commit, Event, Op y SNMP

Los dispositivos que ejecutan Junos OS que admiten secuencias de comandos de automatización de Python incluyen los siguientes módulos, los cuales puede importar en secuencias de comandos commit, event, op y SNMP:

Tabla 2: Objetos de módulo junos

Objeto Python

Tipo

Tipo de script

Descripción

Equivalente de XSLT/SLAX

Junos_Context

Diccionario

Cometer

Evento

Op

Información específica del dispositivo sobre el entorno de ejecución de la secuencia de comandos, como el nombre de host del dispositivo, el tipo de secuencia de comandos y el usuario que ejecuta la secuencia de comandos.

commit-script-input/junos-context

event-script-input/junos-context

op-script-input/junos-context

Junos_Configuration

_Element lxml.etree

Cometer

Configuración del candidato posterior a la herencia en formato XML de Junos.

commit-script-input/configuration

Junos_Trigger_Event

_Element lxml.etree

Evento

Detalles del evento que activó la política de eventos correspondiente.

event-script-input/trigger-event

Junos_Received_Events

_Element lxml.etree

Evento

Detalles de los eventos correlacionados que se produjeron antes del evento de activación.

event-script-input/received-events

Junos_Remote_Execution_Details

Función de generador que produce una secuencia de dispositivos remotos.

Evento

Detalles de conexión para un host local o remoto configurado para una secuencia de comandos de eventos en el [edit event-options event-script file filename remote-execution] nivel jerárquico.

eventos-script-input/remote-execution-details

Para obtener información detallada sobre las diferentes entradas de script y cómo importarlas y usarlas en scripts de automatización, consulte:

Recursos de secuencia de comandos de Python

La Tabla 3 proporciona recursos para ayudarlo a crear y ejecutar scripts de Python en dispositivos que ejecutan Junos OS. La Tabla 4 proporciona recursos para cada uno de los diferentes tipos de scripts.

Tabla 3: Recursos generales

Recursos

Documentación

Requisitos de ejecución de secuencia de comandos de Python

Requisitos para ejecutar scripts de automatización de Python en dispositivos Junos

Módulos Python en dispositivos que ejecutan Junos OS

Descripción general de módulos Python en dispositivos que ejecutan Junos OS

Compatibilidad con IPv6 en scripts de Python

Compatibilidad con IPv6 en scripts de automatización de Python

Documentación de Junos PyEZ

Junos PyEZ

Documentación del lenguaje de programación python

https://www.python.org/

Tabla 4: Recursos por tipo de script

Tipo de script

Documentación

Confirmación de Junos OS, eventos, operación y scripts SNMP

Guía del usuario de Scripting de Automatización de Junos OS

Scripts del Kit de herramientas de extensión (JET) de Juniper

Documentación del Kit de herramientas de extensión de Juniper

Secuencias de comandos de traducción y acción YANG

Guía para desarrolladores del protocolo de administración XML DE NETCONF