puppet camp charlotte 2015: manage your switches like servers

34
v Manage Your Switches Like ServersCumulus Networks Presented By: Scott Suehle December 7 th , 2015

Upload: puppet

Post on 16-Apr-2017

568 views

Category:

Software


0 download

TRANSCRIPT

v

“Manage Your Switches Like Servers” Cumulus Networks

Presented By: Scott Suehle

December 7th, 2015

Who am I?

cumulusnetworks.com 2

Scott Suehle •  Community Manager for Cumulus Networks •  Former customer support junkie •  [email protected] •  @8bitdad on the twitters •  kilted1 on #CumulusNetworks on Freenode

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%

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

cumulusnetworks.com 6

Collaborative Networking •  Unify change insight & management for all infrastructure

•  Enhance collaboration between SysOps and NetOps

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

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

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 OS Software-Locked Hardware

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

Cumulus® Linux® Hardware Compatibility List

cumulusnetworks.com 11

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

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

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

§ 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

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:

HeaderValueExample------------------User-AgentCumulusLinux-AutoProvision/0.4CUMULUS-ARCHCPUarchitecturepowerpcCUMULUS-BUILD1.5.1-5c6829a-201309251712-finalCUMULUS-LICENSE-INSTALLEDEither0or11CUMULUS-MANUFACTURERdniCUMULUS-PRODUCTNAMEet-7448bfCUMULUS-SERIALXYZ123004CUMULUS-VERSION1.5.1CUMULUS-PROV-COUNT0CUMULUS-PROV-MAX32

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/bash23functionerror(){4echo-e"\e[0;33mERROR:Provisioning

failedrunning$BASH_COMMANDatline$BASH_LINENOof$(basename$0)\e[0m">&2

5exit16}7traperrorERR8#AllowCumulustestingrepo9sed-i/etc/apt/sources.list-e's/^#\s*\

(deb.*testing.*\)$/\1/g'1011#UpgradeandinstallPuppet12apt-getupdate-y

13apt-getupgrade-y14apt-getinstallpuppet-y1516echo"Configuringpuppet"|wall-n17sed-i/etc/default/puppet-e's/

START=no/START=yes/'1819servicepuppetrestart2021#CUMULUS-AUTOPROVISIONING2223exit0

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

Open Networking

cumulusnetworks.com 23

Quagga

Routing Switching Hardware

Open Source Tools:

Apps

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 30

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/CumulusNetworks/cldemo

Cumulus Open Source •  http://oss.cumulusnetworks.com

Community §  Community.cumulusnetworks.com

Twitter •  @8bitdad and @CumulusNetworks

Freenode •  #CumulusNetworks

Find out more!

cumulusnetworks.com

The Building Blocks

32

Prototype

Test Automate

Deploy

cumulusnetworks.com

Cumulus VX {Virtual Appliance} https://cumulusnetworks.com/cumulus-vx/

Cumulus Workbench {Testing in the Cloud} https://cumulusnetworks.com/cw/

Cumulus Linux {The Real Deal} http://cumulusnetworks.com/cumulus-linux/overview/

DevOps for Networking

Q&A

cumulusnetworks.com 33

© 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 34

Unleashing the Power of Open Networking