SlideShare a Scribd company logo
v 
Switch as a Server 
Leslie Carr
Who is Leslie? 
Operations Engineer 
 Google 
 Craigslist 
 Twitter 
 Wikimedia Foundation 
(Wikipedia)
Who is Leslie? 
Cumulus Networks®
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
Cumulus® Linux® Hardware Compatibility List 
cumulusnetworks.com 4
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
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
ONIE 
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
Cumulus Linux OS Installation with ONIE 
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 
cumulusnetworks.com 9
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
ZTP Execution 
Script must contain CUMULUS-AUTOPROVISIONING 
Can be in the following languages : 
 Perl 
 Python 
 Ruby 
 Shell
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
Comparison 
Similar to installing a server OS using PXE 
app app app 
Server OS 
BIOS and PXE 
bare metal server 
app app app 
Network OS 
Boot Loader and ONIE 
bare metal switch 
ONIE looks for and installs network OS image 
boot into 
Network OS 
boot into 
Boot Loader and 
ONIE 
Boot Loader and 
ONIE
Video
Because Debian based, we can do 
everything via puppet 
 users 
 interface configuration 
 routing software (Quagga) configuration 
Puppet
Video!
Make Life Even Better 
How can we make your life better?
Interim Puppet Server! 
Warning - small hard drive and limited 
processing power -- not recommended for 
long term 
Scenario - installing new rack with limited 
connectivity 
* make switch puppetmaster
Example Topology 
leaf 1 leaf 2 
swp1 - 4 swp1 - 4 
Puppetmaster
Video
Transition
Existing Network Interface Managers 
 Optimized for desktop and hypervisor environments 
 Complexity increases with interface configuration 
scale 
 Burden of network interface configuration 
dependency ordering is on the user 
 Lack of support for incremental changes to network 
interfaces: minimal disruption 
 Lack of tools to query and validate running interface 
configuration
Linux Networking 
Switch networking characteristics: 
 Large number of interfaces 
 Switch ports, bridges, bonds, vlans 
 Large number of interface attributes 
 Addresses, bridge stp, mstp and igmp attributes 
 Mostly static configuration
ifupdown 
Benefits 
 Pluggable architecture 
 Uses native Linux tools, 
enabling faster development 
 Good user documentation, 
well known tool 
Challenges 
 No knowledge of interface 
configuration dependency 
(burden on the user) 
 Large scale configuration 
results in large files or too 
many files 
 No support for incremental 
configurations 
 No support to query/validate 
running interface 
configuration 
 literate program 
 Bugs
ifupdown2 
 New implementation of ifupdown in Python 
 Backward compatible with ifupdown interfaces format and 
commands 
 Continues to use existing Linux native tools to configure 
network interfaces. 
 Large number of interface attributes 
 Pluggable architecture add-on python modules for interface 
configuration 
 Meets some shortcomings seen with existing network interface 
managers on network switches 
 ifreload acts like HUP instead of restart
ifupdown2 compare cli? 
ifupdown 
auto swp19 
iface swp19 inet manual 
up link set $IFACE up 
down link set $IFACE down 
pre-up /sbin/ethtool -s $IFACE speed 
1000 
auto swp19.100 
iface swp19.100 inet manual 
up link set $IFACE up 
down link set $IFACE down 
auto vlan100 
iface vlan100 inet manual 
bridge_ports swp19.100 
mstpctl_stp on 
ifupdown2 
auto swp19 
iface swp19 
link-speed 1000 
auto vlan100 
iface vlan100 
bridge-ports swp19.100 
bridge-stp on
Network Interface Dependency 
▪ Handles network interface dependency 
cumulusnetworks.com 
using dependency graphs 
▪ Uses topological sort to order network 
interface configurations 
▪ Provides options and tools to query and 
execute interface configuration in 
dependency order 
▪ Built-in devices support 
ifupdown2 implicitly recognizes vlan and physical 
interfaces that appear as dependents and does the 
required minimal configuration to get them up: No 
need to specify `iface swp1.1000` in the example
ifupdown2 - Mako Templates 
## Note that the "range" ends with '4' 
## But will iterate only from 1 to 3 
## See Python range() for more details 
% for i in range(1, 4): 
auto swp${i} 
iface swp${i} 
% endfor 
<%def name="interface_defaults()"> 
mtu 9000 
link-speed 10000 
link-duplex full 
link-autoneg off 
</%def> 
% for i in range(3,7): 
auto swp${i} 
iface swp${i} 
${interface_defaults()} 
% endfor 
auto default_bridge 
iface default_bridge 
bridge_ports glob swp3-6 
bridge-stp on
Find out more! 
 Ifupdown2 
 https://github.com/CumulusNetworks/ifupdown2 
 PTM 
 https://github.com/CumulusNetworks/ptm 
