Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Utilice el kit de herramientas Java de NETCONF para realizar tareas operativas

Usar métodos de objetos de dispositivo para ejecutar RPC y comandos operativos

El objeto de kit de herramientas Device Java NETCONF tiene métodos para solicitar información y realizar tareas operativas en dispositivos remotos. Cuando es apropiado, los métodos se sobrecargan para tomar varios formatos diferentes.

Ejecución de RPC

Para ejecutar una llamada a procedimiento remoto (RPC), llame executeRPC() al método en el Device objeto. El executeRPC() método está sobrecargado para aceptar un String objeto, un net.juniper.netconf.XML objeto o un org.w3c.dom.Document objeto como argumento. El servidor NETCONF procesa el RPC, que devuelve la respuesta RPC como un objeto XML.

La sintaxis del método es:

El siguiente fragmento de código ejecuta el RPC de la API get-chassis-inventory XML de Junos mediante un argumento de cadena. La get-chassis-inventory RPC es equivalente al comando de show chassis hardware modo operativo de la interfaz de línea de comandos (CLI) de Junos OS.

Ejecución de comandos del modo operativo

Para ejecutar un comando en modo operativo para solicitar información o realizar tareas operativas en un dispositivo que ejecute Junos OS, llame al runCliCommand() método en el Device objeto. El runCliCommand() método envía un comando de modo operativo de Junos OS al servidor NETCONF del dispositivo remoto. El argumento es una cadena que representa el comando del modo operativo que introduciría en la CLI de Junos OS. El servidor NETCONF procesa el RPC, que devuelve la respuesta RPC. A partir de Junos OS versión 11.4, la cadena de retorno es la misma salida con formato ASCII que se ve en la CLI de Junos OS. Para los dispositivos que ejecutan versiones anteriores de Junos OS, la cadena devuelta contiene elementos de etiqueta XML de Junos.

La sintaxis del método es:

El siguiente fragmento de código envía el comando show chassis hardware de modo operativo de la CLI al servidor NETCONF en un dispositivo que ejecuta Junos OS:

Ejemplo: Aplicación Java NETCONF para ejecutar una solicitud operativa RPC

Este programa de kit de herramientas Java NETCONF ejecuta un RPC para obtener información operativa de un dispositivo, que luego se imprime en la salida estándar. Este ejemplo sirve como ejemplo instructivo para crear y ejecutar un programa básico de kit de herramientas Java NETCONF.

Requisitos

  • El kit de herramientas Java de NETCONF está instalado en el servidor de administración de configuración.

  • La aplicación cliente puede iniciar sesión en el dispositivo donde reside el servidor NETCONF.

  • El servicio NETCONF a través de SSH está habilitado en el dispositivo donde reside el servidor NETCONF.

Visión general

Puede utilizar el kit de herramientas Java de NETCONF para solicitar información operativa desde un dispositivo remoto. En el ejemplo siguiente se muestra cómo crear un programa de kit de herramientas Java NETCONF para ejecutar una solicitud operativa desde la API XML de Junos en un dispositivo que ejecuta Junos OS. En el ejemplo también se explica cómo compilar el código, ejecutar el programa y comprobar los resultados.

Configuración

Creación del programa Java

Procedimiento paso a paso

Para construir el archivo de programa Java que contiene el código para la solicitud operativa:

  1. Asigne al archivo un nombre descriptivo.

    El nombre de archivo debe ser el mismo que el nombre de la clase. En este ejemplo, el archivo y la clase se denominan GetChassisInventory.

  2. Incluya las instrucciones import apropiadas y el código para la declaración de clase y el método Java, main().

  3. Dentro de main(), cree un Device objeto y llame al connect() método.

    Esto crea una sesión NETCONF predeterminada sobre SSHv2 con el servidor NETCONF. Debe actualizar el código con los argumentos adecuados para la conexión y la autenticación en su dispositivo específico.

    Una vez establecido un Device objeto, puede realizar operaciones NETCONF en el dispositivo. Para obtener una lista completa de los métodos disponibles correspondientes a las operaciones de NETCONF, consulte el kit de herramientas Java de NETCONF Javadocs.

  4. Llame al executeRPC() método con el comando RPC de solicitud operacional como argumento.

    En este ejemplo se usa la RPC de la API get-chassis-inventory XML de Junos. La respuesta, que se devuelve en XML, se almacena en la rpc_reply variable.

  5. Agregue código para realizar acciones en la respuesta RPC.

    El código siguiente convierte la respuesta del servidor NETCONF en una cadena y la imprime en la pantalla:

  6. Cierre el dispositivo y libere recursos llamando al close() método en el objeto dispositivo.

