v
“Manage Your Switches Like Servers”
Puppet Labs and Cumulus Networks
Presented By: Carl Caum and Leslie Carr
September 24th, 2015
Who is Carl?
§ Technical Marketing Manager
•  @ccaum
•  Recovering sysadmin
•  Interested in continuous delivery and 
IT cultures that promote empathy
cumulusnetworks.com
The Competing Pressures of IT
cumulusnetworks.com 3
Reliability
Speed
cumulusnetworks.com 4
of managers are not
satisfied with the speed
at which IT deploys
60%
of IT outages are due to
unexpected configuration
changes
70%
Main Steps of Puppet Enterprise
5
service { 'ssh':
ensure => running,
enable => true,
}
Choose from thousands
of pre-built modules
Simulate Enforce ReportDefine
cumulusnetworks.com
The Puppet Enterprise Approach
cumulusnetworks.com 6
DEFINE AUTOMATE
operating system resources · virtual machines · clouds · network devices
· storage devices · applications
Puppet Enterprise Steps
cumulusnetworks.com 7
Choose from thousands of pre-
built modules.
Define the desired state using a
powerful, declarative language.
Simulate Enforce ReportDefine
Puppet Enterprise Steps
cumulusnetworks.com 8
Simulate Enforce ReportDefine
Simulate changes before you deploy them.
Puppet Enterprise Steps
cumulusnetworks.com 9
Simulate Enforce ReportDefine
Enforce changes
and remediate
configuration drift
Puppet Enterprise Steps
cumulusnetworks.com 10
Simulate Enforce ReportDefine
Gain insight into
your infrastructure.
Puppet Enterprise for Networking
cumulusnetworks.com 11
Networking before DevOps
•  Siloed teams
•  Siloed tooling and processes
•  Slow collaboration and information sharing
•  Different processes and tasks for provisioning vs ongoing
change management
Puppet Enterprise for Networking
cumulusnetworks.com 12
Collaborative Networking
•  Unify change insight & management for all infrastructure
•  Enhance collaboration between SysOps and NetOps
Puppet Enterprise for Networking
cumulusnetworks.com 13
Puppet for Networking
•  Share infrastructure code between all of IT
•  Eliminate differences between initial configuration and
ongoing change management
•  Unify application deployments that span compute and
network
Puppet Enterprise for Networking
cumulusnetworks.com 14
App
Day One
•  Configuration of authentication, SNMP, NTP, syslog
Day Two
•  Configuration of interfaces, port channels, QoS
policies
Day Three
•  Application deployments (dynamic routes, VLANs,
change audits)
•  Model network dependencies and deploy in concert
with compute changes
•  Holistically monitor app deployments in Puppet
Configuration Manager
DB
Network
AppApp
Who is Leslie?
§ Operations Engineer
•  @lesliegeek
•  Google
•  Craigslist
•  Twitter
•  Wikimedia Foundation
(Wikipedia)
cumulusnetworks.com
Cumulus Networks at PuppetConf 2015
cumulusnetworks.com 16
See Cumulus Networks Leslie Carr
speak on “Why NetDevOps?” at
PuppetConf 2015
1:30pm, Friday, October 9th
What is Cumulus Linux?
§ Cumulus®
Linux®
•  Debian based distribution for Network switches
Cumulus Philosophy
•  Manage your network switch as a server
•  Use existing linux tools to configure network switches
•  Current release — Based on Debian wheezy
cumulusnetworks.com
Single-Vendor blob
-  Constrained innovation
-  High margins for vendors
-  Slow feature dev cycles
Great Physical Networking with the Cumulus
®
Linux
®
OS
18
HARDWARE
APP APPAPP
OPERATING SYSTEM
Customer Choice
-  Vibrant DevOps community
-  Best-of-breed vendors
-  Rapid deployment
hardware
operating system
app app app
NSX
cumulusnetworks.com
Cumulus®
Linux®
Hardware Compatibility List
cumulusnetworks.com 19
v
Installation and Configuration
Traditional Network Gear Process
•  Comes preinstalled with (old) software
•  Telnet or serial into box
•  TFTP new image
•  Enable SSH (sometimes with passwords!)
•  Copy/paste configuration
•  Automation usually restricted to Perl, TCL, and expect
scripts
cumulusnetworks.com
Normal Server Installation
•  Reboot and bios with PXE automatically catches
•  TFTP boot image
•  New image pulled over via normal means (usually
webserver, sometimes TFTP)
•  Pre/post installation scripts runs
•  Automation software manages configuration and
administration
cumulusnetworks.com
Network OS installer discovery and execution
•  Like a pre-installed BIOS, PXE, and kickstarter in one
•  Implemented through Linux kernel with BusyBox
Donated to the Open Compute Project (OCP)
http://www.onie.org
ONIE
cumulusnetworks.com
Comparison
bare metal server
Server OS
app app app
BIOS and PXE
bare metal switch
Network OS
app app app
Boot Loader and ONIE
Similar to installing a server OS using PXE
Network OS
Boot Loader and ONIE
boot into
Boot Loader and ONIE
boot into
ONIE looks for and installs network OS image
cumulusnetworks.com
Cumulus Linux OS Installation with ONIE
cumulusnetworks.com 25
§ Look for installer (“discover”)
•  Locally, e.g. USB if available
•  Over the network on eth0
•  DHCP, IPv6 neighbor, TFTP
§ Search for file name and execute
•  onie-­‐installer-­‐*	
  