Example Code 
 https://github.com/LeslieCarr/puppet-presentation 
Cumulus Open Source 
 http://oss.cumulusnetworks.com 
Twitter 
 @lesliegeek
Bringing the Linux Revolution to Networking 
Thank You! 
© 2014 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. 
cumulusnetworks.com

More Related Content

What's hot

Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioning
RUDDER
 
High performance content hosting
High performance content hosting High performance content hosting
High performance content hosting
Aleksey Korzun
 
5. hands on - building local development environment with Open Mano
5. hands on - building local development environment with Open Mano5. hands on - building local development environment with Open Mano
5. hands on - building local development environment with Open Mano
videos
 
NkSIP: The Erlang SIP application server
NkSIP: The Erlang SIP application serverNkSIP: The Erlang SIP application server
NkSIP: The Erlang SIP application server
Carlos González Florido
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOps
Raul Leite
 
Rac on NFS
Rac on NFSRac on NFS
Rac on NFS
mengjiagou
 
6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers
videos
 
Cobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale EnvironmentsCobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale Environments
ViSenze - Artificial Intelligence for the Visual Web
 
Using cobbler in a not so small environment 1.77
Using cobbler in a not so small environment 1.77Using cobbler in a not so small environment 1.77
Using cobbler in a not so small environment 1.77
chhorn
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever building
Edmond Yu
 
OpenWRT development solutions - Free wireless router product development
OpenWRT development solutions - Free wireless router product developmentOpenWRT development solutions - Free wireless router product development
OpenWRT development solutions - Free wireless router product development
Paul Dao
 
OpenWRT and Perl
OpenWRT and PerlOpenWRT and Perl
OpenWRT and Perl
Dean Hamstead
 
Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)
sangyun han
 
Juniper Network Automation for KrDAG
Juniper Network Automation for KrDAGJuniper Network Automation for KrDAG
Juniper Network Automation for KrDAG
KwonSun Bae
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
Kentaro Ebisawa
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
videos
 
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
Tommy Lee
 
Windows deployment on bare metal using ironic
Windows deployment on bare metal using ironicWindows deployment on bare metal using ironic
Windows deployment on bare metal using ironic
Srinivasa Acharya
 
Open stack implementation
Open stack implementation Open stack implementation
Open stack implementation
Soumyajit Basu
 
Ironic
IronicIronic
Ironic
Haomeng Wang
 

What's hot (20)

Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioning
 
High performance content hosting
High performance content hosting High performance content hosting
High performance content hosting
 
5. hands on - building local development environment with Open Mano
5. hands on - building local development environment with Open Mano5. hands on - building local development environment with Open Mano
5. hands on - building local development environment with Open Mano
 
NkSIP: The Erlang SIP application server
NkSIP: The Erlang SIP application serverNkSIP: The Erlang SIP application server
NkSIP: The Erlang SIP application server
 
Automação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOpsAutomação do físico ao NetSecDevOps
Automação do físico ao NetSecDevOps
 
Rac on NFS
Rac on NFSRac on NFS
Rac on NFS
 
6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers6. hands on - open mano demonstration in remote pool of servers
6. hands on - open mano demonstration in remote pool of servers
 
Cobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale EnvironmentsCobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale Environments
 
Using cobbler in a not so small environment 1.77
Using cobbler in a not so small environment 1.77Using cobbler in a not so small environment 1.77
Using cobbler in a not so small environment 1.77
 
Linux sever building
Linux sever buildingLinux sever building
Linux sever building
 
OpenWRT development solutions - Free wireless router product development
OpenWRT development solutions - Free wireless router product developmentOpenWRT development solutions - Free wireless router product development
OpenWRT development solutions - Free wireless router product development
 
OpenWRT and Perl
OpenWRT and PerlOpenWRT and Perl
OpenWRT and Perl
 
Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)Implementing SDN Testbed(ONOS & OpenVirteX)
Implementing SDN Testbed(ONOS & OpenVirteX)
 
