SlideShare a Scribd company logo
1 of 25
Download to read offline
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

What's hot

Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, gre
Sim Janghoon
 

What's hot (20)

AI & Machine Learning Pipelines with Knative
AI & Machine Learning Pipelines with KnativeAI & Machine Learning Pipelines with Knative
AI & Machine Learning Pipelines with Knative
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Kamailio World 2014 - Kamailio - The Platform for Interoperable WebRTC
Kamailio World 2014 - Kamailio - The Platform for Interoperable WebRTCKamailio World 2014 - Kamailio - The Platform for Interoperable WebRTC
Kamailio World 2014 - Kamailio - The Platform for Interoperable WebRTC
 
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyondrtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyond
 
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RCThe Next Generation Firewall for Red Hat Enterprise Linux 7 RC
The Next Generation Firewall for Red Hat Enterprise Linux 7 RC
 
Introduction to Istio on Kubernetes
Introduction to Istio on KubernetesIntroduction to Istio on Kubernetes
Introduction to Istio on Kubernetes
 
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰するOCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
 
Kubernetes Architecture v1.x
Kubernetes Architecture v1.xKubernetes Architecture v1.x
Kubernetes Architecture v1.x
 
Open stack networking vlan, gre
Open stack networking   vlan, greOpen stack networking   vlan, gre
Open stack networking vlan, gre
 
Netmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoSNetmanias L2,L3 Training (3) L2, L3 QoS
Netmanias L2,L3 Training (3) L2, L3 QoS
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
屋外向け 8chLoRaWANゲートウェイ DLOS8 日本語マニュアル
屋外向け 8chLoRaWANゲートウェイ  DLOS8 日本語マニュアル屋外向け 8chLoRaWANゲートウェイ  DLOS8 日本語マニュアル
屋外向け 8chLoRaWANゲートウェイ DLOS8 日本語マニュアル
 
Build a High Available NFS Cluster Based on CephFS - Shangzhong Zhu
Build a High Available NFS Cluster Based on CephFS - Shangzhong ZhuBuild a High Available NFS Cluster Based on CephFS - Shangzhong Zhu
Build a High Available NFS Cluster Based on CephFS - Shangzhong Zhu
 
Advanced Use of jinja2 for Templates
Advanced Use of jinja2 for TemplatesAdvanced Use of jinja2 for Templates
Advanced Use of jinja2 for Templates
 
Rivera De Santa Ines (Colpatria)
Rivera De Santa Ines (Colpatria)Rivera De Santa Ines (Colpatria)
Rivera De Santa Ines (Colpatria)
 
How to deploy laravel application on aws ec2
How to deploy laravel application on aws ec2How to deploy laravel application on aws ec2
How to deploy laravel application on aws ec2
 
Troubleshooting BGP
Troubleshooting BGPTroubleshooting BGP
Troubleshooting BGP
 
Kubernetes
KubernetesKubernetes
Kubernetes
 

Similar to Unattended Deployment with Zero Touch Provisioning (ZTP)

lamp technology
lamp technologylamp technology
lamp technology
Deepa
 
Deepa ppt about lamp technology
Deepa ppt about lamp technologyDeepa ppt about lamp technology
Deepa ppt about lamp technology
Deepa
 
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet Camp Charlotte 2015: Manage Your Switches Like ServersPuppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet
 
Midwest php 2013 deploying php on paas- why & how
Midwest php 2013   deploying php on paas- why & howMidwest php 2013   deploying php on paas- why & how
Midwest php 2013 deploying php on paas- why & how
dotCloud
 

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

The Switch as a Server - PuppetConf 2014
The Switch as a Server - PuppetConf 2014The Switch as a Server - PuppetConf 2014
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
 
NFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsNFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center Operations
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with docker
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
 
Erlang on OSv
Erlang on OSvErlang on OSv
Erlang on OSv
 
lamp technology
lamp technologylamp technology
lamp technology
 
Deepa ppt about lamp technology
Deepa ppt about lamp technologyDeepa ppt about lamp technology
Deepa ppt about lamp technology
 
Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)Network Stack in Userspace (NUSE)
Network Stack in Userspace (NUSE)
 
Docker 101
Docker 101 Docker 101
Docker 101
 
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet Camp Charlotte 2015: Manage Your Switches Like ServersPuppet Camp Charlotte 2015: Manage Your Switches Like Servers
Puppet Camp Charlotte 2015: Manage Your Switches Like Servers
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
 
Phoenix Servers with Docker and Nginx
Phoenix Servers with Docker and NginxPhoenix Servers with Docker and Nginx
Phoenix Servers with Docker and Nginx
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto project
 
Building Docker images with Puppet
Building Docker images with PuppetBuilding Docker images with Puppet
Building Docker images with Puppet
 
Docker-v3.pdf
Docker-v3.pdfDocker-v3.pdf
Docker-v3.pdf
 
Baylisa - Dive Into OpenStack
Baylisa - Dive Into OpenStackBaylisa - Dive Into OpenStack
Baylisa - Dive Into OpenStack
 
Midwest php 2013 deploying php on paas- why & how
Midwest php 2013   deploying php on paas- why & howMidwest php 2013   deploying php on paas- why & how
Midwest php 2013 deploying php on paas- why & how
 

More from Cumulus Networks

More from Cumulus Networks (20)

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

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

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