Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Utilice Junos PyEZ para recuperar datos de dispositivos Junos

Descripción de los datos del dispositivo Junos PyEZ

Junos PyEZ es un microtrabajo para Python que le permite administrar y automatizar dispositivos Junos. Junos PyEZ modela cada dispositivo como una instancia de la jnpr.junos.device.Device clase. Después de conectarse a un dispositivo Junos, las aplicaciones Junos PyEZ pueden recuperar datos sobre el dispositivo. Se accede a los hechos del dispositivo como el facts atributo del Device objeto. Para obtener información detallada acerca de las claves que se incluyen en los hechos del dispositivo devuelto, consulte jnpr.junos.facts.

En el ejemplo siguiente, se establece una sesión NETCONF a través de SSH con el dispositivo e imprime los hechos del dispositivo. El dispositivo utiliza claves SSH para autenticar al usuario.

En junos PyEZ versión 2.0.0 y versiones anteriores, cuando la aplicación llama al Device open() método para conectarse a un dispositivo, Junos PyEZ recopila automáticamente los hechos del dispositivo para conexiones NETCONF sobre SSH y recopila los hechos del dispositivo para Telnet y las conexiones de consola en serie cuando se incluye gather_facts=True explícitamente en la lista de Device argumentos.

A partir de Junos PyEZ versión 2.1.0, los datos del dispositivo se recopilan a pedido para todos los tipos de conexión. Cada hecho se recopila y almacena en caché la primera vez que la aplicación accede a su valor o al valor de un hecho dependiente. Cuando imprime o utiliza hechos del dispositivo, los hechos a los que se accede anteriormente se sirven desde la memoria caché y los hechos a los que aún no se ha accedido se recuperan del dispositivo. Si no se admite un hecho en una plataforma determinada, o si la aplicación encuentra un problema que recopila el valor de un hecho específico, entonces el valor de ese hecho es None.

Junos PyEZ almacena en caché un hecho del dispositivo cuando accede por primera vez al hecho o un hecho dependiente, pero no actualiza el valor almacenado en caché tras el acceso posterior. Para actualizar los hechos del dispositivo, llame al facts_refresh() método. El facts_refresh() método vacía la memoria caché de todos los hechos, de modo que cuando la aplicación siguiente accede a un hecho, lo recupera del dispositivo y almacena el valor actual en la memoria caché.

Para actualizar solo un solo hecho o un conjunto de hechos, incluya el keys argumento en el facts_refresh() método y especifique las claves que desea borrar de la memoria caché. Por ejemplo:

Nota:

A partir de Junos PyEZ versión 2.0.0, las excepciones que se producen al recopilar hechos generan una advertencia en lugar de un error, lo que permite que la secuencia de comandos continúe ejecutándose.

De forma predeterminada, Junos PyEZ devuelve los hechos del dispositivo como un objeto similar a un diccionario. A partir de Junos PyEZ versión 2.2.1, puede ver los hechos del dispositivo en notación de objetos JavaScript (JSON). Para ver una representación JSON de los hechos, importe el json módulo y llame a la json.dumps() función.

Ejemplo: Recuperar datos de un dispositivo Junos

Con Junos PyEZ, puede ejecutar rápidamente comandos en modo interactivo de Python, o puede crear programas para realizar tareas. En el ejemplo siguiente, se establece una sesión NETCONF a través de SSH con un dispositivo Junos y se recuperan e imprimen datos para el dispositivo mediante un programa Python simple y un modo interactivo de Python. Los ejemplos utilizan claves SSH existentes para la autenticación.

Para crear una aplicación Junos PyEZ que establezca una sesión NETCONF a través de SSH con un dispositivo Junos e imprima los hechos del dispositivo:

  1. En su editor favorito, cree un archivo nuevo con un nombre descriptivo que use la extensión de archivo .py .
  2. Importe la Device clase y cualquier otro módulo u objeto necesario para sus tareas.
  3. Cree la instancia del dispositivo y proporcione el nombre de host, los parámetros necesarios para la autenticación y los parámetros opcionales.
  4. Conéctese al dispositivo llamando al open() método.
  5. Imprima los datos del dispositivo.
    Propina:

    Para actualizar los hechos de un dispositivo, llame al facts_refresh() método, por ejemplo, dev.facts_refresh().

  6. Cierre la conexión al dispositivo.
  7. Guarde y ejecute el programa.

Aquí se presenta todo el programa:

También puede realizar rápidamente las mismas operaciones en el modo interactivo de Python.

En el siguiente video se presenta una breve sesión de Python que muestra cómo usar Junos PyEZ para conectarse y recuperar hechos desde un dispositivo Junos.

Tabla de historial de versiones
Lanzamiento
Descripción
2.1.0
A partir de Junos PyEZ versión 2.1.0, los datos del dispositivo se recopilan a pedido para todos los tipos de conexión.
2.0.0
A partir de Junos PyEZ versión 2.0.0, las excepciones que se producen al recopilar hechos generan una advertencia en lugar de un error, lo que permite que la secuencia de comandos continúe ejecutándose.