Juniper Network Automation for KrDAG
Juniper Network Automation for KrDAGJuniper Network Automation for KrDAG
Juniper Network Automation for KrDAG
 
OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27OVN 設定サンプル | OVN config example 2015/12/27
OVN 設定サンプル | OVN config example 2015/12/27
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
 
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
제4회 한국IBM과 함께하는 난공불락 오픈소스 인프라 세미나-Asible
 
Windows deployment on bare metal using ironic
Windows deployment on bare metal using ironicWindows deployment on bare metal using ironic
Windows deployment on bare metal using ironic
 
Open stack implementation
Open stack implementation Open stack implementation
Open stack implementation
 
Ironic
IronicIronic
Ironic
 

Viewers also liked

The Portfolio Copy
The Portfolio   CopyThe Portfolio   Copy
The Portfolio Copy
irfanrahmed
 
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Hardware accelerated switching with Linux @ SWLUG Talks May 2014Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Nat Morris
 
New Networking Technology Survey & Analysis
New Networking Technology Survey & AnalysisNew Networking Technology Survey & Analysis
New Networking Technology Survey & Analysis
IT Brand Pulse
 
NFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsNFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center Operations
Cumulus Networks
 
Open Networking for Your OpenStack
Open Networking for Your OpenStackOpen Networking for Your OpenStack
Open Networking for Your OpenStack
Cumulus Networks
 
Cumulus Linux 2.5.4
Cumulus Linux 2.5.4Cumulus Linux 2.5.4
Cumulus Linux 2.5.4
Cumulus Networks
 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as Code
Amazon Web Services
 
今よりも少し(?)昔、 Windowsを作ろうとした話
今よりも少し(?)昔、 Windowsを作ろうとした話今よりも少し(?)昔、 Windowsを作ろうとした話
今よりも少し(?)昔、 Windowsを作ろうとした話
Masaru Oki
 
Onieで遊んでみようとした話
Onieで遊んでみようとした話Onieで遊んでみようとした話
Onieで遊んでみようとした話
Masaru Oki
 
Managing Your Infrastructure as Code
Managing Your Infrastructure as CodeManaging Your Infrastructure as Code
Managing Your Infrastructure as Code
Amazon Web Services
 

Viewers also liked (10)

The Portfolio Copy
The Portfolio   CopyThe Portfolio   Copy
The Portfolio Copy
 
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Hardware accelerated switching with Linux @ SWLUG Talks May 2014Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
 
New Networking Technology Survey & Analysis
New Networking Technology Survey & AnalysisNew Networking Technology Survey & Analysis
New Networking Technology Survey & Analysis
 
NFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsNFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center Operations
 
Open Networking for Your OpenStack
Open Networking for Your OpenStackOpen Networking for Your OpenStack
Open Networking for Your OpenStack
 
Cumulus Linux 2.5.4
Cumulus Linux 2.5.4Cumulus Linux 2.5.4
Cumulus Linux 2.5.4
 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as Code
 
今よりも少し(?)昔、 Windowsを作ろうとした話
今よりも少し(?)昔、 Windowsを作ろうとした話今よりも少し(?)昔、 Windowsを作ろうとした話
今よりも少し(?)昔、 Windowsを作ろうとした話
 
Onieで遊んでみようとした話
Onieで遊んでみようとした話Onieで遊んでみようとした話
Onieで遊んでみようとした話
 
Managing Your Infrastructure as Code
Managing Your Infrastructure as CodeManaging Your Infrastructure as Code
Managing Your Infrastructure as Code
 

Similar to The Switch as a Server - PuppetConf 2014

Switch as a Server - PuppetConf 2014 - Leslie Carr
Switch as a Server - PuppetConf 2014 - Leslie CarrSwitch as a Server - PuppetConf 2014 - Leslie Carr
Switch as a Server - PuppetConf 2014 - Leslie Carr
Cumulus Networks
 
Medusa Project
Medusa ProjectMedusa Project
Medusa Project
Sameer Verma
 
Unattended Deployment with Zero Touch Provisioning (ZTP)
Unattended Deployment with Zero Touch Provisioning (ZTP)Unattended Deployment with Zero Touch Provisioning (ZTP)
Unattended Deployment with Zero Touch Provisioning (ZTP)
Cumulus Networks
 
