SlideShare a Scribd company logo
1 of 31
Download to read offline
Automating the Network
1
Matt Peterson
Office of the CTO
Cumulus Networks
PuppetCamp London – November 3rd, 2015
whois!
Puppet’ing since 0.24 (2008)
Added CL support in 2013
Rocket Turtle?
§ Cumulus Networks®
Why {Net}DevOps?
cumulusnetworks.com 4
greater operational insight
Networking is the last infrastructure silo
{Net}DevOps
cumulusnetworks.com 5
Leverage common DevOps tenants within Networking
§  Configuration management (today’s focus)
§  Make repetitive tasks predictable
§  Enforce policy to desired state - naming schemes,
software versions, … great audit trail mechanism
§ Infrastructure as code
§  Describe physical & logical components in human &
machine readable formats
{Net}DevOps
cumulusnetworks.com 6
§  Reactive to infrastructure as a whole
§  ie: L3 Clos architecture, single spine switch fans fail,
automatically adjust IGP cost to route around
§  Consistency (sometimes viewed as transparency)
§  Source of truth (across entire org, if possible), Git is
popular in compute circles
§  Common monitoring & escalation systems
A brief history of DevOps
§ …well, almost.
cumulusnetworks.com 7
Traditional network automation
§ Top-down efforts
§  SNMP
§  YANG/NETCONF
§  OpenFlow
§ Ansible
§  Screen-scraping
§ Difficult to integrate with the rest of the Ops stack
cumulusnetworks.com 8
“Whitebox switch” or bare metal networking
§  Treat as a server, preforms like a switch (or router)
•  Kernel networking state sync to ASIC (and vice versa)
•  ifconfig, ethtool, isc-dhcp … apt-get pkgname!
§  Consistent tooling across compute & networking
•  CLI is usually bash, no walled garden
•  Automation friendly from day 1
§  Choice on HW & SW suppliers
•  Same as bare metal computing is today
•  Applies to costly optics & cabling too!
routing bridging ops
Cumulus Linux
hardware
Modern network automation
cumulusnetworks.com 10
Modern network automation
§ Zero Touch Provisioning (ZTP)
§  Normally triggered by DHCP
§ Runs a provisioning script
§  Performs personalization
§  Install & enable Puppet
§ Puppet takes over after Cumulus install
cumulusnetworks.com 11
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/provision.sh";	
  
§  }	
  
ZTP with DHCP example dhcp.conf
cumulusnetworks.com 13
dhclient.conf
	
  
option	
  cumulus-­‐provision-­‐url	
  code	
  239	
  =	
  text;	
  
Exit hook
1. #!/bin/bash	
  
2. #	
  Copyright	
  2015	
  Cumulus	
  Networks,	
  inc	
  	
  all	
  rights	
  reserved	
  
3. if	
  [	
  !	
  -­‐z	
  $new_cumulus_provision_url	
  ]	
  
4. then	
  
5.  	
  /usr/lib/cumulus/autoprovision	
  -­‐-­‐log	
  syslog	
  	
  -­‐-­‐url	
  $new_cumulus_provision_url	
  &	
  
6. fi	
  
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	
  
	
  
	
  
§ Debian based, so we can do everything via. Puppet
§  Interface configuration (including Bonds & Bridges)
§  Routing software (Quagga – BGP/OSPF) configuration
§  Users, authentication, logging, packages, monitoring…
Puppet
Managing network interfaces
cumulusnetworks.com 16
auto	
  swp1	
  
iface	
  swp1	
  
	
  	
  address	
  192.168.1.10	
  
	
  	
  netmask	
  255.255.255.0	
  
	
  	
  mtu	
  9000	
  
	
  
auto	
  swp2	
  
iface	
  swp2	
  
	
  	
  address	
  172.16.2.21	
  
	
  	
  mtu	
  9000	
  
…	
  
auto	
  swp48	
  
iface	
  swp48	
  
	
  	
  address	
  10.1.1.10	
  
	
  	
  netmask	
  255.255.254.0	
  
	
  	
  mtu	
  9000	
  