Resultados

El programa completo es:

Compilar y ejecutar el programa Java

Procedimiento paso a paso

Necesita un compilador Java para compilar el código fuente y crear un programa ejecutable.

Para compilar el código y ejecutar el programa en el servidor de administración de configuración:

  1. Compile el archivo GetChassisInventory.java .

  2. Ejecute el programa GetChassisInventory .

Verificación

Verificación de la ejecución del programa

Propósito

Compruebe que el programa GetChassisInventory se ejecuta correctamente.

Acción

Si el programa se ejecuta correctamente, establece una conexión y crea una sesión NETCONF con el dispositivo especificado. El programa envía el get-chassis-inventory RPC al servidor NETCONF y el servidor responde con la información operativa solicitada encerrada en el elemento de <rpc-reply> etiqueta. El programa imprime la respuesta al estándar. A continuación se muestra un ejemplo de respuesta RPC con algunos resultados omitidos por brevedad.

Solución de problemas

Solución de problemas de excepciones de NETCONF

Problema

Se produce una excepción NETCONF y verá el siguiente mensaje de error:

Es posible que NETCONF a través de SSH no esté habilitada en el dispositivo donde reside el servidor NETCONF o que esté habilitada en un puerto diferente.

Solución

Asegúrese de que ha habilitado NETCONF a través de SSH en el dispositivo donde reside el servidor NETCONF. Dado que el programa de ejemplo no especifica un número de puerto específico en los Device argumentos, la sesión NETCONF se establece en el puerto predeterminado NETCONF-over-SSH, 830. Para verificar si NETCONF sobre SSH está habilitada en el puerto predeterminado de un dispositivo que ejecuta Junos OS, introduzca el siguiente comando de modo operativo en el dispositivo remoto:

Si la jerarquía de netconf configuración está ausente, emita las instrucciones siguientes en el modo de configuración para habilitar NETCONF a través de SSH en el puerto predeterminado:

Si la jerarquía de netconf configuración especifica un puerto distinto del predeterminado, incluya el nuevo número de puerto en los argumentos del constructor de Device objetos. Por ejemplo, el siguiente dispositivo está configurado para NETCONF a través de SSH en el puerto 12345:

Para corregir el problema de conexión, incluya el nuevo número de puerto en los Device argumentos.

Ejemplo: Aplicación Java NETCONF para ejecutar comandos CLI

Este programa de kit de herramientas Java de NETCONF demuestra el runCLICommand() método, que envía el comando de modo operativo de Junos OS especificado al servidor de NETCONF para solicitar información o realizar tareas operativas en un dispositivo que ejecuta Junos OS.

Requisitos

  • Dispositivo de enrutamiento, conmutación o seguridad que ejecuta Junos OS.

  • El kit de herramientas Java de NETCONF está instalado en el servidor de administración de configuración.

  • La aplicación cliente puede iniciar sesión en el dispositivo donde reside el servidor NETCONF.

  • El servicio NETCONF a través de SSH está habilitado en el dispositivo donde reside el servidor NETCONF.

Visión general

La clase del kit de herramientas Device Java de NETCONF contiene el método, que toma un comando de runCliCommand() modo operativo de la CLI de Junos OS y lo convierte en un RPC equivalente en XML que puede procesar el servidor NETCONF. El runCLICommand() método toma como argumento la cadena que representa un comando en modo operativo que se introduce en la CLI de Junos OS.

En el ejemplo siguiente se ejecuta el show chassis hardware comando en un dispositivo que ejecuta Junos OS. El valor devuelto del método es una cadena. A partir de Junos OS versión 11.4, la cadena de retorno es la misma salida con formato ASCII que se ve en la CLI de Junos OS. Para los dispositivos que ejecutan versiones anteriores de Junos OS, la cadena devuelta contiene elementos de etiqueta XML de Junos.

Configuración

Creación del programa Java

Procedimiento paso a paso

