Escribir aplicaciones cliente NETCONF Perl
El cliente NETCONF Perl de Juniper Networks permite a los programadores familiarizados con el lenguaje de programación Perl crear sus propias aplicaciones Perl para administrar y configurar enrutamiento, conmutación y dispositivos de seguridad que ejecutan Junos OS. El Net::Netconf::Manager
módulo proporciona una interfaz orientada a objetos para comunicarse con un servidor NETCONF en dispositivos que ejecutan Junos OS, y le permite conectarse al dispositivo, establecer una sesión NETCONF y ejecutar solicitudes operativas y de configuración.
El siguiente esquema enumera las tareas básicas que implica escribir una aplicación cliente NETCONF Perl que administra un dispositivo que ejecuta Junos OS. Cada tarea proporciona un vínculo a información más detallada sobre la realización de esa tarea.
- Importar módulos Perl y declarar constantes: importa módulos Perl y declara constantes en aplicaciones cliente NETCONF Perl
- Conéctese al servidor NETCONF: conéctese al servidor NETCONF en aplicaciones cliente Perl y recopile parámetros de forma interactiva en las aplicaciones cliente de NETCONF Perl
- Enviar solicitudes al servidor NETCONF: envíe una solicitud al servidor NETCONF en aplicaciones cliente Perl
- Analizar y formatear la respuesta del servidor NETCONF: analizar la respuesta del servidor NETCONF en las aplicaciones cliente perl
- Cerrar la conexión al servidor NETCONF: cierre la conexión al servidor NETCONF en las aplicaciones cliente perl
Las tareas se ilustran en el ejemplo siguiente, que usa el Net::Netconf::Manager
objeto para solicitar información a un dispositivo que ejecuta Junos OS. En el ejemplo, se presenta el código mínimo necesario para ejecutar una consulta simple.
Antes de Junos OS versión 16.1, cada versión de Junos OS incluía una nueva versión dependiente de la versión del cliente NETCONF Perl. A partir de Junos OS versión 16.1, el cliente de NETCONF Perl es independiente de la versión, se aloja en GitHub y CPAN, y puede administrar dispositivos que ejecutan cualquier versión de Junos OS versión. Los scripts de ejemplo de las versiones dependientes de la versión de la distribución NETCONF Perl difieren de los de la versión independiente de la versión alojada en GitHub y CPAN.
Importe los módulos necesarios y declare las constantes.
use strict; use Carp; use Net::Netconf::Manager;
Cree un
Manager
objeto y conéctese al dispositivo.my %deviceinfo = ( access => "ssh", login => "johndoe", password => "password123", hostname => "Router1" ); my $jnx = new Net::Netconf::Manager(%deviceinfo); unless ( ref $jnx ) { croak "ERROR: $deviceinfo{hostname}: failed to connect.\n"; }
Construya la consulta y envíela al servidor NETCONF.
my $query = "get_chassis_inventory"; my $res = $jnx->$query();
Procese la respuesta según sea necesario.
print "Server response: \n $jnx->{'server_response'} \n";
Desconecte del servidor NETCONF.
$jnx->disconnect();