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

Chef for OpenStack- Fall 2012.pdf







Total Views
Slideshare-icon Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

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

    Chef for OpenStack- Fall 2012.pdf Chef for OpenStack- Fall 2012.pdf Presentation Transcript

    • Chef for OpenStack Matt Ray IRC/Twitter/GitHub: mattray
    • 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!
    • 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.
    • 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 control
    • Collections of Resources• Networking • Routes • Users• Files • Groups• Directories • Tasks• Symlinks • Packages• Mounts • Software • Services • Configurations • Other Stuff
    • Declarative Interface to Resources• Define policy• Say what, not how• Pull not Push
    • Recipes and Cookbooks• Recipes are collections of Resources• Cookbooks contain recipes, templates, files, custom resources, etc• Code re-use and modularity• Hundreds already on
    • 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
    • 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 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 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 it
    • And manage it simply• Automatically reconfigure everything• Linux, Windows, Unixes, BSDs• Load balancers• Metrics collection systems• Monitoring systems• Cloud migrations become trivial
    • 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•
    • 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•• openstack• #openstack-chef on••• • keystone, glance, nova, horizon, swift•
    • Chef for OpenStack: Who
    • Rackspace Private Cloud: Alamo• Initial fork of current cookbooks••
    • Chef for OpenStack: When• Essex is working • KVM • Ubuntu 12.04• Folsom has already started • LXC • Red Hat• Grizzly and forward
    • Chef for OpenStack:
    • 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@ authenticity of host ( 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 (RSA) to the list of known hosts.Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-13-virtual x86_64) * Documentation: 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: Swap usage: 0%---------------------------------------------------------------------<snip>Get cloud support with Ubuntu Advantage Cloud Guest 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•• 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 IRC/Twitter/GitHub: mattray