Net::CLI::Interact::Manual::Phrasebook - List of Supported CLIs
The bundled phrasebook includes support for a variety of network device CLIs. Many were contributed by users of the module. If you set up a new CLI dictionary, please consider contributing it back! The phrasebook specification is given in Net::CLI::Interact::Phrasebook.
For each supported CLI, there is a name which must be passed in the personality option to Net::CLI::Interact's new() method; this is the same as the directory containing the phrasebook file.
personality
new()
After that, you can call the included Macros, and the module will use the included Prompt to match the current state of the CLI. More information is available in the Tutorial and Cookbook.
See the files themselves at the following link for full details: https://github.com/ollyg/Net-CLI-Interact/tree/master/share/phrasebook.
ASA
Avaya
Bash
CatOS
Cisco (generic)
Csh
ExtremeOS
F5
Fortinet
Foundry / Brocade
Before connecting to the device you probably want to set the output separator to be:
$nci->transport->ors("\r\n");
For users of Net::Appliance::Session this should be:
$session_obj->nci->transport->ors("\r\n");
FWSM
FWSM 3
HP
IOS
JunOS
Mikrotik
Nortel
OVMCLI
PIXOS
PIXOS 7
Qnap
RedBack
ScreenOS
WLC
Zyxel
In order to support a new device, particularly for the Net::Appliance::Session module, there is a basic set of prompts and macros you must create.
With SSH, no user prompt is required, but for other transports you should include a prompt named user which matches the "Username:" prompt presented by the device.
user
Username:
# example only! prompt user match /[Uu]sername/
With all transports you must provide a pass prompt which matches the "password:" prompt presented by the device.
pass
password:
# example only! prompt pass match /[Pp]assword: ?$/
The last essential prompt is of course a simple command line prompt match, and this should be named generic.
generic
# example only! prompt generic match /> ?$/
To cleanly disconnect from your device session, you might want to include a macro named disconnect with the relevant command. Note there is no need for a match statement in this macro, as the device should have detached!
disconnect
match
# example only! macro disconnect send exit
For paging support, include either only a prompt macro, or two macros named enable_paging and disable_paging, depending on what the device requires. In all cases, there must be one substitution ("%s") which is where the number of page lines will be inserted into the command.
prompt
enable_paging
disable_paging
%s
# example only! macro paging send terminal length %s
For privileged mode (super-user) support, include a prompt named privileged first, and then include macros named begin_privileged and end_privileged to enter and leave the mode, respectively. Note that both macros will require explicit match statements, because the prompt encountered after issuing the command will be different to that encountered before.
privileged
begin_privileged
end_privileged
# example only! prompt privileged match /# ?$/ macro begin_privileged send enable match user or pass or privileged macro end_privileged send disable match generic
Similarly for configure mode, include a prompt named configure first, and then include macros named begin_configure and end_configure to enter and leave the mode, respectively. Note that both macros will require explicit match statements, because the prompt encountered after issuing the command will be different to that encountered before.
configure
begin_configure
end_configure
# example only! prompt configure match /\(config[^)]*\)# ?$/ macro begin_configure send configure terminal match configure macro end_configure send exit match privileged
To install Net::CLI::Interact, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::CLI::Interact
CPAN shell
perl -MCPAN -e shell install Net::CLI::Interact
For more information on module installation, please visit the detailed CPAN module installation guide.