App-Tel
view release on metacpan or search on metacpan
COMMANDS.md view on Meta::CPAN
here. For example, DlinkColor.pm would be loaded by
syntax => 'Dlink',
You can chain load these so you can have a default set of highlight rules for
your company and specific set of rules for Cisco routers or switches or
whatever..
## username_prompt and password_prompt
username_prompt => "nom d'utilisateur:",
password_prompt => 'mot de passe:',
You might have a system that has a prompt that isn't like one of the standard
ones used by most vendors. You might even find systems that have been
regionalized and prompt you in your native language. If this is the case you
can override the default username and password prompts.
## ena_username_prompt and ena_password_prompt
ena_username_prompt => "nom d'utilisateur:",
ena_password_prompt => 'mot de passe:',
Very similar to the normal username prompt. If your enable prompt has been
changed to something you can override it using these commands.
## pagercmd
pagercmd => 'disable clipaging',
Extreme networks and Dlink both use 'disable clipaging' while Cisco uses 'term
length 0'. Juniper uses 'set cli screen-length 0', but also might need 'set
cli complete-on-space off' to avoid annoying you while running scripts.
Some vendors don't have a command to turn off the pager. In those cases I
tried setting tty rows to 10000. Not suprisingly, the vendors that I tried it
on don't use the actual terminal size to control paging, so they still had
more prompts every 20 or so lines.
If your particular device does respect tty sizing, and you have the
Term::ReadKey module, then you can set:
pagercmd => sub { _stty_rows(10000) },
In any case, these pagercmds take effect when tel is run in a non-interactive
mode, using either the -c or -x flags to specify scripts to run.
# Host Ranges
If you have the optional NetAddr::IP module installed you can use ranges in
the 'rtr' array instead of regexes. Here are some examples:
# you can use just the trailing octet:
{ 'regex' => '172.28.0.2-28', 'profile' => 'zhone_olt' },
# or the full IPv4 address:
{ 'regex' => '192.168.13.17-192.168.32.128', 'profile' => 'zhone_olt' },
# IPv6 is supported:
{ 'regex' => 'fe80::1-fe80::256', 'profile' => 'zhone_olt' },
# CIDR is also supported:
{ 'regex' => '192.168.13.0/24', 'profile' => 'zhone_olt' },
{ 'regex' => 'fe80::/64', 'profile' => 'zhone_olt' },
# comma separation is supported if you have multiple values that will load the
# same profile:
{ 'regex' => '192.168.13.17-192.168.32.128,172.16.0.2-172.16.0.13,172.28.0.0/24', 'profile' => 'zhone_olt' },
This allows you to load profiles by lists of IPs instead of DNS based
hostnames, which can be useful if your devices are spread out and your gear
isn't organized by DNS.
# wishlist
1. scrollback buffer across multiple sessions
[Pass]: http://www.passwordstore.org/
( run in 2.050 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )