Cisco Switch/Router Interface management
This patch introduces managing remotely cisco IOS network devices
through ssh or telnet with a puppet type/provider.
This patch allows to manage router/switch interface
with the interface type:
interface {
"FastEthernet 0/1":
device_url => "ssh://user:pass@cisco2960.domain.com/", mode => trunk, encapsulation => dot1q, trunk_allowed_vlans => "1-99,200,253", description => "to back bone router"
}
It is possible with this patch to set interface:
- mode (access or trunk)
- native vlan (only for access mode)
- speed (auto or a given speed)
- duplex (auto, half or full)
- trunk encapsulation
- allowed trunk vlan
- ipv4 addresses
- ipv6 addresses
- etherchannel membership
The interface name (at least for the cisco provider) can be any
shorthand interface name a switch or router can use.
The device url should conform to:
- scheme: either telnet or ssh
- user: can be absent depending on switch/router line config
- pass: must be present
- port: optional
- an optional enable password can be mentioned in the url query string
Ex:
To connect to a switch with a line password and an enable password:
"telnet://:letmein@cisco29224XL.domain.com/?enable=letmeinagain"
To connect to a switch/router through ssh and a privileged user:
"ssh://brice:letmein@cisco1841L.domain.com/"
Note:
This patch only includes a Cisco IOS provider. Also terminology adopted
in the various types are mostly the ones used in Cisco devices.
This patch was tested against:
- (really old) Cisco switch 2924XL with ios 12.0(5)WC10
- Cisco router 1841 with ios 12.4(15)T8
- Cisco router 877 with ios 12.4(11)XJ4
- Cisco switch 2960G with ios 12.2(44)SE
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>