Chef for OpenStack  - OpenStack Fall 2012 Summit
Upcoming SlideShare
Loading in...5
×
 

Chef for OpenStack - OpenStack Fall 2012 Summit

on

  • 4,880 views

Chef for OpenStack is a collaborative project for the deployment and management of OpenStack clouds. This is an overview of the status of the project at the OpenStack Fall 2012 Summit

Chef for OpenStack is a collaborative project for the deployment and management of OpenStack clouds. This is an overview of the status of the project at the OpenStack Fall 2012 Summit

Statistics

Views

Total Views
4,880
Views on SlideShare
4,571
Embed Views
309

Actions

Likes
13
Downloads
163
Comments
0

10 Embeds 309

http://www.scoop.it 204
http://leastresistance.wordpress.com 66
https://twitter.com 24
http://irq.tumblr.com 6
http://www.zenwebvideo.it 2
http://twitter.com 2
http://www.linkedin.com 2
https://si0.twimg.com 1
http://hootsuite.scoop.it 1
http://www.conferize.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Chef for OpenStack  - OpenStack Fall 2012 Summit Chef for OpenStack - OpenStack Fall 2012 Summit Presentation Transcript

  • Chef for OpenStack Matt Ray matt@opscode.com IRC/Twitter/GitHub: mattray www.opscode.com/openstack
  • Deploying and ManagingOpenStack is not simple.
  • Chef makes it easier.
  • See NodeApplication Server
  • See NodesApplication ServerApplication Database
  • See Nodes GrowApplication ServerApplication Databases
  • See Nodes GrowApplication ServersApplication Databases
  • See Nodes GrowLoad BalancerApplication ServersApplication Databases
  • See Nodes GrowLoad Balancers Application ServersApplication Databases
  • See Nodes GrowLoad Balancers Application ServersApplication Database CacheApplication Databases
  • Tied together with ConfigLoad Balancers Application ServersApplication Database CacheApplication Databases
  • Infrastructure is a SnowflakeLoad Balancers Application ServersApplication Database CacheFloating IP?Application Databases
  • Evolving Complexity Load Balancers ApplicationCache Application ServersNoSQL Database Cache Database Slaves Database
  • Complexity Grows Quickly DC2DC1 DC3
  • And it Continues to EvolveTell me about Chef! http://www.flickr.com/photos/16339684@N00/2681435235/
  • Chef is Infrastructure as Code • Programmatically provision and configure • Treat like any other code base • Reconstruct business from code repository, data backup, and bare metal resources. http://www.flickr.com/photos/louisb/4555295187/
  • Nodes • Chef-Client generates configurations directly on nodes from their run list • Reduce management complexity through abstraction • Store the configuration of your programs in version controlhttp://www.flickr.com/photos/ssoosay/5126146763/
  • Collections of Resources• Networking • Routes • Users• Files • Groups• Directories • Tasks• Symlinks • Packages• Mounts • Software • Services • Configurations • Other Stuff http://www.flickr.com/photos/stevekeys/3123167585/
  • Declarative Interface to Resources• Define policy• Say what, not how• Pull not Pushhttp://www.flickr.com/photos/bixentro/2591838509/
  • Recipes and Cookbooks• Recipes are collections of Resources• Cookbooks contain recipes, templates, files, custom resources, etc• Code re-use and modularity• Hundreds already on Community.opscode.com http://www.flickr.com/photos/shutterhacks/4474421855/
  • Ruby!extra_packages = case node[platform] when "ubuntu","debian" %w{ ruby1.8 ruby1.8-dev rdoc1.8 ri1.8 libopenssl-ruby } endextra_packages.each do |pkg| package pkg do action :install endend
  • Search• Search for nodes with Roles• Find configuration data• IP addresses• Hostnames• FQDNs http://www.flickr.com/photos/kathycsus/2686772625
  • Pass Results to Templatespool_members = search("node","role:webserver”)template "/etc/haproxy/haproxy.cfg" do source "haproxy-app_lb.cfg.erb" owner "root" group "root" mode 0644 variables :pool_members => pool_members.uniq notifies :restart, "service[haproxy]"end
  • Pass Results to Templates# Set up application listeners here.listen application 0.0.0.0:80 balance roundrobin <% @pool_members.each do |member| -%> server <%= member[:hostname] %> <%= member[:ipaddress] %>:> weight 1 maxconn 1 check <% end -%><% if node["haproxy"]["enable_admin"] -%>listen admin 0.0.0.0:22002 mode http stats uri /<% end -%>
  • So when thisGraphite Nagios Jboss App Memcache Postgres Slaves Postgres Master
  • Becomes thisGraphite Nagios Jboss App Memcache Postgres Slaves Postgres Master
  • Updates can be automaticGraphite Nagios Jboss App Memcache Postgres Slaves Postgres Master
  • Count the resources • Load balancer config Graphite Nagios • Nagios host ping • Nagios host ssh Jboss App • Nagios host HTTP • Nagios host app health Memcache • Graphite CPU • Graphite Memory Postgres Slaves • Graphite Disk • Graphite SNMP • Memcache firewall• 12+ resource changes for 1 node addition • Postgres firewall Postgres authZ config
  • Build anything • Simple internal applications • Complex external applications • Workstations • Hadoop clusters • IaaS infrastructure • PaaS infrastructure • SaaS applications • Storage systems • You name ithttp://www.flickr.com/photos/hyku/245010680/
  • And manage it simply• Automatically reconfigure everything• Linux, Windows, Unixes, BSDs• Load balancers• Metrics collection systems• Monitoring systems• Cloud migrations become trivial http://www.flickr.com/photos/helico/404640681/
  • The Chef Community• Apache License, Version 2.0• 900+ Individual contributors• 160+ Corporate contributors • HP, Dell, Rackspace, VMware, Calxeda, SUSE and many more• 600+ cookbooks• http://community.opscode.com
  • Whats Out There?Chef for OpenStack Resources
  • Chef for OpenStack: Why• Community for the automated deployment and management of OpenStack• Reduce fragmentation and encourage collaboration• Deploying OpenStack is not "secret sauce"• Project not a product• Apache 2 license
  • Chef for OpenStack: What• Chef Repository for Deploying OpenStack• Documentation for Chef for OpenStack• Cookbooks • Keystone • Glance • Nova • Horizon • Swift• Knife OpenStack
  • Chef for OpenStack: Where• opscode.com/openstack• groups.google.com/group/opscode-chef- openstack• #openstack-chef on irc.freenode.net• github.com/opscode/openstack-chef-repo• github.com/mattray/openstack-chef-docs• github.com/opscode-cookbooks/ • keystone, glance, nova, horizon, swift• github.com/opscode/knife-openstack
  • Chef for OpenStack: Who
  • Rackspace Private Cloud: Alamo• Initial fork of current cookbooks• github.com/rcbops/chef-cookbooks• www.rackspace.com/cloud/private/
  • Chef for OpenStack: When• Essex is working • KVM • Ubuntu 12.04• Folsom has already started • LXC • Red Hat• Grizzly and forward
  • Chef for OpenStack: Howgithub.com/mattray/openstack-chef-docs
  • Deploying OpenStack• Chef ties it all together automatically• Scaling changes how we deploy• Interchangeable components• Configurations shared, supported & documented• Licensing makes it available to everyone
  • knife openstack
  • knife openstack$ knife openstackAvailable openstack subcommands: (for details, knife SUB-COMMAND --help)** OPENSTACK COMMANDS **knife openstack flavor list (options)knife openstack image list (options)knife openstack server create (options)knife openstack server delete SERVER [SERVER] (options)knife openstack server list (options)
  • knife openstack flavor list$ knife openstack flavor listID Name Virtual CPUs RAM Disk1 m1.tiny 1 512 MB 0 GB2 m1.small 2 2048 MB 20 GB3 m1.medium 2 4096 MB 40 GB4 m1.large 2 8192 MB 80 GB5 m1.xlarge 4 16384 MB 160 GB
  • knife openstack image list$ knife openstack image listID Name13 natty-server-cloudimg-amd6412 natty-server-cloudimg-amd64-kernel15 oneiric-server-cloudimg-amd6414 oneiric-server-cloudimg-amd64-kernel
  • knife openstack server createknife openstack server create --node-name ko1 --flavor 1 --image 13 -S trystack
  • $ ssh -i ~/.ssh/trystack.pem ubuntu@8.21.28.24The authenticity of host 8.21.28.24 (8.21.28.24) cant be established.RSA key fingerprint is 0c:d8:3e:34:d1:de:c4:ee:5f:bc:b5:89:11:0d:73:e0.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 8.21.28.24 (RSA) to the list of known hosts.Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-13-virtual x86_64) * Documentation: https://help.ubuntu.com/ System information as of Thu Feb 16 23:43:29 UTC 2012 System load: 0.08 Processes: 63 Usage of /: 40.8% of 1.35GB Users logged in: 0 Memory usage: 6% IP address for eth0: 8.21.28.24 Swap usage: 0%---------------------------------------------------------------------<snip>Get cloud support with Ubuntu Advantage Cloud Guest http://www.ubuntu.com/business/services/cloudThe programs included with the Ubuntu system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted byapplicable law.To run a command as administrator (user "root"), use "sudo <command>".See "man sudo_root" for details.ubuntu@ko1:~$
  • Chef for Infrastructure Portability• knife openstack• knife hp• knife rackspace• knife ec2• ... and many others
  • Chef for OpenStack Roadmap• Documentation• Hypervisors (LXC, Hyper-V)• Databases (PostgreSQL)• Operating Systems (RHEL, Debian, SUSE)• HA Configurations• Quantum (pluggable)• Cinder (pluggable)• Community Events (NYC Nov 13)
  • Chef for OpenStack Ecosystem• Cookbooks reusable outside of OpenStack• TestKitchen• Librarian• Spiceweasel• pxe_dust• knife-rackspace/hp/dreamhost• Crowbar
  • Chef for OpenStack TL;DL• Opscode.com/openstack• Project, not a product• Lots of contributors with real deployments• Essex works, Folsom started• Features driven by demand (show up for what you want)• Documentation with examples
  • Thanks! Matt Ray matt@opscode.com IRC/Twitter/GitHub: mattray www.opscode.com/openstack