编写 NETCONF Perl 客户端应用程序
借助瞻博网络 NETCONF Perl 客户端,熟悉 Perl 编程语言的程序员能够创建自己的 Perl 应用程序,以管理和配置运行 Junos OS 的路由、交换和安全设备。该 Net::Netconf::Manager
模块提供面向对象的接口,用于与运行 Junos OS 的设备上的 NETCONF 服务器通信,并使您能够连接到设备、建立 NETCONF 会话,以及执行操作和配置请求。
以下大纲列出了编写管理运行 Junos OS 设备的 NETCONF Perl 客户端应用程序涉及的基本任务。每个任务都会提供一个链接,指向有关执行该任务的详细信息。
- 导入 Perl 模块并声明常量 — 在 NETCONF Perl 客户端应用程序中导入 Perl 模块和声明常量
- 连接到 NETCONF 服务器 — 连接到 Perl 客户端应用程序中的 NETCONF 服务器 , 并在 NETCONF Perl 客户端应用程序中以交互方式收集参数
- 将请求提交到 NETCONF 服务器 — 在 Perl 客户端应用程序中将请求提交到 NETCONF 服务器
- 解析来自 NETCONF 服务器的响应并格式化 — 解析 Perl 客户端应用程序中的 NETCONF 服务器响应
- 关闭与 NETCONF 服务器的连接 — 关闭与 Perl 客户端应用程序中的 NETCONF 服务器的连接
以下示例说明了这些任务,这些任务使用 Net::Netconf::Manager
对象从运行 Junos OS 的设备请求信息。此示例展示了执行简单查询所需的最低代码。
在 Junos OS 16.1 版之前,每个 Junos OS 版本都包括与版本相关的 NETCONF Perl 客户端的全新版本。从 Junos OS 16.1 版开始,NETCONF Perl 客户端与版本无关,托管在 GitHub 和 CPAN 上,可以管理运行任何 Junos OS 版本的设备。NETCONF Perl 发行版的与版本相关的示例脚本与 GitHub 和 CPAN 上托管的与版本无关版本中的示例脚本不同。
导入必需的模块并声明常量。
use strict; use Carp; use Net::Netconf::Manager;
创建一个
Manager
对象并连接到设备。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"; }
构造查询并将其发送到 NETCONF 服务器。
my $query = "get_chassis_inventory"; my $res = $jnx->$query();
根据需要处理响应。
print "Server response: \n $jnx->{'server_response'} \n";
断开与 NETCONF 服务器的连接。
$jnx->disconnect();