Managing network interfaces
cumulusnetworks.com 17
$swp1	
  	
  	
  =	
  {	
  'name'	
  =>	
  'swp1',	
  'address'	
  =>	
  '192.168.1.10',	
  'netmask'	
  =>	
  '255.255.255.0'	
  }	
  
$swp2	
  	
  	
  =	
  {	
  'name'	
  =>	
  'swp2',	
  'address'	
  =>	
  '172.16.2.21'	
  }	
  
$swp48	
  	
  =	
  {	
  'name'	
  =>	
  'swp48',	
  'address'	
  =>	
  '10.1.1.10',	
  'netmask'	
  =>	
  '255.255.254.0'	
  }	
  
$ifaces	
  =	
  [	
  $swp1,	
  $swp2,	
  $swp48	
  ]	
  
	
  
file	
  {	
  '/etc/network/interfaces':	
  
	
  	
  ensure	
  =>	
  file,	
  
	
  	
  content	
  =>	
  template('interfaces.erb')	
  
}	
  
<%	
  @ifaces.each	
  do	
  |iface|	
  -­‐%>	
  
auto	
  <%=	
  iface['name']	
  %>	
  
iface	
  <%=	
  iface['name']	
  %>	
  
	
  	
  address	
  <%=	
  iface['address']	
  %>	
  
	
  	
  <%	
  if	
  iface.has_key?('netmask')	
  -­‐%>	
  
	
  	
  netmask	
  <%=	
  iface['netmask']	
  %>	
  
	
  	
  <%	
  end	
  -­‐%>	
  
	
  	
  mtu	
  9000	
  
<%	
  end	
  %>	
  
Managing network interfaces
cumulusnetworks.com 18
1.  auto	
  lo	
  
2.  iface	
  lo	
  inet	
  loopback	
  
3.  <%	
  if	
  @int_loopback	
  -­‐%>	
  
4.  	
  	
  	
  	
  address	
  <%=	
  int_loopback	
  %>	
  
5.  	
  	
  	
  	
  netmask	
  255.255.255.255	
  
6.  <%	
  end	
  -­‐%>	
  
7.  auto	
  eth0	
  
8.  iface	
  eth0	
  inet	
  dhcp	
  
9.  <%	
  if	
  @int_unnumbered	
  -­‐%>	
  
10. #	
  unnumbered	
  interfaces	
  
11. <%	
  @int_unnumbered.each	
  do	
  |val|	
  -­‐%>	
  
12. auto	
  <%=	
  val	
  %>	
  
13. iface	
  <%=	
  val	
  %>	
  inet	
  static	
  
14. 	
  	
  	
  	
  address	
  <%=	
  int_loopback	
  %>	
  
15. 	
  	
  	
  	
  netmask	
  255.255.255.255	
  
16. <%	
  end	
  -­‐%>	
  
17. <%	
  else	
  %>	
  
18. #	
  no	
  unnumbered	
  interfaces	
  
19. <%	
  end	
  -­‐%>	
  
20. <%	
  if	
  @int_layer3	
  %>	
  
21. #	
  l3	
  interfaces	
  
22. <%	
  int_layer3.each_pair	
  do	
  |key,	
  value_hash|	
  %>	
  
23. auto	
  <%=	
  key	
  %>	
  
24. iface	
  <%=	
  key	
  %>	
  inet	
  static	
  
25. 	
  	
  	
  	
  address	
  <%=	
  value_hash['address']	
  %>	
  
26. 	
  	
  	
  	
  netmask	
  <%=	
  value_hash['netmask']	
  %>	
  
27. <%	
  end	
  %>	
  
28. <%	
  else	
  %>	
  
29. #	
  no	
  l3	
  interfaces	
  
30. <%	
  end	
  %>	
  
31. <%	
  if	
  int_bridges	
  %>	
  
32. #	
  bridges	
  
33. <%	
  int_bridges.each_pair	
  do	
  |key,	
  value_hash|	
  %>	
  
34. auto	
  <%=	
  key	
  %>	
  
35. iface	
  <%=	
  key	
  %>	
  inet	
  static	
  
36. 	
  	
  	
  	
  address	
  <%=	
  value_hash['address']	
  %>	
  
37. 	
  	
  	
  	
  netmask	
  <%=	
  value_hash['netmask']	
  %>	
  
