This document discusses Chef for OpenStack, which uses Chef to automate the deployment and management of OpenStack. It provides concise summaries of key points:
- Chef for OpenStack includes cookbooks for common OpenStack components like Keystone, Glance, Nova, and Swift that can be used to programmatically deploy and manage OpenStack infrastructure.
- The Chef community contributes to OpenStack-related cookbooks that are open source and available on GitHub, helping reduce fragmentation and encourage collaboration around automating OpenStack.
- Chef allows OpenStack infrastructures to be treated like code, with configurations version controlled and deployments that can be automatically reconstructed from backups, improving supportability and portability across environments.
15. And it Continues to Evolve
Tell me about
Chef!
http://www.flickr.com/photos/16339684@N00/2681435235/
16. 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/
17. 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
http://www.flickr.com/photos/ssoosay/5126146763/
19. Declarative Interface to Resources
• Define policy
• Say what, not how
• Pull not Push
http://www.flickr.com/photos/bixentro/2591838509/
20. 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/
21. Ruby!
extra_packages = case node['platform']
when "ubuntu","debian"
%w{
ruby1.8
ruby1.8-dev
rdoc1.8
ri1.8
libopenssl-ruby
}
end
extra_packages.each do |pkg|
package pkg do
action :install
end
end
22. Search
• Search for nodes
with Roles
• Find configuration
data
• IP addresses
• Hostnames
• FQDNs
http://www.flickr.com/photos/kathycsus/2686772625
23. Pass Results to Templates
pool_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
24. 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 -%>
29. Build anything
• Simple internal applications
• Complex external applications
• Workstations
• Hadoop clusters
• IaaS infrastructure
• PaaS infrastructure
• SaaS applications
• Storage systems
• You name it
http://www.flickr.com/photos/hyku/245010680/
30. 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/
31. 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
33. 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
34. Chef for OpenStack: What
• Chef Repository for Deploying OpenStack
• Documentation for Chef for OpenStack
• Cookbooks
• Keystone
• Glance
• Nova
• Horizon
• Swift
• Knife OpenStack
35. 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
40. 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
44. knife openstack image list
$ knife openstack image list
ID Name
13 natty-server-cloudimg-amd64
12 natty-server-cloudimg-amd64-kernel
15 oneiric-server-cloudimg-amd64
14 oneiric-server-cloudimg-amd64-kernel
45. knife openstack server create
knife openstack server create --node-name ko1 --flavor 1 --image 13 -S trystack
46.
47. $ ssh -i ~/.ssh/trystack.pem ubuntu@8.21.28.24
The authenticity of host '8.21.28.24 (8.21.28.24)' can't 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)? yes
Warning: 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/cloud
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
ubuntu@ko1:~$
48. Chef for Infrastructure Portability
• knife openstack
• knife hp
• knife rackspace
• knife ec2
• ... and many others
49. 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)
50. Chef for OpenStack Ecosystem
• Cookbooks reusable outside of OpenStack
• TestKitchen
• Librarian
• Spiceweasel
• pxe_dust
• knife-rackspace/hp/dreamhost
• Crowbar
51. 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
52. Thanks!
Matt Ray
matt@opscode.com
IRC/Twitter/GitHub: mattray
www.opscode.com/openstack