Automating Networking! Do I Have to Start at Ground Zero?
Automating Networking! Do I Have to Start at Ground Zero?Automating Networking! Do I Have to Start at Ground Zero?
Automating Networking! Do I Have to Start at Ground Zero?
Puppet
 
Automation day red hat ansible
   Automation day red hat ansible    Automation day red hat ansible
Automation day red hat ansible
Rodrigo Missiaggia
 
Chef arista devops days a'dam 2015
Chef arista devops days a'dam 2015Chef arista devops days a'dam 2015
Chef arista devops days a'dam 2015
Edwin Beekman
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
adrian_nye
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation Tools
Edwin Beekman
 
Ltsp
LtspLtsp
the NML project
the NML projectthe NML project
the NML project
Lei Yang
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Samsung Open Source Group
 
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackAutomated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
NTT Communications Technology Development
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Puppet
 
Linux Desktop Automation
Linux Desktop AutomationLinux Desktop Automation
Linux Desktop Automation
Rui Lapa
 
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDrupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Dropsolid
 
Manage your switches like servers
Manage your switches like serversManage your switches like servers
Manage your switches like servers
Cumulus Networks
 
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime FabricSurat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Jitendra Bafna
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
Mediafly
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management tool
Torrid Networks Private Limited
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management tool
Torrid Networks Private Limited
 

Similar to The Switch as a Server - PuppetConf 2014 (20)

Switch as a Server - PuppetConf 2014 - Leslie Carr
Switch as a Server - PuppetConf 2014 - Leslie CarrSwitch as a Server - PuppetConf 2014 - Leslie Carr
Switch as a Server - PuppetConf 2014 - Leslie Carr
 
Medusa Project
Medusa ProjectMedusa Project
Medusa Project
 
Unattended Deployment with Zero Touch Provisioning (ZTP)
Unattended Deployment with Zero Touch Provisioning (ZTP)Unattended Deployment with Zero Touch Provisioning (ZTP)
Unattended Deployment with Zero Touch Provisioning (ZTP)
 
Automating Networking! Do I Have to Start at Ground Zero?
Automating Networking! Do I Have to Start at Ground Zero?Automating Networking! Do I Have to Start at Ground Zero?
Automating Networking! Do I Have to Start at Ground Zero?
 
Automation day red hat ansible
   Automation day red hat ansible    Automation day red hat ansible
Automation day red hat ansible
 
Chef arista devops days a'dam 2015
Chef arista devops days a'dam 2015Chef arista devops days a'dam 2015
Chef arista devops days a'dam 2015
 
A Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy SystemA Fabric/Puppet Build/Deploy System
A Fabric/Puppet Build/Deploy System
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation Tools
 
Ltsp
LtspLtsp
Ltsp
 
the NML project
the NML projectthe NML project
the NML project
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
 
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackAutomated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
 
Linux Desktop Automation
Linux Desktop AutomationLinux Desktop Automation
Linux Desktop Automation
 
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google CloudDrupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
Drupaljam 2017 - Deploying Drupal 8 onto Hosted Kubernetes in Google Cloud
 
Manage your switches like servers
Manage your switches like serversManage your switches like servers
Manage your switches like servers
 
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime FabricSurat MuleSoft Meetup#2 - Anypoint Runtime Fabric
Surat MuleSoft Meetup#2 - Anypoint Runtime Fabric
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management tool
 
Unix Automation using centralized configuration management tool
Unix Automation using centralized configuration management toolUnix Automation using centralized configuration management tool
Unix Automation using centralized configuration management tool
 

More from Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
Puppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
Puppet
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
Puppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
Puppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
Puppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
Puppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
Puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
Puppet
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
Puppet
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
Puppet
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
Puppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
Puppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
Puppet
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
Puppet
 

More from Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Recently uploaded

Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 

Recently uploaded (20)

Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 

