SlideShare a Scribd company logo
v 
Unattended Datacenter Deployment with ZTP 
Leslie Carr 
October 15, 2014
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
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
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
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%*, 
cumulusnetworks.com 10 
1 
2 
Cumulus Linux 
OS image
ZTP Execution 
! ZTP script execution is triggered on DHClient exit or by 
USB Stick 
• USB support in releases 2.5 and up 
! Script must contain CUMULUS%AUTOPROVISIONING,, 
! Can be in the following languages : 
• Perl 
• Python 
• Ruby 
• Shell
ZTP Script USB 
USB looks for a specific file name “waterfall” 
wate rfall,=,[, 
'cumulus%ztp%',+,arch,+,'%',+,vendor,+,'_',+,model,+,'%r’,+,revision,, 
'cumulus%ztp%',+,arch,+,'%',+,vendor,+,'_',+,model, 
'cumulus%ztp%',+,vendor,+,'_',+,model, 
'cumulus%ztp%',+,arch, 
'cumulus%ztp’,], 
, 
Example,:, 
/mnt/usb/cumulus%ztp%powerpc%cel_smallstone%rUNKNOWN,, 
/mnt/usb/cumulus%ztp%powerpc%cel_smallstone,, 
/mnt/usb/cumulus%ztp%cel_smallstone,, 
/mnt/usb/cumulus%ztp%powerpc,, 
/mnt/usb/cumulus%ztp,
ZTP with DHCP example dhcp.conf 
! ddns%update%style,none;, 
! default%lease%time,4320;, 
! max%lease%time,8640;, 
! authoritative;, 
! option&cumulus,provision,url&code&239&=&text;& 
! subnet,192.168.0.0,netmask,255.255.255.0,{, 
! ,range,192.168.0.100,192.168.0.200;, 
! ,option,routers,192.168.0.1;, 
! ,option,domain%name%servers,192.168.0.1;, 
! ,option,domain%name,"lab.mycompany.com";, 
! &option&cumulus,provision,url&"http://192.168.0.2/demo.sh";& 
! },
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 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, 
, 
,
Video
/var/lib/cumulus/autoprovision.conf 
! [discovery], 
! count,=,1, 
! max,=,32, 
! [provisioning], 
! enabled,=,True, 
! complete&=&True& 
! datetime,=,1413314146, 
! method,=,DHCP,Option, 
! detail,=,http://192.168.0.1/provision.sh,
! Because Debian based, we can do everything via 
puppet 
! users 
! interface configuration 
! routing software (Quagga) configuration 
Puppet
Video!
ZTP Example with Ansible 
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,URL="http://wbench.lab.local/ansible_authorized_keys”, 
9,mkdir,%p,/root/.ssh, 
10,, 
11,/usr/bin/wget,%O,/root/.ssh/authorized_keys,$URL, 
12,, 
13,#CUMULUS%AUTOPROVISIONING, 
14,exit,0,,
Video
Success!
Find out more! 
! ZTP 
! http://cumulusnetworks.com/docs/2.2/user-guide/ 
system_management_diagnostics/provisioning.html 
Example Code 
! https://github.com/CumulusNetworks/cldemo 
Cumulus Workbench 
! http://cumulusnetworks.com/cumulus-workbench/ 
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

PDF
Cloud computing دور الحوسبة السحابية فى المكتبات الرقمية ونظم الارشفة الالكتر...
Essam Obaid
 
ODP
09 02 configuration du serveur nfs
Noël
 
PPTX
Sécurité-Wifi
DAmien Gueg'
 
PPT
تعلم اكسل بخطوات.ppt
braksam
 
PDF
Investigation de cybersécurité avec Splunk
Ibrahimous
 
PDF
شرح برنامج دريم ويفر.pdf
Abduljabbar Al-dhufri
 
PPTX
Cloud Computing Architecture: Components, Importance, and Tips
Fibonalabs
 
PDF
La virtualisation de_serveurs
Nidhal Fersi
 
Cloud computing دور الحوسبة السحابية فى المكتبات الرقمية ونظم الارشفة الالكتر...
Essam Obaid
 
09 02 configuration du serveur nfs
Noël
 
Sécurité-Wifi
DAmien Gueg'
 
تعلم اكسل بخطوات.ppt
braksam
 
Investigation de cybersécurité avec Splunk
Ibrahimous
 
شرح برنامج دريم ويفر.pdf
Abduljabbar Al-dhufri
 
Cloud Computing Architecture: Components, Importance, and Tips
Fibonalabs
 
La virtualisation de_serveurs
Nidhal Fersi
 

What's hot (20)

DOCX
Introduction aux systèmes d'exploitation mobile
Houssem Rouini
 
PPTX
2. OS vs. VMM
Hwanju Kim
 
PDF
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
RihabBENLAMINE
 
PDF
Sécurité de la VoIP : quels risques et quelles solutions pour votre entrepris...
Ava Axialys
 
PDF
Google app engine
Suraj Mehta
 
PPTX
Introduction to the Oracle Container Engine
Oracle Developers
 
PPTX
Cinder
Eldho George
 
PDF
المحاضرة الثانية من محاضرات الجزء الثاني من مقرر وصف وإتاحة المصادر (1)
Dr. Ali Shaker
 
PDF
Comparing open source private cloud platforms
OSCON Byrum
 
PDF
Cloud Computing - Technologies and Trends
Marcelo Sávio
 
PPTX
Cloud Computing
Mohammad Shakirul islam
 
PDF
Google Cloud Platform - Service Glossary
Joseph's Cloud Library
 
PDF
Tutorial: Create a custom work item in Rational Team Concert
Bill Duncan
 
DOCX
Cloud notes 1
Prateek Soni
 
PDF
Weos création d'une dmz
Fabian Vandendyck
 
PDF
Whitecape - Odoo - Offre ERP
Souheil Ladjimi
 
DOCX
Cloud computing notes unit II
NANDINI SHARMA
 
PPTX
Beowulf cluster
Yash Karanke
 
PPTX
Cloud computing الحوسبة السحابية
Sally Jarkas
 
PDF
History of cloud computing
sankalp810108
 
Introduction aux systèmes d'exploitation mobile
Houssem Rouini
 
2. OS vs. VMM
Hwanju Kim
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
RihabBENLAMINE
 
Sécurité de la VoIP : quels risques et quelles solutions pour votre entrepris...
Ava Axialys
 
Google app engine
Suraj Mehta
 
Introduction to the Oracle Container Engine
Oracle Developers
 
Cinder
Eldho George
 
المحاضرة الثانية من محاضرات الجزء الثاني من مقرر وصف وإتاحة المصادر (1)
Dr. Ali Shaker
 
Comparing open source private cloud platforms
OSCON Byrum
 
Cloud Computing - Technologies and Trends
Marcelo Sávio
 
Cloud Computing
Mohammad Shakirul islam
 
Google Cloud Platform - Service Glossary
Joseph's Cloud Library
 
Tutorial: Create a custom work item in Rational Team Concert
Bill Duncan
 
Cloud notes 1
Prateek Soni
 
Weos création d'une dmz
Fabian Vandendyck
 
Whitecape - Odoo - Offre ERP
Souheil Ladjimi
 
Cloud computing notes unit II
NANDINI SHARMA
 
Beowulf cluster
Yash Karanke
 
Cloud computing الحوسبة السحابية
Sally Jarkas
 
History of cloud computing
sankalp810108
 
Ad

Similar to Unattended Deployment with Zero Touch Provisioning (ZTP) (20)

PDF
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet
 
PDF
Manage your switches like servers
Cumulus Networks
 
PPTX
The Switch as a Server - PuppetConf 2014
Puppet
 
PDF
ONIE LinuxCon 2015
Curt Brune
 
PPTX
OSDC 2014 ONIE by Nat Morris
Cumulus Networks
 
PPTX
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
Nat Morris
 
PDF
Switch as a Server - PuppetConf 2014 - Leslie Carr
Cumulus Networks
 
PDF
OSDC 2014: Nat Morris - Open Network Install Environment
NETWAYS
 
PPTX
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Nat Morris
 
PPT
Automating Networking! Do I Have to Start at Ground Zero?
Puppet
 
PDF
NFD9 - Matt Peterson, Data Center Operations
Cumulus Networks
 
PDF
ONIE / Cumulus Networks Webinar
Cumulus Networks
 
PDF
Cumulus networks conversion guide
Scott Suehle
 
PDF
次世代データセンターを支えるウェブスケールネットワーク
Hiroyuki Onishi
 
PDF
Open Networking for Your OpenStack
Cumulus Networks
 
PDF
Big data, better networks
Cumulus Networks
 
PDF
Automating the Network
Puppet
 
PPTX
Big Data, Better Networks
Cumulus Networks
 
PDF
Cumulus Linux 2.5 Overview
Cumulus Networks
 
KEY
the NML project
Lei Yang
 
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet
 
Manage your switches like servers
Cumulus Networks
 
The Switch as a Server - PuppetConf 2014
Puppet
 
ONIE LinuxCon 2015
Curt Brune
 
OSDC 2014 ONIE by Nat Morris
Cumulus Networks
 
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
Nat Morris
 
Switch as a Server - PuppetConf 2014 - Leslie Carr
Cumulus Networks
 
OSDC 2014: Nat Morris - Open Network Install Environment
NETWAYS
 
Hardware accelerated switching with Linux @ SWLUG Talks May 2014
Nat Morris
 
Automating Networking! Do I Have to Start at Ground Zero?
Puppet
 
NFD9 - Matt Peterson, Data Center Operations
Cumulus Networks
 
ONIE / Cumulus Networks Webinar
Cumulus Networks
 
Cumulus networks conversion guide
Scott Suehle
 
次世代データセンターを支えるウェブスケールネットワーク
Hiroyuki Onishi
 
Open Networking for Your OpenStack
Cumulus Networks
 
Big data, better networks
Cumulus Networks
 
Automating the Network
Puppet
 
Big Data, Better Networks
Cumulus Networks
 
Cumulus Linux 2.5 Overview
Cumulus Networks
 
the NML project
Lei Yang
 
Ad

More from Cumulus Networks (20)

PPTX
Building a Layer 3 network with Cumulus Linux
Cumulus Networks
 
PDF
Operationalizing EVPN in the Data Center: Part 2
Cumulus Networks
 
PDF
Demystifying EVPN in the data center: Part 1 in 2 episode series
Cumulus Networks
 
PPTX
Best practices for network troubleshooting
Cumulus Networks
 
PDF
NetDevOps 202: Life After Configuration
Cumulus Networks
 
PPTX
Cumulus Networks: Automating Network Configuration
Cumulus Networks
 
PDF
How deep is your buffer – Demystifying buffers and application performance
Cumulus Networks
 
PPTX
Demystifying Networking: Data Center Networking Trends 2017
Cumulus Networks
 
PPTX
Building Scalable Data Center Networks
Cumulus Networks
 
PPTX
Network Architecture for Containers
Cumulus Networks
 
PPTX
Webinar: Network Automation [Tips & Tricks]
Cumulus Networks
 
PPTX
July NYC Open Networking Meeup
Cumulus Networks
 
PPTX
Demystifying Networking Webinar Series- Routing on the Host
Cumulus Networks
 
PDF
Ifupdown2: Network Interface Manager
Cumulus Networks
 
PPTX
Operationalizing VRF in the Data Center
Cumulus Networks
 
PPTX
Microservices Network Architecture 101
Cumulus Networks
 
PPTX
Linux networking is Awesome!
Cumulus Networks
 
PPTX
Webinar-Linux Networking is Awesome
Cumulus Networks
 
PDF
Webinar- Tea for the Tillerman
Cumulus Networks
 
PDF
Dreamhost deploying dreamcompute at scale
Cumulus Networks
 
Building a Layer 3 network with Cumulus Linux
Cumulus Networks
 
Operationalizing EVPN in the Data Center: Part 2
Cumulus Networks
 
Demystifying EVPN in the data center: Part 1 in 2 episode series
Cumulus Networks
 
Best practices for network troubleshooting
Cumulus Networks
 
NetDevOps 202: Life After Configuration
Cumulus Networks
 
Cumulus Networks: Automating Network Configuration
Cumulus Networks
 
How deep is your buffer – Demystifying buffers and application performance
Cumulus Networks
 
Demystifying Networking: Data Center Networking Trends 2017
Cumulus Networks
 
Building Scalable Data Center Networks
Cumulus Networks
 
Network Architecture for Containers
Cumulus Networks
 
Webinar: Network Automation [Tips & Tricks]
Cumulus Networks
 
July NYC Open Networking Meeup
Cumulus Networks
 
Demystifying Networking Webinar Series- Routing on the Host
Cumulus Networks
 
Ifupdown2: Network Interface Manager
Cumulus Networks
 
Operationalizing VRF in the Data Center
Cumulus Networks
 
Microservices Network Architecture 101
Cumulus Networks
 
Linux networking is Awesome!
Cumulus Networks
 
Webinar-Linux Networking is Awesome
Cumulus Networks
 
Webinar- Tea for the Tillerman
Cumulus Networks
 
Dreamhost deploying dreamcompute at scale
Cumulus Networks
 

Recently uploaded (20)

PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
The Future of Artificial Intelligence (AI)
Mukul
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 

Unattended Deployment with Zero Touch Provisioning (ZTP)

  • 1. v Unattended Datacenter Deployment with ZTP Leslie Carr October 15, 2014
  • 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. 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
  • 10. 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
  • 11. 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%*, cumulusnetworks.com 10 1 2 Cumulus Linux OS image
  • 12. ZTP Execution ! ZTP script execution is triggered on DHClient exit or by USB Stick • USB support in releases 2.5 and up ! Script must contain CUMULUS%AUTOPROVISIONING,, ! Can be in the following languages : • Perl • Python • Ruby • Shell
  • 13. ZTP Script USB USB looks for a specific file name “waterfall” wate rfall,=,[, 'cumulus%ztp%',+,arch,+,'%',+,vendor,+,'_',+,model,+,'%r’,+,revision,, 'cumulus%ztp%',+,arch,+,'%',+,vendor,+,'_',+,model, 'cumulus%ztp%',+,vendor,+,'_',+,model, 'cumulus%ztp%',+,arch, 'cumulus%ztp’,], , Example,:, /mnt/usb/cumulus%ztp%powerpc%cel_smallstone%rUNKNOWN,, /mnt/usb/cumulus%ztp%powerpc%cel_smallstone,, /mnt/usb/cumulus%ztp%cel_smallstone,, /mnt/usb/cumulus%ztp%powerpc,, /mnt/usb/cumulus%ztp,
  • 14. ZTP with DHCP example dhcp.conf ! ddns%update%style,none;, ! default%lease%time,4320;, ! max%lease%time,8640;, ! authoritative;, ! option&cumulus,provision,url&code&239&=&text;& ! subnet,192.168.0.0,netmask,255.255.255.0,{, ! ,range,192.168.0.100,192.168.0.200;, ! ,option,routers,192.168.0.1;, ! ,option,domain%name%servers,192.168.0.1;, ! ,option,domain%name,"lab.mycompany.com";, ! &option&cumulus,provision,url&"http://192.168.0.2/demo.sh";& ! },
  • 15. 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
  • 16. 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, , ,
  • 17. Video
  • 18. /var/lib/cumulus/autoprovision.conf ! [discovery], ! count,=,1, ! max,=,32, ! [provisioning], ! enabled,=,True, ! complete&=&True& ! datetime,=,1413314146, ! method,=,DHCP,Option, ! detail,=,http://192.168.0.1/provision.sh,
  • 19. ! Because Debian based, we can do everything via puppet ! users ! interface configuration ! routing software (Quagga) configuration Puppet
  • 21. ZTP Example with Ansible 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,URL="http://wbench.lab.local/ansible_authorized_keys”, 9,mkdir,%p,/root/.ssh, 10,, 11,/usr/bin/wget,%O,/root/.ssh/authorized_keys,$URL, 12,, 13,#CUMULUS%AUTOPROVISIONING, 14,exit,0,,
  • 22. Video
  • 24. Find out more! ! ZTP ! http://cumulusnetworks.com/docs/2.2/user-guide/ system_management_diagnostics/provisioning.html Example Code ! https://github.com/CumulusNetworks/cldemo Cumulus Workbench ! http://cumulusnetworks.com/cumulus-workbench/ Twitter ! @lesliegeek
  • 25. 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