1
2
Cumulus Linux
OS image
During the DHCP process over eth0 (management interface), Cumulus
Linux will request DHCP option 239. This option is used to specify the
custom provisioning script. It will also send the following headers:
Header	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Value	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Example	
  
-­‐-­‐-­‐-­‐-­‐-­‐	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐-­‐-­‐-­‐-­‐	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐-­‐-­‐-­‐-­‐-­‐-­‐	
  
User-­‐Agent	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  CumulusLinux-­‐AutoProvision/0.4	
  
CUMULUS-­‐ARCH	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  CPU	
  architecture	
  	
  	
  	
  	
  	
  powerpc	
  
CUMULUS-­‐BUILD	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  1.5.1-­‐5c6829a-­‐201309251712-­‐final	
  
CUMULUS-­‐LICENSE-­‐INSTALLED	
  	
  	
  	
  	
  Either	
  0	
  or	
  1	
  	
  	
  	
  	
  	
  	
  	
  	
  1	
  
CUMULUS-­‐MANUFACTURER	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  dni	
  
CUMULUS-­‐PRODUCTNAME	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  et-­‐7448bf	
  
CUMULUS-­‐SERIAL	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  XYZ123004	
  
CUMULUS-­‐VERSION	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  1.5.1	
  
CUMULUS-­‐PROV-­‐COUNT	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  0	
  
CUMULUS-­‐PROV-­‐MAX	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  32	
  
ZTP – Zero Touch Provisioning
cumulusnetworks.com
§ Script must contain CUMULUS-­‐AUTOPROVISIONING	
  	
  
Can be in the following languages :
•  Perl
•  Python
•  Ruby
•  Shell
ZTP(Zero Touch Provisioning) Execution
cumulusnetworks.com
ZTP Example with Puppet
1	
  #!/bin/bash	
  
2	
  