38. 	
  	
  	
  	
  bridge_ports	
  <%	
  value_hash['members'].each	
  do	
  |val|	
  -­‐
%><%=	
  val%>	
  <%	
  end	
  -­‐%>	
  
39. <%	
  end	
  %>	
  
40. <%	
  else	
  %>	
  
41. #	
  no	
  bridges	
  
42. <%	
  end	
  %>	
  
Managing network interfaces
§ Everything in one file
§  Pros
§  Simple to implement and understand
§  Standard (no surprises)
§  Cons
§  Not simple if you have complex configurations
§  If one interface changes everything changes
cumulusnetworks.com 19
Managing network interfaces
cumulusnetworks.com 20
etc	
  
└──	
  network	
  
	
  	
  	
  	
  ├──	
  interfaces	
  
	
  	
  	
  	
  └──	
  interfaces.d	
  
	
  	
  	
  	
  	
  	
  	
  	
  ├──	
  eth0	
  
	
  	
  	
  	
  	
  	
  	
  	
  ├──	
  lo	
  
	
  	
  	
  	
  	
  	
  	
  	
  ├──	
  swp1	
  
	
  	
  	
  	
  	
  	
  	
  	
  ├──	
  swp2	
  
	
  	
  	
  	
  	
  	
  	
  	
  ├──	
  ...	
  
	
  	
  	
  	
  	
  	
  	
  	
  └──	
  swp48	
  
auto	
  swp48	
  
iface	
  swp48	
  
	
  	
  address	
  10.1.1.10	
  
	
  	
  netmask	
  255.255.254.0	
  
	
  	
  mtu	
  9000	
  
source	
  /etc/network/interfaces.d/*	
  
Managing network interfaces
§ Idempotentency
§  notify	
  =>	
  Service['networking']	
  
§  Change one interface, everything is reloaded
§ ifupdown2
§  Part of Cumulus Linux, optional in Debian, Ubuntu
§  ifreload	
  –a	
  
cumulusnetworks.com 21
Managing network interfaces
cumulusnetworks.com 22
define	
  iface	
  {	
  
	
  	
  $id	
  =	
  $name["name"]	
  
	
  	
  $address	
  =	
  $name["address"]	
  
	
  	
  $netmask	
  =	
  $name["netmask"]	
  
	
  
	
  	
  file	
  {	
  "/etc/network/interfaces.d/$id":	
  
	
  	
  	
  	
  ensure	
  =>	
  file,	
  
	
  	
  	
  	
  content	
  =>	
  template("iface.erb"),	
  
	
  	
  	
  	
  require	
  =>	
  File["/etc/network/interfaces.d"],	
  
	
  	
  	
  	
  notify	
  =>	
  Exec["reload_$id"],	
  
	
  	
  }	
  
	
  
	
  	
  exec	
  {	
  "reload_$id":	
  
	
  	
  	
  	
  command	
  =>	
  "ifdown	
  $id;ifup	
  $id",	
  
	
  	
  	
  	
  path	
  =>	
  ["/sbin"],	
  
	
  	
  	
  	
  refreshonly	
  =>	
  true,	
  
	
  	
  }	
  
}	
  
	
  
iface{	
  $ifaces:	
  }	
  
Cumulus Linux Puppet Modules
cumulusnetworks.com 23
cumulus_interface	
  {'swp1':	
  
	
  	
  ipv4	
  =>	
  '192.168.1.10/24',	
  
}	
  
	
  
cumulus_interface	
  {'swp2':	
  
	
  	
  ipv4	
  =>	
  '172.16.2.21',	
  
}	
  
	
  
cumulus_interface	
  {'swp48':	
  
	
  	
  ipv4	
  =>	
  '10.1.1.10/24',	
  
}	
  
Bridges & Bonds
cumulusnetworks.com 24
cumulus_bond	
  {'uplink':	
  
	
  	
  slaves	
  =>	
  ['swp10-­‐11']	
  
}	
  
	
  
cumulus_bridge	
  {	
  'br0':	
  
	
  	
  ports	
  	
  	
  	
  	
  	
  =>	
  ['swp1-­‐2']	
  
	
  	
  ipv4	
  	
  	
  	
  	
  	
  	
  =>	
  ['10.1.1.1/24']	
  
	
  	
  ipv6	
  	
  	
  	
  	
  	
  	
  =>	
  ['2001:db8:abcd::/48']	
  
	
  	
  alias_name	
  =>	
  'LXC	
  bridge'	
  
	
  	
  mtu	
  	
  	
  	
  	
  	
  	
  	
  =>	
  9000	
  
}	
  
Managing Layer 3
§ Quagga
§  OSPF, ECMP, BGP
§  Focused on an interactive CLI
•  Makes automation a little awkward
§  Graceful reload is experimental
§ Other Open Source
§  Bird
§  OpenBGPD
§  ExaBGP
cumulusnetworks.com 25
Firewalls & ACLs
§ Firewalls
§  UFW rules are dead easy
•  UFW Puppet modules exist
§  RedHat users are also covered
•  Lokkit modules exist
§ IPTables
§  Loads of IPTables modules to choose from
•  If you need it!
cumulusnetworks.com 26
Testing
§ Network Infrastructure as Code
§  It’s code!
§ Acceptance testing
§  Many vendors provide a virtual machine
§  You can connect them virtually into topologies
cumulusnetworks.com 27
Testing
cumulusnetworks.com 28
Testing
§ Vagrant
§ Serverspec
§  BATS, Cucumber, behave?
§ Beaker
§ GNS3
cumulusnetworks.com 29
Summary
§  Expressing networks as human (ie: virtual diagram) and machine
(YAML) = powerful (see PTM as an example)
§  HW appliances of all shapes are turning into
pure SW plays (some begrudgingly)
§  {Net}DevOps transformation has begun in networking
•  Please help these men and women share your journey!
© 2014 Cumulus Networks. CUMULUS, the Cumulus Logo, CUMULUS NETWORKS, and the Rocket Turtle Logo (the “Marks”) are trademarks and service marks of
Cumulus Networks, Inc. in the U.S. and other countries. You are not permitted to use the Marks without the prior written consent of Cumulus Networks. 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. All other marks are used
under fair use or license from their respective owners.
§ Thank You!
cumulusnetworks.com 31
Matt Peterson
matt@cumulusnetworks.com
@dorkmatt

More Related Content

What's hot

Managing Your Cisco Datacenter Network with Ansible
Managing Your Cisco Datacenter Network with AnsibleManaging Your Cisco Datacenter Network with Ansible
Managing Your Cisco Datacenter Network with Ansiblefmaccioni
 
Chef Provisioning a Chef Server Cluster - ChefConf 2015
Chef Provisioning a Chef Server Cluster - ChefConf 2015Chef Provisioning a Chef Server Cluster - ChefConf 2015
Chef Provisioning a Chef Server Cluster - ChefConf 2015Chef
 
An Introduction into Bosh | anynines
An Introduction into Bosh | anynines An Introduction into Bosh | anynines
An Introduction into Bosh | anynines anynines GmbH
 
Salt conf 2014-installing-openstack-using-saltstack-v02
Salt conf 2014-installing-openstack-using-saltstack-v02Salt conf 2014-installing-openstack-using-saltstack-v02
Salt conf 2014-installing-openstack-using-saltstack-v02Yazz Atlas
 
SaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsSaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsThomas Jackson
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationSuresh Kumar
 
Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Richard Donkin
 
Python Deployment with Fabric
Python Deployment with FabricPython Deployment with Fabric
Python Deployment with Fabricandymccurdy
 
openstack源码分析(1)
openstack源码分析(1)openstack源码分析(1)
openstack源码分析(1)cannium
 
Learn nginx in 90mins
Learn nginx in 90minsLearn nginx in 90mins
Learn nginx in 90minsLarry Cai
 
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStackSaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStackSaltStack
 
Ansible & Cumulus Networks - Simplify Network Automation
Ansible & Cumulus Networks - Simplify Network AutomationAnsible & Cumulus Networks - Simplify Network Automation
Ansible & Cumulus Networks - Simplify Network AutomationCumulus Networks
 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeSarah Z
 
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...SaltStack
 
Mitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorpMitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorpOntico
 

What's hot (20)

Managing Your Cisco Datacenter Network with Ansible
Managing Your Cisco Datacenter Network with AnsibleManaging Your Cisco Datacenter Network with Ansible
Managing Your Cisco Datacenter Network with Ansible
 
Chef Provisioning a Chef Server Cluster - ChefConf 2015
Chef Provisioning a Chef Server Cluster - ChefConf 2015Chef Provisioning a Chef Server Cluster - ChefConf 2015
Chef Provisioning a Chef Server Cluster - ChefConf 2015
 
An Introduction into Bosh | anynines
An Introduction into Bosh | anynines An Introduction into Bosh | anynines
An Introduction into Bosh | anynines
 
Ansible Case Studies
Ansible Case StudiesAnsible Case Studies
Ansible Case Studies
 
Salt conf 2014-installing-openstack-using-saltstack-v02
Salt conf 2014-installing-openstack-using-saltstack-v02Salt conf 2014-installing-openstack-using-saltstack-v02
Salt conf 2014-installing-openstack-using-saltstack-v02
 
SaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertoolsSaltConf 2014: Safety with powertools
SaltConf 2014: Safety with powertools
 
Ansible
AnsibleAnsible
Ansible
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Network automation (NetDevOps) with Ansible
Network automation (NetDevOps) with AnsibleNetwork automation (NetDevOps) with Ansible
Network automation (NetDevOps) with Ansible
 
Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)Go Faster with Ansible (PHP meetup)
Go Faster with Ansible (PHP meetup)
 
Python Deployment with Fabric
Python Deployment with FabricPython Deployment with Fabric
Python Deployment with Fabric
 
openstack源码分析(1)
openstack源码分析(1)openstack源码分析(1)
openstack源码分析(1)
 
Learn nginx in 90mins
Learn nginx in 90minsLearn nginx in 90mins
Learn nginx in 90mins
 
Nginx Essential
Nginx EssentialNginx Essential
Nginx Essential
 
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStackSaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
SaltConf14 - Oz Akan, Rackspace - Deploying OpenStack Marconi with SaltStack
 
Ansible & Cumulus Networks - Simplify Network Automation
Ansible & Cumulus Networks - Simplify Network AutomationAnsible & Cumulus Networks - Simplify Network Automation
Ansible & Cumulus Networks - Simplify Network Automation
 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
 
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
 
Mitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorpMitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorp
 

Similar to Automating the Network

ONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionEueung Mulyana
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)Wesley Beary
 
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean WinnCouch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean WinnTrevor Roberts Jr.
 
Chris Swan ONUG Academy - Container Networks Tutorial
Chris Swan ONUG Academy - Container Networks TutorialChris Swan ONUG Academy - Container Networks Tutorial
Chris Swan ONUG Academy - Container Networks TutorialCohesive Networks
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the CloudWesley Beary
 
Vagrant, Ansible, and OpenStack on your laptop
Vagrant, Ansible, and OpenStack on your laptopVagrant, Ansible, and OpenStack on your laptop
Vagrant, Ansible, and OpenStack on your laptopLorin Hochstein
 
Cloud Meetup - Automation in the Cloud
Cloud Meetup - Automation in the CloudCloud Meetup - Automation in the Cloud
Cloud Meetup - Automation in the Cloudpetriojala123
 
[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVROpenStack Korea Community
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesPaolo Visintin
 
Software Defined Datacenter
Software Defined DatacenterSoftware Defined Datacenter
Software Defined DatacenterNETWAYS
 
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....OpenNebula Project
 
Deploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in OpenshiftDeploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in OpenshiftAlexander Rubin
 
NFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsNFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsCumulus Networks
 
Docker SDN (software-defined-networking) JUG
Docker SDN (software-defined-networking) JUGDocker SDN (software-defined-networking) JUG
Docker SDN (software-defined-networking) JUGPiotr Kieszczyński
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloudKyle Rames
 
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_trainingvideos
 
Building cloud stack at scale
Building cloud stack at scaleBuilding cloud stack at scale
Building cloud stack at scaleShapeBlue
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabMichelle Holley
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with PuppetKris Buytaert
 

Similar to Automating the Network (20)

ONOS SDN Controller - Introduction
ONOS SDN Controller - IntroductionONOS SDN Controller - Introduction
ONOS SDN Controller - Introduction
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
 
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean WinnCouch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
Couch to OpenStack: Neutron (Quantum) - August 13, 2013 Featuring Sean Winn
 
Chris Swan ONUG Academy - Container Networks Tutorial
Chris Swan ONUG Academy - Container Networks TutorialChris Swan ONUG Academy - Container Networks Tutorial
Chris Swan ONUG Academy - Container Networks Tutorial
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
Vagrant, Ansible, and OpenStack on your laptop
Vagrant, Ansible, and OpenStack on your laptopVagrant, Ansible, and OpenStack on your laptop
Vagrant, Ansible, and OpenStack on your laptop
 
Cloud Meetup - Automation in the Cloud
Cloud Meetup - Automation in the CloudCloud Meetup - Automation in the Cloud
Cloud Meetup - Automation in the Cloud
 
[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
 
Software Defined Datacenter
Software Defined DatacenterSoftware Defined Datacenter
Software Defined Datacenter
 
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
OpenNebulaConf 2016 - Networking, NFVs and SDNs Hands-on Workshop by Rubén S....
 
Deploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in OpenshiftDeploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in Openshift
 
NFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center OperationsNFD9 - Matt Peterson, Data Center Operations
NFD9 - Matt Peterson, Data Center Operations
 
Docker SDN (software-defined-networking) JUG
Docker SDN (software-defined-networking) JUGDocker SDN (software-defined-networking) JUG
Docker SDN (software-defined-networking) JUG
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
 
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
 
Building cloud stack at scale
Building cloud stack at scaleBuilding cloud stack at scale
Building cloud stack at scale
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with Puppet
 
Skydive 5/07/2016
Skydive 5/07/2016Skydive 5/07/2016
Skydive 5/07/2016
 

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 controlrepoPuppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
 
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 vscodePuppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 
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 codePuppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approachPuppet
 
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 automationPuppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliancePuppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowPuppet
 
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 WindowsPuppet
 
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. 2020Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppetPuppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet
 
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 ReeuwijkPuppet
 
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 groundPuppet
 
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 SoftwarePuppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User GroupPuppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsPuppet
 
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 MaludyPuppet
 

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

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Automating the Network

  • 1. Automating the Network 1 Matt Peterson Office of the CTO Cumulus Networks PuppetCamp London – November 3rd, 2015
  • 2. whois! Puppet’ing since 0.24 (2008) Added CL support in 2013
  • 4. Why {Net}DevOps? cumulusnetworks.com 4 greater operational insight Networking is the last infrastructure silo
  • 5. {Net}DevOps cumulusnetworks.com 5 Leverage common DevOps tenants within Networking §  Configuration management (today’s focus) §  Make repetitive tasks predictable §  Enforce policy to desired state - naming schemes, software versions, … great audit trail mechanism § Infrastructure as code §  Describe physical & logical components in human & machine readable formats
  • 6. {Net}DevOps cumulusnetworks.com 6 §  Reactive to infrastructure as a whole §  ie: L3 Clos architecture, single spine switch fans fail, automatically adjust IGP cost to route around §  Consistency (sometimes viewed as transparency) §  Source of truth (across entire org, if possible), Git is popular in compute circles §  Common monitoring & escalation systems
  • 7. A brief history of DevOps § …well, almost. cumulusnetworks.com 7
  • 8. Traditional network automation § Top-down efforts §  SNMP §  YANG/NETCONF §  OpenFlow § Ansible §  Screen-scraping § Difficult to integrate with the rest of the Ops stack cumulusnetworks.com 8
  • 9. “Whitebox switch” or bare metal networking §  Treat as a server, preforms like a switch (or router) •  Kernel networking state sync to ASIC (and vice versa) •  ifconfig, ethtool, isc-dhcp … apt-get pkgname! §  Consistent tooling across compute & networking •  CLI is usually bash, no walled garden •  Automation friendly from day 1 §  Choice on HW & SW suppliers •  Same as bare metal computing is today •  Applies to costly optics & cabling too! routing bridging ops Cumulus Linux hardware
  • 11. Modern network automation § Zero Touch Provisioning (ZTP) §  Normally triggered by DHCP § Runs a provisioning script §  Performs personalization §  Install & enable Puppet § Puppet takes over after Cumulus install cumulusnetworks.com 11
  • 12. 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/provision.sh";   §  }  
  • 13. ZTP with DHCP example dhcp.conf cumulusnetworks.com 13 dhclient.conf   option  cumulus-­‐provision-­‐url  code  239  =  text;   Exit hook 1. #!/bin/bash   2. #  Copyright  2015  Cumulus  Networks,  inc    all  rights  reserved   3. if  [  !  -­‐z  $new_cumulus_provision_url  ]   4. then   5.   /usr/lib/cumulus/autoprovision  -­‐-­‐log  syslog    -­‐-­‐url  $new_cumulus_provision_url  &   6. fi  
  • 14. 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      
  • 15. § Debian based, so we can do everything via. Puppet §  Interface configuration (including Bonds & Bridges) §  Routing software (Quagga – BGP/OSPF) configuration §  Users, authentication, logging, packages, monitoring… Puppet
  • 16. Managing network interfaces cumulusnetworks.com 16 auto  swp1   iface  swp1      address  192.168.1.10      netmask  255.255.255.0      mtu  9000     auto  swp2   iface  swp2      address  172.16.2.21      mtu  9000   …   auto  swp48   iface  swp48      address  10.1.1.10      netmask  255.255.254.0      mtu  9000  
  • 17. Managing network interfaces cumulusnetworks.com 17 $swp1      =  {  'name'  =>  'swp1',  'address'  =>  '192.168.1.10',  'netmask'  =>  '255.255.255.0'  }   $swp2      =  {  'name'  =>  'swp2',  'address'  =>  '172.16.2.21'  }   $swp48    =  {  'name'  =>  'swp48',  'address'  =>  '10.1.1.10',  'netmask'  =>  '255.255.254.0'  }   $ifaces  =  [  $swp1,  $swp2,  $swp48  ]     file  {  '/etc/network/interfaces':      ensure  =>  file,      content  =>  template('interfaces.erb')   }   <%  @ifaces.each  do  |iface|  -­‐%>   auto  <%=  iface['name']  %>   iface  <%=  iface['name']  %>      address  <%=  iface['address']  %>      <%  if  iface.has_key?('netmask')  -­‐%>      netmask  <%=  iface['netmask']  %>      <%  end  -­‐%>      mtu  9000   <%  end  %>  
  • 18. Managing network interfaces cumulusnetworks.com 18 1.  auto  lo   2.  iface  lo  inet  loopback   3.  <%  if  @int_loopback  -­‐%>   4.         address  <%=  int_loopback  %>   5.         netmask  255.255.255.255   6.  <%  end  -­‐%>   7.  auto  eth0   8.  iface  eth0  inet  dhcp   9.  <%  if  @int_unnumbered  -­‐%>   10. #  unnumbered  interfaces   11. <%  @int_unnumbered.each  do  |val|  -­‐%>   12. auto  <%=  val  %>   13. iface  <%=  val  %>  inet  static   14.         address  <%=  int_loopback  %>   15.         netmask  255.255.255.255   16. <%  end  -­‐%>   17. <%  else  %>   18. #  no  unnumbered  interfaces   19. <%  end  -­‐%>   20. <%  if  @int_layer3  %>   21. #  l3  interfaces   22. <%  int_layer3.each_pair  do  |key,  value_hash|  %>   23. auto  <%=  key  %>   24. iface  <%=  key  %>  inet  static   25.         address  <%=  value_hash['address']  %>   26.         netmask  <%=  value_hash['netmask']  %>   27. <%  end  %>   28. <%  else  %>   29. #  no  l3  interfaces   30. <%  end  %>   31. <%  if  int_bridges  %>   32. #  bridges   33. <%  int_bridges.each_pair  do  |key,  value_hash|  %>   34. auto  <%=  key  %>   35. iface  <%=  key  %>  inet  static   36.         address  <%=  value_hash['address']  %>   37.         netmask  <%=  value_hash['netmask']  %>   38.         bridge_ports  <%  value_hash['members'].each  do  |val|  -­‐ %><%=  val%>  <%  end  -­‐%>   39. <%  end  %>   40. <%  else  %>   41. #  no  bridges   42. <%  end  %>  
  • 19. Managing network interfaces § Everything in one file §  Pros §  Simple to implement and understand §  Standard (no surprises) §  Cons §  Not simple if you have complex configurations §  If one interface changes everything changes cumulusnetworks.com 19
  • 20. Managing network interfaces cumulusnetworks.com 20 etc   └──  network          ├──  interfaces          └──  interfaces.d                  ├──  eth0                  ├──  lo                  ├──  swp1                  ├──  swp2                  ├──  ...                  └──  swp48   auto  swp48   iface  swp48      address  10.1.1.10      netmask  255.255.254.0      mtu  9000   source  /etc/network/interfaces.d/*  
  • 21. Managing network interfaces § Idempotentency §  notify  =>  Service['networking']   §  Change one interface, everything is reloaded § ifupdown2 §  Part of Cumulus Linux, optional in Debian, Ubuntu §  ifreload  –a   cumulusnetworks.com 21
  • 22. Managing network interfaces cumulusnetworks.com 22 define  iface  {      $id  =  $name["name"]      $address  =  $name["address"]      $netmask  =  $name["netmask"]        file  {  "/etc/network/interfaces.d/$id":          ensure  =>  file,          content  =>  template("iface.erb"),          require  =>  File["/etc/network/interfaces.d"],          notify  =>  Exec["reload_$id"],      }        exec  {  "reload_$id":          command  =>  "ifdown  $id;ifup  $id",          path  =>  ["/sbin"],          refreshonly  =>  true,      }   }     iface{  $ifaces:  }  
  • 23. Cumulus Linux Puppet Modules cumulusnetworks.com 23 cumulus_interface  {'swp1':      ipv4  =>  '192.168.1.10/24',   }     cumulus_interface  {'swp2':      ipv4  =>  '172.16.2.21',   }     cumulus_interface  {'swp48':      ipv4  =>  '10.1.1.10/24',   }  
  • 24. Bridges & Bonds cumulusnetworks.com 24 cumulus_bond  {'uplink':      slaves  =>  ['swp10-­‐11']   }     cumulus_bridge  {  'br0':      ports            =>  ['swp1-­‐2']      ipv4              =>  ['10.1.1.1/24']      ipv6              =>  ['2001:db8:abcd::/48']      alias_name  =>  'LXC  bridge'      mtu                =>  9000   }  
  • 25. Managing Layer 3 § Quagga §  OSPF, ECMP, BGP §  Focused on an interactive CLI •  Makes automation a little awkward §  Graceful reload is experimental § Other Open Source §  Bird §  OpenBGPD §  ExaBGP cumulusnetworks.com 25
  • 26. Firewalls & ACLs § Firewalls §  UFW rules are dead easy •  UFW Puppet modules exist §  RedHat users are also covered •  Lokkit modules exist § IPTables §  Loads of IPTables modules to choose from •  If you need it! cumulusnetworks.com 26
  • 27. Testing § Network Infrastructure as Code §  It’s code! § Acceptance testing §  Many vendors provide a virtual machine §  You can connect them virtually into topologies cumulusnetworks.com 27
  • 29. Testing § Vagrant § Serverspec §  BATS, Cucumber, behave? § Beaker § GNS3 cumulusnetworks.com 29
  • 30. Summary §  Expressing networks as human (ie: virtual diagram) and machine (YAML) = powerful (see PTM as an example) §  HW appliances of all shapes are turning into pure SW plays (some begrudgingly) §  {Net}DevOps transformation has begun in networking •  Please help these men and women share your journey!
  • 31. © 2014 Cumulus Networks. CUMULUS, the Cumulus Logo, CUMULUS NETWORKS, and the Rocket Turtle Logo (the “Marks”) are trademarks and service marks of Cumulus Networks, Inc. in the U.S. and other countries. You are not permitted to use the Marks without the prior written consent of Cumulus Networks. 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. All other marks are used under fair use or license from their respective owners. § Thank You! cumulusnetworks.com 31 Matt Peterson matt@cumulusnetworks.com @dorkmatt