PDK::Connector::Role - 设备连接器通用角色

SYNOPSIS

with 'PDK::Connector::Role';

# 在连接器类中使用该角色
has '+host' => (default => '192.168.1.1');
has '+username' => (default => 'admin');

DESCRIPTION

设备连接器的通用 Moose 角色,定义了网络设备连接的基本属性和方法。 所有具体的设备连接器类都应该使用这个角色,以确保统一的接口和行为。

ATTRIBUTES

host

设备主机名或IP地址,必需属性。

username

登录用户名,默认为 'read'。

password

登录密码,默认为空。

passphrase

密码短语,用于某些需要额外认证的设备。

enPassword

特权模式密码,用于进入特权模式。

proto

连接协议,默认为 'ssh',支持 ssh 和 telnet。

prompt

登录成功提示符的正则表达式模式。

enPrompt

特权模式提示符的正则表达式模式。

timeout

会话超时时间(秒),默认为30秒。

debug

调试模式级别,默认为2(不打印日志)。

log_file

日志文件路径,自动生成在用户目录的 logs 子目录下。

_login_

内部使用的登录状态标志。

_enable_

内部使用的特权模式状态标志。

METHODS

login

my $result = $conn->login;

登录设备方法。自动处理各种连接异常: - RSA密钥太小问题 - 不支持的加密算法 - 连接被拒绝(自动切换协议) - 主机密钥变更

返回包含登录结果的结构化数据。

connect

$conn->connect($args);

建立设备连接的实际实现。处理SSH密钥确认、密码输入、用户名提示等交互过程。

send

$conn->send($command);

发送命令到设备。

waitfor

my $output = $conn->waitfor($prompt);

等待设备响应,需要由具体连接器类实现。

execCommands

my $result = $conn->execCommands(\@commands);

执行多个命令序列,需要由具体连接器类实现。

getConfig

my $config = $conn->getConfig;

获取设备配置,需要由具体连接器类实现。

SEE ALSO

Moose::Role, Expect

AUTHOR

WENWU YAN <968828@gmail.com>

LICENSE AND COPYRIGHT

版权所有 2025 WENWU YAN。

本软件按Perl自身许可条款发布。