Para construir el archivo de programa Java:

  1. Asigne al archivo un nombre descriptivo.

    El nombre de archivo debe ser el mismo que el nombre de la clase. En este ejemplo, el archivo y la clase se denominan ExecuteCLICommand.

  2. Agregue el código al archivo y actualice las variables específicas del entorno, como la dirección IP del host remoto, el nombre de usuario, la contraseña y <rpc-reply> los elementos de etiqueta.

    El código Java completo para el programa ExecuteCLICommand.java se presenta aquí.

Compilar y ejecutar el programa Java

Procedimiento paso a paso

Necesita un compilador Java para compilar el código fuente y crear un programa ejecutable.

Para compilar el código y ejecutar el programa en el servidor de administración de configuración:

  1. Compile el archivo ExecuteCLICommand.java .

  2. Ejecute el programa ExecuteCLICommand .

Verificación

Verificación de la ejecución del programa

Propósito

Compruebe que el programa ExecuteCLICommand se ejecuta correctamente.

Acción

Si el programa se ejecuta correctamente, establece una conexión y crea una sesión NETCONF con el dispositivo especificado. El programa convierte el comando show chassis hardware de modo operativo de la CLI de Junos OS en un RPC y envía el RPC al servidor NETCONF. El servidor responde con la información operativa solicitada incluida en el elemento tag <rpc-reply> El programa analiza la respuesta RPC e imprime el inventario de chasis resultante. La siguiente salida de ejemplo proviene de un enrutador m7i de Juniper Networks.

En un dispositivo que ejecute Junos OS versión 11.4 o posterior, el resultado está en texto con formato ASCII, que es idéntico al resultado de la CLI.

En un dispositivo que ejecuta Junos OS versión 11.3 o versiones anteriores, el resultado contiene elementos de etiqueta XML de Junos.

Ejemplo: Aplicación Java NETCONF para imprimir temperaturas de componentes

Este programa de kit de herramientas Java de NETCONF imprime el nombre y la temperatura correspondiente de los componentes en un dispositivo que ejecuta Junos OS.

Requisitos

  • Dispositivo de enrutamiento, conmutación o seguridad que ejecuta Junos OS.

  • El kit de herramientas Java de NETCONF está instalado en el servidor de administración de configuración.

  • La aplicación cliente puede iniciar sesión en el dispositivo donde reside el servidor NETCONF.

  • El servicio NETCONF a través de SSH está habilitado en el dispositivo donde reside el servidor NETCONF.

Visión general

En el ejemplo siguiente se ejecuta la RPC de la API get-environment-information XML de Junos, que es el equivalente al show chassis environment comando del modo operativo en un dispositivo que ejecuta Junos OS. El programa analiza la respuesta RPC y, para todos los componentes que enumeran una temperatura, el programa imprime el nombre del componente y la temperatura correspondiente.

El formato de respuesta RPC para la get-environment-information solicitud RPC es:

Para analizar la respuesta, el programa utiliza el findNodes() método para devolver una lista de org.w3c.dom.Node objetos. Para cada <environment-item> nodo, el programa obtiene una lista de nodos secundarios. Si hay un elemento de temperatura presente en la lista de nodos secundarios, el programa imprime el nombre y la temperatura de ese elemento de entorno.

Configuración

Creación del programa Java

Procedimiento paso a paso

Para construir el archivo de programa Java:

  1. Asigne al archivo un nombre descriptivo.

    El nombre de archivo debe ser el mismo que el nombre de la clase. En este ejemplo, el archivo y la clase se denominan ShowTemps.

  2. Agregue el código al archivo y actualice las variables específicas del entorno, como la dirección IP del host remoto, el nombre de usuario, la contraseña y <rpc-reply> los elementos de etiqueta.

    El código Java completo para el programa ShowTemps.java se presenta aquí.

Compilar y ejecutar el programa Java

Procedimiento paso a paso

Necesita un compilador Java para compilar el código fuente y crear un programa ejecutable.

Para compilar el código y ejecutar el programa en el servidor de administración de configuración:

  1. Compile el archivo ShowTemps.java .

  2. Ejecute el programa ShowTemps .

Verificación

Verificación de los resultados

Propósito

Compruebe que el programa ShowTemps se ejecuta correctamente.

Acción

Si el programa se ejecuta correctamente, establece una conexión y crea una sesión NETCONF con el dispositivo especificado. A continuación, el programa ejecuta la RPC de la API get-environment-information XML de Junos, analiza la respuesta RPC e imprime todos los elementos del <temperature>entorno que contienen un nodo secundario.

La siguiente salida de ejemplo proviene de un enrutador m7i de Juniper Networks: