Velocity 2011 Chef OpenStack Workshop


Published on

The Deploying OpenStack with Chef section of the OpenStack Workshop from Velocity 2011

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Velocity 2011 Chef OpenStack Workshop

  1. Deploying OpenStack with Opscode Chef
  2. Who am I?• Matt Ray • Senior Technical Evangelist • Opscode, Inc. • Twitter/GitHub/Launchpad/IRC: mattray
  3. Deploying OpenStack is not simple.
  4. Chef makes it easier.
  5. Infrastructure as Code
  6. Enable the reconstruction of the business fromnothing but a source coderepository, an application data backup, and bare metal resources.
  7. ConfigurationManagement
  8. System Integration
  9. The Chef Framework• Reasonability• Flexibility• Library & Primitives• TIMTOWTDI
  10. The Chef Tool(s)• ohai• chef-client• knife• shef
  11. The Chef API• Client/Server• RESTful API w/ JSON• Search Service• Derivative Services
  12. The Chef Community• Apache License, Version 2.0• 360+ Individual contributors• 70+ Corporate contributors • Dell, Rackspace,VMware, RightScale, Heroku, and many more• 240+ cookbooks•
  13. openstack-cookbooks Resources
  14.• Chef repository • cookbooks • roles • data bags• stable branches• issues
  15. Chef Nodes• Each system you manage is called a node.• The chef-client runs on nodes.• The ohai discovery agent runs on nodes.• Nodes have a run list.• Searchable
  16. Chef Resources package "haproxy" do action :install end• Have a type.• template "/etc/haproxy/haproxy.cfg" do Have a name. source "haproxy.cfg.erb"• Have parameters. owner "root" group "root"• Take action to put the resource mode 0644 notifies :restart, "service[haproxy]" in the declared state. end• Can send notifications to other service "haproxy" do resources. supports :restart => true action [:enable, :start]• Take action through Providers end
  17. Chef Recipes extra_packages = case node[:platform] when "ubuntu","debian" %w{ ruby1.8 ruby1.8-dev• Ordered list of Resources rdoc1.8 ri1.8• Idempotent execution } libopenssl-ruby• Ruby end extra_packages.each do |pkg| package pkg do action :install end end
  18. Chef Cookbooks• Cookbooks are packages for Recipes • Recipes • Assets (files/templates) • Attributes • Metadata• Distributable and managed as Source•
  19. OpenStack Cookbooks• Included • glance • nova • swift• Installed • apache2 • apt • mysql • openssl • rabbitmq
  20. Chef Roles• Roles describe the node.• Roles have run lists.• Roles have attributes.• Roles may contain other roles.• Searchable.• Webserver, database, Hadoop-worker, etc.
  21. OpenStack Roles• nova-single-machine• nova-db• nova-rabbitmq-server• glance-single-machine• nova-multi-controller• nova-multi-compute
  22. Chef Data Bags• Data bags store arbitrary data• JSON• Searchable
  23. OpenStack Data Bagsknife data bag create openstackknife data bag from file openstack defaults.jsonknife data bag from file openstack glance.jsonknife data bag from file openstack images.jsonknife data bag show openstack imagesid: imagesimages: arch: x86_64 distro: Ubuntu image: lucid-server-uec-amd64.img kernel: lucid-server-uec-amd64-vmlinuz-virtual version: 10.04
  24. Deploying OpenStack• Scaling changes how we deploy!• Single machine works• Controller + N Computes work(ed)• Nova and/or Swift installations• Configurations will be supported, shared & documented
  25. Spiceweasel• yaml/json for describing infrastructure• generates knife commands• shareable "best practices"• infrastructure.yml included•
  26. Testing OpenStack• bare-metal to OpenStack • ~15 minutes • pxe_dust cookbook• 2 networks • admin • public
  27. knife openstack
  28. knife openstack$ gem install knife-openstack$ knife openstack** OPENSTACK COMMANDS **knife openstack server list (options)knife openstack flavor list (options)knife openstack server create (options)knife openstack server delete SERVER [SERVER] (options)knife openstack image list (options)
  29. knife.rbknife[:openstack_access_key_id] = "MeMpLexdnjmXeXGMx:admin"knife[:openstack_secret_access_key] = "nFjXAKl5G6VaXE3bVuwi"knife[:openstack_api_endpoint] = ""
  30. knife openstack server create -S mykey -x ubuntu-I ami-4b0ff834 -f m1.tiny -r role[webserver]
  31. How did we get here? git clone git://
  32. Origins• Forked from Anso Labs• Bootstrapped originally by Opscode• Chef Solo/Vagrant installs for Developers •
  33. Crowbar• OpenStack installer from Dell• Dell is releasing this under the Apache 2 license• Extension of the Chef server• Developed by Dell, Rackspace & Opscode•
  34. Whats Next?
  35. Nova Roadmap• Improve Glance integration• Network Types • Flat, FlatDHCP, VLANs• Multiple Hypervisors • Xen, LXC, Hyper-V• Databases • PostgreSQL, Drizzle
  36. Swift Roadmap• Multiple Implementations Available• Dell •• Voxel • and-spiceweasel-part-1-0 •
  37. Dashboard
  38. OpenStack Roadmap• Diablo release• RHEL 6 & Fedora• Windows
  39. Get Involved!• cookbooks/tree/cactus• Deploying+OpenStack+with+Chef• #chef #openstack• Twitter/GitHub/Launchpad/IRC:mattray•
  40. Questions?
  41. Thanks!