Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Usar tablas de Junos PyEZ con plantillas TextFSM

RESUMEN Las tablas op de Junos PyEZ pueden hacer referencia a una plantilla de TextFSM, sola o junto con una vista de Junos PyEZ, para analizar la salida del comando CLI o VTY desde cualquier dispositivo de red.

Descripción de las plantillas de TextFSM

Las tablas de operaciones de Junos PyEZ pueden extraer datos de la salida del comando CLI o VTY. La tabla puede hacer referencia a una vista para asignar campos en la salida del comando a objetos de Python. A partir de Junos PyEZ versión 2.4.0, Junos PyEZ op Tables también puede hacer referencia a una plantilla de TextFSM, sola o junto con una vista, para analizar la salida del comando. Las tablas op de Junos PyEZ pueden usar plantillas de TextFSM para analizar la salida de comandos desde 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, desde dispositivos de red. Fue desarrollado por Google y más tarde lanzado bajo la licencia Apache 2.0. El módulo requiere una plantilla y algo de 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 de 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 TextFSM para dispositivos de red. Puede instalar la ntc-templates biblioteca en su servidor o entorno virtual de Junos PyEZ, según corresponda, y luego hacer referencia a las plantillas NTC y otras plantillas de TextFSM en sus tablas de Junos PyEZ.

Las plantillas NTC analizan la salida del comando show 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 plantilla NTC identifica el proveedor, el sistema operativo de red y el comando (con guiones bajos), de modo que el sistema pueda determinar fácilmente qué plantilla usar para una plataforma y un comando determinados.

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

La plantilla analiza la show arp no-resolve salida del comando de los dispositivos Junos de Juniper Networks.

Las tablas op de Junos PyEZ pueden usar una plantilla NTC u otra plantilla 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 el resultado 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 TextFSM o en la vista Junos PyEZ 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: indique que la tabla PyEZ de Junos debe analizar la salida del comando utilizando la plantilla TextFSM para la plataforma y el comando dados.

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

Las tablas PyEZ de Junos pueden usar plantillas 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 biblioteca en su ntc-templates servidor o entorno virtual de Junos PyEZ.

  2. Cree una tabla personalizada de Junos PyEZ que incluya los , , y use_textfsm argumentosplatformcommandkey, 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.

  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 tabla, la aplicación devuelve la clave definida y los datos de cada campo.

Cómo utilizar plantillas de TextFSM con vistas de Junos PyEZ para analizar la salida del comando

Las tablas Junos PyEZ pueden combinar una plantilla TextFSM y una vista Junos PyEZ 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. Esto es útil, por ejemplo, cuando desea utilizar nombres de variables diferentes a los definidos en la plantilla o cuando desea devolver campos diferentes. Junos PyEZ solo devuelve los campos que son comunes tanto a la plantilla TextFSM como a la vista Junos PyEZ.

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

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

  1. Cree una tabla de Junos PyEZ personalizada que incluya los , , platformuse_textfsm, y view argumentoscommandkey, 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, la vista 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 View para extraer los campos de salida. Para cada elemento de tabla, la aplicación devuelve la clave definida y los datos de los campos asignados a los nombres de variable definidos en la vista.

Cómo usar plantillas personalizadas de TextFSM

Las tablas de Junos PyEZ pueden usar las plantillas de TextFSM que se instalan como parte del ntc-templates paquete o pueden hacer referencia a plantillas personalizadas de TextFSM. Para utilizar plantillas personalizadas de TextFSM en su aplicación Junos PyEZ, debe provisionalizar la plantilla y, a continuación, especificar la ruta absoluta al directorio de la plantilla al definir la instancia de tabla.

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

  1. Cree un directorio para las plantillas personalizadas.

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

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

  4. En la 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 utilizar las tablas de Junos PyEZ 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 del dispositivo de red de cualquier proveedor. Puede recuperar la salida en su aplicación Python o leer la salida de un archivo. A continuación, cuando cree la instancia de Junos PyEZ Table, 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 desde el dispositivo dado.

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

Al ejecutar la aplicación, recupera el resultado del comando del dispositivo y utiliza la plantilla TextFSM en el directorio especificado junto con View para analizar la salida. Junos PyEZ solo devuelve los campos que son comunes tanto a la plantilla TextFSM como a la vista Junos PyEZ. La aplicación también guarda la salida del comando en un archivo, por lo que la salida se puede procesar más tarde, como se muestra en el siguiente ejemplo.

En el ejemplo siguiente se utiliza la misma plantilla TextFSM y Junos PyEZ View que en el ejemplo anterior, pero en este caso, el resultado del comando se lee desde un archivo.