Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ejemplo: Cambiar la configuración mediante scripts operativos de Python

Los scripts operativos le permiten realizar cambios controlados en la configuración de Junos OS. Los scripts operativos son ventajosos, ya que pueden recopilar información operativa de un dispositivo y actualizar la configuración en función de esa información. Los usuarios experimentados que están familiarizados con Junos OS pueden escribir scripts operativos que pidan la información de configuración relevante y modifiquen la configuración en consecuencia. Esto permite a los usuarios que tienen menos experiencia con Junos OS modificar la configuración de forma segura mediante el script. En este ejemplo, se muestra cómo realizar cambios en la configuración de Junos OS mediante un script op de Python que aprovecha las API de Junos PyEZ.

Requisitos

En este ejemplo, se utilizan los siguientes componentes de hardware y software:

  • Enrutador serie MX que ejecuta la versión 16.1R3 o posterior de Junos OS que incluye el paquete de extensiones de Python.

Descripción general y script operativo

Los scripts operativos de Python pueden hacer cambios en la configuración de Junos OS mediante la utilidad Junos PyEZjnpr.junos.utils.config.Config. La utilidad Junos PyEZ Config proporciona métodos de instancia para bloquear la configuración, cargar los datos de configuración y especificar cómo integrarlos en la configuración, confirmar la configuración y desbloquear la configuración. Para obtener más información acerca de cómo usar Junos PyEZ para configurar dispositivos Junos, consulte Uso de Junos PyEZ para configurar dispositivos Junos. El script op de Python en este ejemplo muestra cómo actualizar la configuración para deshabilitar una interfaz en el dispositivo local.

El script op de Python importa lo siguiente:

  • Device clase: controla la conexión con el dispositivo Junos

  • Config class: realiza comandos de modo de configuración en el dispositivo de destino

  • jnpr.junos.exception módulo: contiene excepciones que se encuentran al administrar dispositivos Junos

  • jcs módulo: permite que el script ejecute funciones de extensión compatibles

En este ejemplo, la usage variable se inicializa con una descripción general de la función del script. Cuando se ejecuta el script, el script da como resultado la descripción de uso en la CLI para que el usuario pueda comprobar el propósito de ese script.

El script llama a la jcs.get_input() función de extensión, que solicita al usuario que escriba el nombre de la interfaz que desea deshabilitar, y almacena el nombre de interfaz en la interface variable. La config_xml variable es una cadena XML que define los cambios de configuración.

La secuencia de comandos no proporciona un parámetro de host al crear la Device instancia, lo que hace que el open() método establezca una conexión con el dispositivo local. En este ejemplo, se crea la Config instancia mediante un administrador de contexto con mode='exclusive' para obtener un bloqueo exclusivo en la configuración mientras se modifica. En este modo, el administrador de contexto controla automáticamente el bloqueo y el desbloqueo de la configuración del candidato. Los Config métodos de utilidad cargan los cambios de configuración en la configuración candidata como una load merge operación y confirman la configuración. El dev.close() método cierra la conexión.

Python Script

Configuración

Procedimiento paso a paso

Para descargar, habilitar y probar el script:

  1. Copie el script en un archivo de texto, asigne un nombre al archivo config-change.py y cópielo en el directorio /var/db/scripts/op/ del dispositivo.

    Nota:

    Los scripts de Python sin firma deben ser propiedad de la raíz o de un usuario de la clase de inicio de sesión de Junos OS super-user , y solo el propietario del archivo puede tener permiso de escritura para el archivo.

  2. En el modo de configuración, incluya la file config-change.py instrucción en el [edit system scripts op] nivel de jerarquía.

  3. Habilite la ejecución de scripts de Python sin firmar en el dispositivo.

    Nota:

    Configure la language python3 instrucción para usar Python 3 para ejecutar scripts de Python, o configure la language python instrucción para usar Python 2.7 para ejecutar scripts de Python. Para obtener más información, consulte idioma.

  4. Emita el commit and-quit comando para confirmar la configuración y volver al modo operativo.

  5. Antes de ejecutar el script, emita el show interfaces interface-name comando de modo operativo y registre el estado actual de la interfaz que se deshabilitará mediante el script.

  6. Ejecute el script op mediante la emisión del comando de op config-change.py modo operativo.

Verificación

Verificar la confirmación

Propósito

Compruebe que la confirmación se ha hecho correctamente.

Acción

Debe incluir código en el script que detecta cualquier advertencia o error asociado con el cambio y la confirmar la configuración. Esto le permite determinar con mayor facilidad si la confirmación tuvo éxito. Si no hay mensajes de advertencia o error, puede comprobar que la confirmación se ha correcto de varias maneras.

  • Compruebe el registro de confirmación para comprobar que la confirmación fue correcta.

  • Compruebe el archivo de mensaje syslog para comprobar que la operación de confirmación se ha registrado. En este caso, también verá un SNMP_TRAP_LINK_DOWN mensaje para la interfaz deshabilitada. Según la configuración de las operaciones de seguimiento, este mensaje puede o no aparecer en el archivo de registro.

Verificar los cambios de configuración

Propósito

Compruebe que los cambios correctos están integrados en la configuración.

Acción

  • Muestre la configuración y compruebe que los cambios son visibles para la interfaz especificada.

  • Para este ejemplo, también puede emitir el comando de show interfaces interface-name modo operativo para comprobar que la interfaz estaba deshabilitada. En este caso, el resultado capturado antes de deshabilitar la interfaz muestra que la interfaz es Enabled.

    El resultado capturado después de ejecutar la secuencia de comandos para deshabilitar la interfaz muestra que la interfaz es ahora Administratively down.