Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Uso de las tablas de configuración de Junos PyEZ para recuperar datos de configuración

Las tablas y vistas de configuración de Junos PyEZ proporcionan una manera sencilla y eficaz de extraer información específica de la base de datos de configuración seleccionada de un dispositivo Junos. Después de cargar o importar la definición de tabla en el módulo de Python, puede recuperar los datos de configuración.

Configuración de Junos PyEZ Las tablas que especifican la propiedad solo pueden recuperar datos de get configuración. Las tablas que especifican la set propiedad pueden configurar recursos en dispositivos Junos, así como recuperar datos de la misma manera que las tablas que especifican la get propiedad.

Para recuperar información de un dispositivo específico, debe crear una instancia de tabla y asociarla al Device objeto que representa el dispositivo de destino. Por ejemplo:

En las secciones siguientes se explica cómo recuperar y manipular los datos:

Recuperar elementos de configuración

La tabla get o set propiedad de configuración identifica los datos que se van a extraer de la configuración. Por ejemplo, la siguiente definición de tabla de ejemplo extrae elementos en el nivel de user jerarquía de [edit system login] configuración:

Los datos de configuración se recuperan en la secuencia de comandos de Python llamando al get() método y proporcionando los argumentos deseados.

Si la definición de tabla incluye el required_keys parámetro, debe incluir pares clave-valor para cada clave necesaria en la lista de argumentos del get() método. La siguiente definición de tabla requiere que la lista de argumentos del get() método incluya un user argumento con un valor que corresponda al valor de un name elemento en el [edit system login user] nivel de jerarquía:

En el get() método, debe incluir la clave necesaria en la lista de argumentos; de lo contrario, el código produce una excepción ValueError. En el ejemplo siguiente se solicitan los datos de configuración para el usuario denominado 'operator':

Nota:

Si el nombre del argumento tiene guiones, debe cambiar los guiones del nombre a guiones bajos. El valor del argumento, sin embargo, es una cadena y, como tal, puede contener guiones.

Puede incluir el argumento método namesonly=True get() para devolver datos de configuración que contengan solo claves de nombre en el nivel de jerarquía especificado en la propiedad o set de la get definición de tabla.

Por ejemplo, supongamos get que se define para recuperar datos de configuración en el nivel de interfaces/interface jerarquía e incluye el namesonly=True argumento en el get() método cuando recupera los datos en el script de Junos PyEZ. En este caso, el método devuelve sólo los valores de los <name> elementos que son hijos directos del interfaces/interface nivel jerárquico. No se devuelve la información de los <name> elementos que son elementos del mismo nivel y no se devuelven los datos de <name> los elementos de niveles inferiores de la jerarquía.

Especificar la base de datos de configuración

De forma predeterminada, las tablas de configuración de Junos PyEZ recuperan datos de la base de datos de configuración candidata. Cuando llame get() al método en la secuencia de comandos de Python para recuperar los datos de la tabla, puede especificar que el método devuelva datos de la base de datos de configuración confirmada pasando el options argumento e incluyendo el 'database':'committed' elemento en el options diccionario.

Especificar opciones de herencia y grupo

Puede controlar las opciones de herencia y grupo al recuperar datos de configuración mediante el argumento de la lista de argumentos de options método get() . El options argumento toma un diccionario y, de forma predeterminada, se establece en el siguiente valor, que aplica la herencia y los grupos para los datos de configuración devueltos:

Si no redefine el argumento en el script de options Python, automáticamente utiliza el valor predeterminado.

La inherit opción especifica cómo los datos de configuración muestran instrucciones definidas en grupos de configuración y rangos de interfaz. De forma predeterminada, se incluye la 'inherit':'inherit' opción y los datos de configuración incluyen elementos de etiqueta heredados de grupos definidos por el usuario o rangos de interfaz dentro de los elementos de etiqueta heredados, <apply-groups><apply-groups-except>en lugar de mostrar los <groups>, , o <interface-range> elementos por separado. Para aplicar la herencia, pero también incluir elementos de etiqueta para las instrucciones definidas en el junos-defaults grupo, úselas 'inherit':'defaults' en el options argumento.

Para deshabilitar la herencia, establezca el valor del diccionario en una cadena vacía.

Al incluir las 'inherit':'inherit' opciones y 'groups':'groups' , se devuelven datos de configuración que también indican el grupo de configuración del que se heredan los elementos. Un elemento que se hereda de un grupo determinado incluye el junos:group="source-group" atributo en su etiqueta de apertura, como se muestra en el ejemplo siguiente:

Para proporcionar acceso a los atributos de la definición de View, puede incluir la sintaxis XPath adecuada en la asignación de campos. En el junos:group ejemplo siguiente se define el ifgroup campo y se asigna al atributo del elemento de <name> la interfaz:

Junos PyEZ también proporciona el group operador, que es un método de acceso directo para acceder al junos:group atributo de un elemento. En el ejemplo siguiente se define el ifgroup campo, que se asigna al name elemento con el group operador. Cuando accede dentro ifgroup del script, hace referencia al valor del junos:group atributo asociado con el elemento de <name> la interfaz.

Si un elemento no se hereda de un grupo, el valor de un campo que hace referencia al group atributo es None.

Elementos de la tabla de acceso

Después de recuperar los elementos de configuración, puede tratarlos como un diccionario de Python, que le permite utilizar métodos en la biblioteca estándar de Python para obtener acceso a los elementos y manipularlos.

Para ver la lista de claves de diccionario correspondientes a los nombres de los elementos de configuración, llame keys() al método.

Puede comprobar que una clave específica está presente en los elementos de tabla mediante el operador de Python in .

Para ver una lista de los campos o valores asociados a cada clave, llame values() al método. El values() método devuelve una lista de tuplas con los pares nombre-valor para cada campo definido en la vista.

Para ver la lista completa de elementos, incluidas las claves y los items() valores, llame al método.

Iterar a través de una tabla

Las tablas admiten la iteración, que permite recorrer cada elemento de configuración de la misma manera que lo haría con una lista o un diccionario. Esto facilita el formateo y la impresión rápidos de los campos deseados.

La siguiente definición de tabla extrae los system/login/user elementos de los datos de configuración:

La siguiente aplicación Junos PyEZ recorre los user elementos e imprime el nombre y la clase de cada usuario:

Los username campos y userclass , que se definen en UserView, corresponden a los valores de los name elementos y class , respectivamente, en los datos de configuración. El resultado incluye el nombre y la clase del usuario.

Aunque UserView define un username campo que se asigna al elemento, de forma predeterminada, cada elemento View tiene una name propiedad que hace referencia a name la clave que identifica de forma exclusiva ese elemento. Por lo tanto, también podría usar user.name en este ejemplo para hacer referencia al valor del name elemento.