3	
  function	
  error()	
  {	
  
4	
  	
  echo	
  -­‐e	
  "e[0;33mERROR:	
  Provisioning	
  
failed	
  running	
  $BASH_COMMAND	
  at	
  line	
  
$BASH_LINENO	
  of	
  $(basename	
  $0)	
  e[0m"	
  >&2	
  
5	
  	
  exit	
  1	
  
6	
  }	
  
7	
  trap	
  error	
  ERR	
  
8	
  #	
  Allow	
  Cumulus	
  testing	
  repo	
  
9	
  sed	
  -­‐i	
  /etc/apt/sources.list	
  -­‐e	
  's/^#s*
(deb.*testing.*)$/1/g'	
  
10	
  
11	
  #	
  Upgrade	
  and	
  install	
  Puppet	
  
12	
  apt-­‐get	
  update	
  -­‐y	
  
	
  
13	
  apt-­‐get	
  upgrade	
  -­‐y	
  
14	
  apt-­‐get	
  install	
  puppet	
  -­‐y	
  
15	
  	
  
16	
  echo	
  "Configuring	
  puppet"	
  |	
  wall	
  -­‐n	
  
17	
  sed	
  -­‐i	
  /etc/default/puppet	
  -­‐e	
  's/
START=no/START=yes/'	
  
18	
  
19	
  service	
  puppet	
  restart	
  
20	
  
21	
  #	
  CUMULUS-­‐AUTOPROVISIONING	
  
22	
  
23	
  exit	
  0	
  
	
  
	
  
cumulusnetworks.com
Video
cumulusnetworks.com
§ Because Debian based, we can do everything with
Puppet Enterprise
•  users
•  interface configuration
•  routing software (Quagga) configuration
Puppet
cumulusnetworks.com
Video!
cumulusnetworks.com
How can we make your life better?
Make Life Even Better
cumulusnetworks.com
Warning - small hard drive and limited processing
power -- not recommended for long term
Scenario - installing new rack with limited
connectivity
* make switch puppetmaster
Interim Puppet Server!
cumulusnetworks.com
Example Topology
leaf 1 leaf 2
swp1 - 4 swp1 - 4
Puppetmaster
cumulusnetworks.com
Video
cumulusnetworks.com
Transition
cumulusnetworks.com
Puppet Modules and Other Resources
cumulusnetworks.com 37
Puppet:
•  Solutions Page:
https://puppetlabs.com/solutions/cumulus
•  Puppet Modules:
https://forge.puppetlabs.com/cumuluslinux
Cumulus:
•  Puppet demo on Cumulus Workbench and other
materials
http://cumulusnetworks.com/solutions/data-center-
automation/puppet/
§  PTM
•  https://github.com/CumulusNetworks/ptm
Example Code
•  https://github.com/LeslieCarr/puppet-presentation
Cumulus Open Source
•  http://oss.cumulusnetworks.com
Twitter
•  @lesliegeek
Find out more!
cumulusnetworks.com
The Building Blocks
§ Cumulus VX
https://cumulusnetworks.com/cumulus-vx/
§ Cumulus Workbench
https://cumulusnetworks.com/cw/
§ Cumulus Linux
http://cumulusnetworks.com/cumulus-linux/overview/
39
Prototype
TestAutomate
Deploy
{ Virtual Appliance }
{ Testing in the Cloud }
{ The Real Deal }
cumulusnetworks.com
Cumulus Networks at PuppetConf 2015
cumulusnetworks.com 40
See Cumulus Networks Leslie Carr
speak on “Why NetDevOps?” at
PuppetConf 2015
1:30pm, Friday, October 9th
Q&A
cumulusnetworks.com 41
© 2015 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its
affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI,
the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.
§ Thank You!
cumulusnetworks.com 42
Unleashing the Power of Open Networking

Manage your switches like servers

  • 1.
    v “Manage Your SwitchesLike Servers” Puppet Labs and Cumulus Networks Presented By: Carl Caum and Leslie Carr September 24th, 2015
  • 2.
    Who is Carl? § TechnicalMarketing Manager •  @ccaum •  Recovering sysadmin •  Interested in continuous delivery and  IT cultures that promote empathy cumulusnetworks.com
  • 3.
    The Competing Pressuresof IT cumulusnetworks.com 3 Reliability Speed
  • 4.
    cumulusnetworks.com 4 of managersare not satisfied with the speed at which IT deploys 60% of IT outages are due to unexpected configuration changes 70%
  • 5.
    Main Steps ofPuppet Enterprise 5 service { 'ssh': ensure => running, enable => true, } Choose from thousands of pre-built modules Simulate Enforce ReportDefine cumulusnetworks.com
  • 6.
    The Puppet EnterpriseApproach cumulusnetworks.com 6 DEFINE AUTOMATE operating system resources · virtual machines · clouds · network devices · storage devices · applications
  • 7.
    Puppet Enterprise Steps cumulusnetworks.com7 Choose from thousands of pre- built modules. Define the desired state using a powerful, declarative language. Simulate Enforce ReportDefine
  • 8.
    Puppet Enterprise Steps cumulusnetworks.com8 Simulate Enforce ReportDefine Simulate changes before you deploy them.
  • 9.
    Puppet Enterprise Steps cumulusnetworks.com9 Simulate Enforce ReportDefine Enforce changes and remediate configuration drift
  • 10.
    Puppet Enterprise Steps cumulusnetworks.com10 Simulate Enforce ReportDefine Gain insight into your infrastructure.
  • 11.
    Puppet Enterprise forNetworking cumulusnetworks.com 11 Networking before DevOps •  Siloed teams •  Siloed tooling and processes •  Slow collaboration and information sharing •  Different processes and tasks for provisioning vs ongoing change management
  • 12.
    Puppet Enterprise forNetworking cumulusnetworks.com 12 Collaborative Networking •  Unify change insight & management for all infrastructure •  Enhance collaboration between SysOps and NetOps
  • 13.
    Puppet Enterprise forNetworking cumulusnetworks.com 13 Puppet for Networking •  Share infrastructure code between all of IT •  Eliminate differences between initial configuration and ongoing change management •  Unify application deployments that span compute and network
  • 14.
    Puppet Enterprise forNetworking cumulusnetworks.com 14 App Day One •  Configuration of authentication, SNMP, NTP, syslog Day Two •  Configuration of interfaces, port channels, QoS policies Day Three •  Application deployments (dynamic routes, VLANs, change audits) •  Model network dependencies and deploy in concert with compute changes •  Holistically monitor app deployments in Puppet Configuration Manager DB Network AppApp
  • 15.
    Who is Leslie? § OperationsEngineer •  @lesliegeek •  Google •  Craigslist •  Twitter •  Wikimedia Foundation (Wikipedia) cumulusnetworks.com
  • 16.
    Cumulus Networks atPuppetConf 2015 cumulusnetworks.com 16 See Cumulus Networks Leslie Carr speak on “Why NetDevOps?” at PuppetConf 2015 1:30pm, Friday, October 9th
  • 17.
    What is CumulusLinux? § Cumulus® Linux® •  Debian based distribution for Network switches Cumulus Philosophy •  Manage your network switch as a server •  Use existing linux tools to configure network switches •  Current release — Based on Debian wheezy cumulusnetworks.com
  • 18.
    Single-Vendor blob -  Constrainedinnovation -  High margins for vendors -  Slow feature dev cycles Great Physical Networking with the Cumulus ® Linux ® OS 18 HARDWARE APP APPAPP OPERATING SYSTEM Customer Choice -  Vibrant DevOps community -  Best-of-breed vendors -  Rapid deployment hardware operating system app app app NSX cumulusnetworks.com
  • 19.
  • 20.
  • 21.
    Traditional Network GearProcess •  Comes preinstalled with (old) software •  Telnet or serial into box •  TFTP new image •  Enable SSH (sometimes with passwords!) •  Copy/paste configuration •  Automation usually restricted to Perl, TCL, and expect scripts cumulusnetworks.com
  • 22.
    Normal Server Installation • Reboot and bios with PXE automatically catches •  TFTP boot image •  New image pulled over via normal means (usually webserver, sometimes TFTP) •  Pre/post installation scripts runs •  Automation software manages configuration and administration cumulusnetworks.com
  • 23.
    Network OS installerdiscovery and execution •  Like a pre-installed BIOS, PXE, and kickstarter in one •  Implemented through Linux kernel with BusyBox Donated to the Open Compute Project (OCP) http://www.onie.org ONIE cumulusnetworks.com
  • 24.
    Comparison bare metal server ServerOS app app app BIOS and PXE bare metal switch Network OS app app app Boot Loader and ONIE Similar to installing a server OS using PXE Network OS Boot Loader and ONIE boot into Boot Loader and ONIE boot into ONIE looks for and installs network OS image cumulusnetworks.com
  • 25.
    Cumulus Linux OSInstallation with ONIE cumulusnetworks.com 25 § Look for installer (“discover”) •  Locally, e.g. USB if available •  Over the network on eth0 •  DHCP, IPv6 neighbor, TFTP § Search for file name and execute •  onie-­‐installer-­‐*   1 2 Cumulus Linux OS image
  • 26.
    During the DHCPprocess over eth0 (management interface), Cumulus Linux will request DHCP option 239. This option is used to specify the custom provisioning script. It will also send the following headers: Header                                                Value                                  Example   -­‐-­‐-­‐-­‐-­‐-­‐                                                -­‐-­‐-­‐-­‐-­‐                                  -­‐-­‐-­‐-­‐-­‐-­‐-­‐   User-­‐Agent                                                                                    CumulusLinux-­‐AutoProvision/0.4   CUMULUS-­‐ARCH                                    CPU  architecture            powerpc   CUMULUS-­‐BUILD                                                                              1.5.1-­‐5c6829a-­‐201309251712-­‐final   CUMULUS-­‐LICENSE-­‐INSTALLED          Either  0  or  1                  1   CUMULUS-­‐MANUFACTURER                                                                dni   CUMULUS-­‐PRODUCTNAME                                                                  et-­‐7448bf   CUMULUS-­‐SERIAL                                                                            XYZ123004   CUMULUS-­‐VERSION                                                                          1.5.1   CUMULUS-­‐PROV-­‐COUNT                                                                    0   CUMULUS-­‐PROV-­‐MAX                                                                        32   ZTP – Zero Touch Provisioning cumulusnetworks.com
  • 27.
    § Script must containCUMULUS-­‐AUTOPROVISIONING     Can be in the following languages : •  Perl •  Python •  Ruby •  Shell ZTP(Zero Touch Provisioning) Execution cumulusnetworks.com
  • 28.
    ZTP Example withPuppet 1  #!/bin/bash   2   3  function  error()  {   4    echo  -­‐e  "e[0;33mERROR:  Provisioning   failed  running  $BASH_COMMAND  at  line   $BASH_LINENO  of  $(basename  $0)  e[0m"  >&2   5    exit  1   6  }   7  trap  error  ERR   8  #  Allow  Cumulus  testing  repo   9  sed  -­‐i  /etc/apt/sources.list  -­‐e  's/^#s* (deb.*testing.*)$/1/g'   10   11  #  Upgrade  and  install  Puppet   12  apt-­‐get  update  -­‐y     13  apt-­‐get  upgrade  -­‐y   14  apt-­‐get  install  puppet  -­‐y   15     16  echo  "Configuring  puppet"  |  wall  -­‐n   17  sed  -­‐i  /etc/default/puppet  -­‐e  's/ START=no/START=yes/'   18   19  service  puppet  restart   20   21  #  CUMULUS-­‐AUTOPROVISIONING   22   23  exit  0       cumulusnetworks.com
  • 29.
  • 30.
    § Because Debian based,we can do everything with Puppet Enterprise •  users •  interface configuration •  routing software (Quagga) configuration Puppet cumulusnetworks.com
  • 31.
  • 32.
    How can wemake your life better? Make Life Even Better cumulusnetworks.com
  • 33.
    Warning - smallhard drive and limited processing power -- not recommended for long term Scenario - installing new rack with limited connectivity * make switch puppetmaster Interim Puppet Server! cumulusnetworks.com
  • 34.
    Example Topology leaf 1leaf 2 swp1 - 4 swp1 - 4 Puppetmaster cumulusnetworks.com
  • 35.
  • 36.
  • 37.
    Puppet Modules andOther Resources cumulusnetworks.com 37 Puppet: •  Solutions Page: https://puppetlabs.com/solutions/cumulus •  Puppet Modules: https://forge.puppetlabs.com/cumuluslinux Cumulus: •  Puppet demo on Cumulus Workbench and other materials http://cumulusnetworks.com/solutions/data-center- automation/puppet/
  • 38.
    §  PTM •  https://github.com/CumulusNetworks/ptm ExampleCode •  https://github.com/LeslieCarr/puppet-presentation Cumulus Open Source •  http://oss.cumulusnetworks.com Twitter •  @lesliegeek Find out more! cumulusnetworks.com
  • 39.
    The Building Blocks § CumulusVX https://cumulusnetworks.com/cumulus-vx/ § Cumulus Workbench https://cumulusnetworks.com/cw/ § Cumulus Linux http://cumulusnetworks.com/cumulus-linux/overview/ 39 Prototype TestAutomate Deploy { Virtual Appliance } { Testing in the Cloud } { The Real Deal } cumulusnetworks.com
  • 40.
    Cumulus Networks atPuppetConf 2015 cumulusnetworks.com 40 See Cumulus Networks Leslie Carr speak on “Why NetDevOps?” at PuppetConf 2015 1:30pm, Friday, October 9th
  • 41.
  • 42.
    © 2015 CumulusNetworks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis. § Thank You! cumulusnetworks.com 42 Unleashing the Power of Open Networking