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.
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 |
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:
jcs
módulo: proporciona acceso a un subconjunto de las funciones y plantillas de extensión que están disponibles para scripts SLAX y XSLT.Para obtener información acerca de las funciones y plantillas de extensión de Junos OS, consulte Descripción de funciones de extensión en scripts de automatización de Junos OS y Descripción de plantillas denominadas en scripts de automatización de Junos OS.
junos
módulo: contiene lasJunos
entradas de clase y secuencia de comandos descritas en la Tabla 2.
Objeto Python |
Tipo |
Tipo de script |
Descripción |
Equivalente de XSLT/SLAX |
---|---|---|---|---|
|
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 |
|
_Element lxml.etree |
Cometer |
Configuración del candidato posterior a la herencia en formato XML de Junos. |
commit-script-input/configuration |
|
_Element lxml.etree |
Evento |
Detalles del evento que activó la política de eventos correspondiente. |
event-script-input/trigger-event |
|
_Element lxml.etree |
Evento |
Detalles de los eventos correlacionados que se produjeron antes del evento de activación. |
event-script-input/received-events |
|
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 |
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.
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 |
|
Documentación del lenguaje de programación python |
Tipo de script |
Documentación |
---|---|
Confirmación de Junos OS, eventos, operación y scripts SNMP |
|
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 |