Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Use las tablas PyEZ de Junos con plantillas de TextFSM

Las tablas operativas (op) de Junos PyEZ pueden hacer referencia a una plantilla de TextFSM, sola o con una vista de Junos PyEZ, para analizar la salida de comandos de CLI o VTY desde cualquier dispositivo de red.

Comprender las plantillas de TextFSM

Las tablas de operaciones de Junos PyEZ pueden extraer datos de la salida de comando CLI o VTY de un dispositivo de red. La tabla puede hacer referencia a una vista para asignar campos en la salida del comando a objetos de Python. Las tablas de operaciones de Junos PyEZ también pueden hacer referencia a una plantilla de TextFSM, sola o con una vista, para analizar la salida del comando. Las tablas de operaciones de Junos PyEZ pueden usar plantillas de TextFSM para analizar la salida de comandos de cualquier dispositivo de red, independientemente del proveedor, el sistema operativo de red o el comando.

TextFSM es una biblioteca de Python que analiza la salida de CLI semiformateada, como la salida del comando show, de los dispositivos de red. Fue desarrollado por Google y luego lanzado bajo la licencia Apache 2.0. El módulo requiere una plantilla y algún texto de entrada. La plantilla utiliza expresiones regulares para describir cómo analizar los datos y puede definir y aplicar varias plantillas a los mismos datos.

TextFSMCliTable permite a los usuarios asignar un comando en una plataforma determinada a la plantilla que analiza la salida del comando. Network to Code, una empresa de automatización de redes, ha desarrollado un contenedor de Python junto CliTable con un repositorio de plantillas de TextFSM para dispositivos de red. Puede instalar la ntc-templates biblioteca en su servidor o entorno virtual de Junos PyEZ, según corresponda. A continuación, haga referencia a las plantillas NTC y otras plantillas de TextFSM en sus tablas PyEZ de Junos.

El análisis de plantillas NTC muestra la salida del comando de los dispositivos de red. Cada plantilla NTC define los campos de salida esperados para un comando determinado y, para cada elemento, asigna los datos a un encabezado. El nombre de archivo de la plantilla NTC identifica la plataforma (proveedor y sistema operativo de red) y el comando (con guiones bajos), por lo que el sistema puede determinar fácilmente qué plantilla usar. El formato de nombre de archivo utiliza la sintaxis siguiente:

Por ejemplo, considere la plantilla juniper_junos_show_arp_no-resolve.textfsm .

La plantilla analiza la show arp no-resolve salida del comando de dispositivos de Juniper Networks que ejecutan Junos OS o Junos OS evolucionado.

Las tablas de operaciones de Junos PyEZ pueden utilizar una plantilla NTC u otra plantilla de TextFSM para analizar la salida de comandos no estructurados. La tabla utiliza una plantilla TextFSM definiendo los siguientes campos. Junos PyEZ utiliza los platform valores y command para determinar el nombre de archivo de la plantilla.

  • command: command: comando que genera la salida que se va a analizar. El comando debe asignarse a la cadena de comandos en el nombre de archivo de una plantilla NTC u otra plantilla de TextFSM.

  • key: key—Campo definido en la plantilla de TextFSM o en la vista PyEZ de Junos que se utiliza para identificar de forma exclusiva el elemento de registro.

  • platform: platform—Proveedor y sistema operativo para la plantilla TextFSM, por ejemplo, juniper_junos. El valor de plataforma debe coincidir con la cadena de plataforma en el nombre de archivo de una plantilla NTC u otra plantilla de TextFSM.

  • use_textfsm: True—Establecer en True para analizar la salida del comando utilizando la plantilla TextFSM para la plataforma y el comando dados.

Cómo usar plantillas de TextFSM para analizar la salida de comandos

Las tablas PyEZ de Junos pueden usar plantillas de TextFSM, incluidas las plantillas NTC predefinidas, para analizar la salida del comando show de los dispositivos Junos.

Para usar plantillas de TextFSM en una tabla PyEZ de Junos:

  1. Instale la ntc-templates biblioteca en su servidor o entorno virtual de Junos PyEZ.

  2. Cree una tabla PyEZ de Junos personalizada que incluya los argumentos, , commandkeyplatform, y use_textfsm los argumentos, así como cualquier argumento adicional necesario para sus operaciones.

    La aplicación Junos PyEZ utiliza los platform valores y command para determinar el nombre de archivo de la plantilla, que en este caso es juniper_junos_show_arp_no-resolve.textfsm. El key valor debe coincidir con un encabezado de la plantilla.

  3. Cree una aplicación Junos PyEZ que utilice la tabla para recuperar los datos.

  4. Ejecute la aplicación.

    La tabla utiliza la plantilla NTC para extraer los campos de salida. Para cada elemento de la tabla, la aplicación devuelve la clave definida y los datos de cada campo.