The Switch as a Server - PuppetConf 2014

  • 1. v Switch as a Server Leslie Carr
  • 2. Who is Leslie? Operations Engineer  Google  Craigslist  Twitter  Wikimedia Foundation (Wikipedia)
  • 3. Who is Leslie? Cumulus Networks®
  • 4. 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
  • 5. Cumulus® Linux® Hardware Compatibility List cumulusnetworks.com 4
  • 6. v Installation and Configuration
  • 7. 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
  • 8. 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
  • 9. ONIE 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
  • 10. Cumulus Linux OS Installation with ONIE 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 cumulusnetworks.com 9
  • 11. 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
  • 12. ZTP Execution Script must contain CUMULUS-AUTOPROVISIONING Can be in the following languages :  Perl  Python  Ruby  Shell
  • 13. 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
  • 14. Comparison Similar to installing a server OS using PXE app app app Server OS BIOS and PXE bare metal server app app app Network OS Boot Loader and ONIE bare metal switch ONIE looks for and installs network OS image boot into Network OS boot into Boot Loader and ONIE Boot Loader and ONIE
  • 15. Video
  • 16. Because Debian based, we can do everything via puppet  users  interface configuration  routing software (Quagga) configuration Puppet
  • 18. Make Life Even Better How can we make your life better?
  • 19. Interim Puppet Server! Warning - small hard drive and limited processing power -- not recommended for long term Scenario - installing new rack with limited connectivity * make switch puppetmaster
  • 20. Example Topology leaf 1 leaf 2 swp1 - 4 swp1 - 4 Puppetmaster
  • 21. Video
  • 23. Existing Network Interface Managers  Optimized for desktop and hypervisor environments  Complexity increases with interface configuration scale  Burden of network interface configuration dependency ordering is on the user  Lack of support for incremental changes to network interfaces: minimal disruption  Lack of tools to query and validate running interface configuration
  • 24. Linux Networking Switch networking characteristics:  Large number of interfaces  Switch ports, bridges, bonds, vlans  Large number of interface attributes  Addresses, bridge stp, mstp and igmp attributes  Mostly static configuration
  • 25. ifupdown Benefits  Pluggable architecture  Uses native Linux tools, enabling faster development  Good user documentation, well known tool Challenges  No knowledge of interface configuration dependency (burden on the user)  Large scale configuration results in large files or too many files  No support for incremental configurations  No support to query/validate running interface configuration  literate program  Bugs
  • 26. ifupdown2  New implementation of ifupdown in Python  Backward compatible with ifupdown interfaces format and commands  Continues to use existing Linux native tools to configure network interfaces.  Large number of interface attributes  Pluggable architecture add-on python modules for interface configuration  Meets some shortcomings seen with existing network interface managers on network switches  ifreload acts like HUP instead of restart
  • 27. ifupdown2 compare cli? ifupdown auto swp19 iface swp19 inet manual up link set $IFACE up down link set $IFACE down pre-up /sbin/ethtool -s $IFACE speed 1000 auto swp19.100 iface swp19.100 inet manual up link set $IFACE up down link set $IFACE down auto vlan100 iface vlan100 inet manual bridge_ports swp19.100 mstpctl_stp on ifupdown2 auto swp19 iface swp19 link-speed 1000 auto vlan100 iface vlan100 bridge-ports swp19.100 bridge-stp on
  • 28. Network Interface Dependency ▪ Handles network interface dependency cumulusnetworks.com using dependency graphs ▪ Uses topological sort to order network interface configurations ▪ Provides options and tools to query and execute interface configuration in dependency order ▪ Built-in devices support ifupdown2 implicitly recognizes vlan and physical interfaces that appear as dependents and does the required minimal configuration to get them up: No need to specify `iface swp1.1000` in the example
  • 29. ifupdown2 - Mako Templates ## Note that the "range" ends with '4' ## But will iterate only from 1 to 3 ## See Python range() for more details % for i in range(1, 4): auto swp${i} iface swp${i} % endfor <%def name="interface_defaults()"> mtu 9000 link-speed 10000 link-duplex full link-autoneg off </%def> % for i in range(3,7): auto swp${i} iface swp${i} ${interface_defaults()} % endfor auto default_bridge iface default_bridge bridge_ports glob swp3-6 bridge-stp on
  • 30. Find out more!  Ifupdown2  https://github.com/CumulusNetworks/ifupdown2  PTM  https://github.com/CumulusNetworks/ptm Example Code  https://github.com/LeslieCarr/puppet-presentation Cumulus Open Source  http://oss.cumulusnetworks.com Twitter  @lesliegeek
  • 31. Bringing the Linux Revolution to Networking Thank You! © 2014 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. cumulusnetworks.com