Issue #5764 has been updated by James Turnbull.

Status changed from Needs Decision to Duplicate


----------------------------------------
Feature #5764: POC implementation of a Cisco switch/router type/provider
https://projects.puppetlabs.com/issues/5764

Author: Paul Berry
Status: Duplicate
Priority: Normal
Assignee: Nigel Kersten
Category: 
Target version: 
Affected Puppet version: 
Keywords: 
Branch: https://github.com/masterzen/puppet/tree/feature/puppet-device


This ticket is to track a patch set submitted by Brice Figureau on 1/3/2011 
under the subject line "POC implementation of a Cisco switch/router 
type/provider".

>From the summary e-mail:

This is my Christmas Gift for the community :)
That's something that was haunting me for a long time: a way to manage
switch/routers directly from puppet.
Unfortunately most of the switches/routers don't run ruby natively and
as such can't run puppet.

Based on an open-space discussion that happened at PuppetCamp EU in May 2010, I
finally managed to find the time to implement a solution to this problem.

This is currently a Proof Of Concept of a puppet type/provider connecting
to remote cisco switch/routers running ios to manage:
 * interfaces (including ip address, trunking, etc...)
 * vlans

This has been tested successfully on some cisco hardware I happened
to have available (a couple of switch and low-end routers).

The puppet provider can connect to remote switch/routers through
ssh and/or telnet.

To manage an interface:

<pre>
interface {
       "FastEthernet 0/1":
               device_url => "ssh://user:[email protected]/",
               mode => trunk,
               encapsulation => dot1q,
               trunk_allowed_vlans => "1-99,200,253",
               description => "to back bone router"
}
</pre>

or
<pre>
interface {
       "Vlan 1":
               device_url => "ssh://user:[email protected]/",
               description => "internal net",
               ipaddress => [ "192.168.0.1/24", "fe08::/128 link-local"]
}
</pre>

And to manage vlans:
<pre>
vlan {
       "99":
         description => "management",
               device_url => "ssh://user:[email protected]/",
}
</pre>

I didn't solve the uniqueness of the name of an interface yet (currently
it isn't possible to have 2 switches with the same interface name, which is
an issue).

One possibility would be to use as interface name, the device_url.
If anyone has a better idea, let me know.

If this patch proves to be a success, we can add more providers
(ie hp procurve, juniper routers, etc..) and more types (routers, access
lists, routing table entries, routing protocols, etc...).


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to