Cómo usar plantillas TextFSM con vistas PyEZ de Junos para analizar la salida de comandos

Las tablas PyEZ de Junos pueden combinar una plantilla de TextFSM y una vista de PyEZ de Junos para analizar la salida del comando. La plantilla TextFSM asigna los datos a un encabezado. En la vista, puede asignar los nombres de las variables a los encabezados definidos en la plantilla para los campos que desea devolver. Combine la plantilla y la vista, por ejemplo, cuando desee utilizar nombres de variables diferentes a los definidos en la plantilla o cuando desee devolver campos diferentes. Junos PyEZ devuelve solo los campos que son comunes tanto a la plantilla TextFSM como a la vista de Junos PyEZ.

En el ejemplo siguiente se utiliza la plantilla juniper_junos_show_arp_no-resolve.textfsm para analizar la salida del comando. La vista de PyEZ de Junos asigna los datos a nuevos nombres de variables y devuelve solo un subconjunto de los campos. Para revisar la plantilla, consulte Descripción de las plantillas de TextFSM.

Para usar una plantilla TextFSM y una vista en una tabla PyEZ de Junos:

  1. Cree una tabla PyEZ de Junos personalizada que incluya los argumentos, , , y view los platformcommandkeyuse_textfsmargumentos, así como cualquier argumento adicional necesario para sus operaciones.

  2. Cree la vista de Junos PyEZ que define qué campos de plantilla devolver y el nombre de variable correspondiente para cada campo.

    En este caso, View no asigna el FLAGS campo definido en la plantilla TextFSM y los datos analizados no incluyen este valor.

  3. Cree una aplicación Junos PyEZ que utilice la tabla para recuperar los datos.

  4. Ejecute la aplicación.

    La tabla utiliza la plantilla NTC y la vista PyEZ de Junos para extraer los campos de salida. Para cada elemento de la tabla, la aplicación devuelve la clave definida y los datos de los campos definidos en la vista.

Cómo usar plantillas personalizadas de TextFSM

Las tablas PyEZ de Junos pueden utilizar las plantillas de TextFSM que se instalan como parte del ntc-templates paquete. También pueden hacer referencia a plantillas personalizadas de TextFSM. Para utilizar plantillas personalizadas de TextFSM en su aplicación Junos PyEZ, primero debe preparar la plantilla. A continuación, cuando defina la instancia de Table en la aplicación, especifique la ruta absoluta al directorio de la plantilla.

Para usar una plantilla TextFSM personalizada en una tabla PyEZ de Junos:

  1. Cree un directorio para sus plantillas personalizadas.

  2. En el directorio templates, cree la plantilla y asigne un nombre al archivo utilizando la convención de nombre de platform_commandarchivo .textfsm .

  3. Cree una tabla PyEZ de Junos que defina los mismos platform valores que command el nombre de archivo de la plantilla.

  4. En su aplicación Junos PyEZ, especifique la ruta absoluta al directorio de plantillas personalizadas cuando defina la instancia de tabla.

  5. Ejecute la aplicación.

Cómo usar las tablas PyEZ de Junos con plantillas TextFSM para analizar la salida de comandos de cualquier proveedor

Las tablas PyEZ de Junos pueden usar plantillas de TextFSM para analizar la salida de comandos desde el dispositivo de red de cualquier proveedor. La aplicación de Python puede recuperar la salida de un dispositivo o puede leer la salida de un archivo. A continuación, cuando cree la instancia de tabla PyEZ de Junos, puede pasar la cadena de salida del comando al argumento de raw la tabla en lugar de pasar una Device instancia.

Por ejemplo, considere la siguiente plantilla de TextFSM:

La plantilla analiza la show alarms detail salida del comando del dispositivo dado.

En el ejemplo siguiente se define una tabla PyEZ Junos que utiliza la plantilla personalizada de TextFSM, cisco_xr_show_alarms_detail.textfsm, y una vista para analizar la salida del show alarms detail comando. En el ejemplo, se usa la netmiko biblioteca para recuperar los datos directamente del dispositivo. Cuando la aplicación crea la instancia de Table, el raw argumento pasa la salida del comando y el template_dir argumento define la ruta al directorio que contiene la plantilla personalizada.

Cuando ejecuta la aplicación, recupera la salida del comando del dispositivo. Luego, la aplicación usa la plantilla TextFSM en el directorio especificado junto con View para analizar la salida. Junos PyEZ devuelve solo los campos que son comunes tanto a la plantilla TextFSM como a la vista de Junos PyEZ. La aplicación guarda la salida del comando en un archivo, por lo que puede procesar la salida más adelante, como se muestra en el ejemplo siguiente.

En el siguiente ejemplo, se utiliza la misma plantilla de TextFSM y Junos PyEZ View que en el ejemplo anterior, pero en este caso, la aplicación lee la salida del comando de un archivo.