Scott Suehle from Cumulus Networks presented on managing network switches like servers using Cumulus Linux. Cumulus Linux allows switches to be managed like Linux servers through tools like Puppet for configuration automation. It supports a wide range of hardware and provides zero-touch provisioning through scripts like Puppet to initially configure switches. Cumulus Linux uses Linux tools and processes for switch installation and management for improved collaboration between network and system teams.
Professional Resume Template for Software Developers
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
1. v
“Manage Your Switches Like Servers”
Cumulus Networks
Presented By: Scott Suehle
December 7th, 2015
2. Who am I?
cumulusnetworks.com 2
Scott Suehle
• Community Manager for Cumulus Networks
• Former customer support junkie
• scotts@cumulusnetworks.com
• @8bitdad on the twitters
• kilted1 on #CumulusNetworks on Freenode
4. 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%
5. cumulusnetworks.com 5
Networking before DevOps
• Siloed teams
• Siloed tooling and processes
• Slow collaboration and information sharing
• Different processes and tasks for provisioning vs ongoing
change management
7. cumulusnetworks.com 7
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
8. 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
9. Freedom of Choice in the Data Center Rack
cumulusnetworks.com 9
Storage
NAS/SAN appliances
Compute
Blade server chassis, blade servers
Networking
Data center switches
Choice of Hardware Choice of OSSoftware-Locked Hardware
10. Industry-Standard Network Hardware
Cumulus Networks and Partner Confidential 10
QFX 3500
Nexus 3100
Nexus 9000
7500E
7250X
HCL:
Agema, Edge-Core, Penguin Computing,
Quanta, Supermicro, Dell, HP
powered by
Juniper Cisco Arista Brite-Box | White Box
13. 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
14. 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
15. ONIE
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
16. 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
17. Cumulus Linux OS Installation with ONIE
cumulusnetworks.com
§ 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-*
Cumulus Linux
OS image
1
2
18. 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
19. § Script must contain CUMULUS-AUTOPROVISIONING
Can be in the following languages :
• Perl
• Python
• Ruby
• Shell
ZTP(Zero Touch Provisioning) Execution
cumulusnetworks.com
20. 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
22. § Because Debian based, we can do everything with
Puppet Enterprise
• users
• interface configuration
• routing software (Quagga) configuration
Puppet
cumulusnetworks.com
25. How can we make your life better?
Make Life Even Better
cumulusnetworks.com
26. 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