Top Banner
Chef for OpenStack Matt Ray [email protected] IRC/Twitter/GitHub: mattray www.opscode.com/openstack
50

Australian OpenStack User Group August 2012: Chef for OpenStack

May 10, 2015

Download

Technology

Matt Ray

Chef introduction and overview of Chef for OpenStack
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Australian OpenStack User Group August 2012: Chef for OpenStack

Chef for OpenStack

Matt [email protected]

IRC/Twitter/GitHub: mattraywww.opscode.com/openstack

Page 2: Australian OpenStack User Group August 2012: Chef for OpenStack

Deploying and Managing OpenStack is not simple.

Page 3: Australian OpenStack User Group August 2012: Chef for OpenStack

Chef makes it easier.

Page 4: Australian OpenStack User Group August 2012: Chef for OpenStack

See Node

Application Server

Page 5: Australian OpenStack User Group August 2012: Chef for OpenStack

See Nodes

Application Server

Application Database

Page 6: Australian OpenStack User Group August 2012: Chef for OpenStack

See Nodes Grow

Application Server

Application Databases

Page 7: Australian OpenStack User Group August 2012: Chef for OpenStack

Application Servers

Application Databases

See Nodes Grow

Page 8: Australian OpenStack User Group August 2012: Chef for OpenStack

Application Servers

Application Databases

Load Balancer

See Nodes Grow

Page 9: Australian OpenStack User Group August 2012: Chef for OpenStack

See Nodes Grow

Application Servers

Application Databases

Load Balancers

Page 10: Australian OpenStack User Group August 2012: Chef for OpenStack

See Nodes Grow

Application Servers

Application Database Cache

Load Balancers

Application Databases

Page 11: Australian OpenStack User Group August 2012: Chef for OpenStack

Tied together with Config

Application Servers

Application Database Cache

Load Balancers

Application Databases

Page 12: Australian OpenStack User Group August 2012: Chef for OpenStack

Infrastructure is a Snowflake

Application Servers

Application Database Cache

Load Balancers

Floating IP?

Application Databases

Page 13: Australian OpenStack User Group August 2012: Chef for OpenStack

Evolving Complexity

Load Balancers

Application Servers

NoSQL

Database Slaves

ApplicationCache

Database Cache

Database

Page 14: Australian OpenStack User Group August 2012: Chef for OpenStack

Complexity Grows Quickly

DC1

DC3

DC2

Page 15: Australian OpenStack User Group August 2012: Chef for OpenStack

http://www.flickr.com/photos/16339684@N00/2681435235/

And it Continues to Evolve

Tell me aboutChef!

Page 16: Australian OpenStack User Group August 2012: Chef for OpenStack

Chef is Infrastructure as Code

http://www.flickr.com/photos/louisb/4555295187/

• Programmatically provision and configure

• Treat like any other code base

• Reconstruct business from code repository, data backup, and bare metal resources.

Page 17: Australian OpenStack User Group August 2012: Chef for OpenStack

• 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/

Nodes

Page 18: Australian OpenStack User Group August 2012: Chef for OpenStack

Collections of Resources

• Networking

• Files

• Directories

• Symlinks

• Mounts

• Routes

• Users

• Groups

• Tasks

• Packages

• Software

• Services

• Configurations

• Other Stuffhttp://www.flickr.com/photos/stevekeys/3123167585/

Page 19: Australian OpenStack User Group August 2012: Chef for OpenStack

Declarative Interface to Resources

• Define policy

• Say what, not how

• Pull not Push

http://www.flickr.com/photos/bixentro/2591838509/

Page 20: Australian OpenStack User Group August 2012: Chef for OpenStack

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

Page 21: Australian OpenStack User Group August 2012: Chef for OpenStack

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/

Page 22: Australian OpenStack User Group August 2012: Chef for OpenStack

http://www.flickr.com/photos/kathycsus/2686772625

• IP addresses

• Hostnames

• FQDNs

• Search for nodes with Roles

• Find configuration data

Search

Page 23: Australian OpenStack User Group August 2012: Chef for OpenStack

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

Pass Results to Templates

Page 24: Australian OpenStack User Group August 2012: Chef for OpenStack

# 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 -%>

Pass Results to Templates

Page 25: Australian OpenStack User Group August 2012: Chef for OpenStack

Jboss App

Memcache

Postgres Slaves

Postgres Master

So when this

NagiosGraphite

Page 26: Australian OpenStack User Group August 2012: Chef for OpenStack

Jboss App

Memcache

Postgres Slaves

Postgres Master

NagiosGraphite

Becomes this

Page 27: Australian OpenStack User Group August 2012: Chef for OpenStack

Jboss App

Memcache

Postgres Slaves

Postgres Master

NagiosGraphite

Updates can be automatic

Page 28: Australian OpenStack User Group August 2012: Chef for OpenStack

NagiosGraphite

Count the resources

Jboss App

Memcache

Postgres Slaves

• Load balancer config

• Nagios host ping

• Nagios host ssh

• Nagios host HTTP

• Nagios host app health

• Graphite CPU

• Graphite Memory

• Graphite Disk

• Graphite SNMP

• Memcache firewall

• Postgres firewall

• Postgres authZ config

• 12+ resource changes for 1 node addition

Page 29: Australian OpenStack User Group August 2012: Chef for OpenStack

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/

Page 30: Australian OpenStack User Group August 2012: Chef for OpenStack

And manage it simply

http://www.flickr.com/photos/helico/404640681/

• Automatically reconfigure everything

• Linux, Windows, Unixes, BSDs

• Load balancers

• Metrics collection systems

• Monitoring systems

• Cloud migrations become trivial

Page 31: Australian OpenStack User Group August 2012: Chef for OpenStack

The Chef Community

• Apache License, Version 2.0

• 800+ Individual contributors

• 150+ Corporate contributors

• HP, Dell, Rackspace, VMware, Joyent, Calxeda, Heroku, SUSE and many more

• 500+ cookbooks

• http://community.opscode.com

Page 32: Australian OpenStack User Group August 2012: Chef for OpenStack

ResourcesChef for OpenStack

What's Out There?

Page 33: Australian OpenStack User Group August 2012: Chef for OpenStack

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

Page 34: Australian OpenStack User Group August 2012: Chef for OpenStack

Chef for OpenStack: What

• Chef Repository for Deploying OpenStack

• Cookbooks

• Keystone

• Glance

• Nova

• Horizon

• Swift

• Knife OpenStack

Page 35: Australian OpenStack User Group August 2012: Chef for 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/opscode-cookbooks/

• keystone, glance, nova, horizon, swift

• github.com/opscode/knife-openstack

Page 36: Australian OpenStack User Group August 2012: Chef for OpenStack

Chef for OpenStack: Who

Page 37: Australian OpenStack User Group August 2012: Chef for OpenStack

Chef for OpenStack: When

• Essex is working

• KVM

• Ubuntu 12.04

• more to come!

• Folsom about to start

• Milestones for features

• Grizzly and forward

Page 38: Australian OpenStack User Group August 2012: 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

Page 39: Australian OpenStack User Group August 2012: Chef for OpenStack

Rackspace Cloud Builders

• Source of current cookbooks

• github.com/rcbops/chef-cookbooks

• www.rackspace.com/cloud/private/

Page 40: Australian OpenStack User Group August 2012: Chef for OpenStack

knife openstack

Page 41: Australian OpenStack User Group August 2012: Chef for 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)

Page 42: Australian OpenStack User Group August 2012: Chef for OpenStack

knife openstack flavor list

$ knife openstack flavor listID Name Virtual CPUs RAM Disk 1 m1.tiny 1 512 MB 0 GB 2 m1.small 1 2048 MB 20 GB 3 m1.medium 2 4096 MB 40 GB 4 m1.large 4 8192 MB 80 GB 5 m1.xlarge 8 16384 MB 160 GB

Page 43: Australian OpenStack User Group August 2012: Chef for OpenStack

knife openstack image list

$ knife openstack image listID Name 13 natty-server-cloudimg-amd64 12 natty-server-cloudimg-amd64-kernel 15 oneiric-server-cloudimg-amd64 14 oneiric-server-cloudimg-amd64-kernel

Page 44: Australian OpenStack User Group August 2012: Chef for OpenStack

knife openstack server create --node-name ko1 --flavor 1 --image 13 -S trystack

knife openstack server create

Page 45: Australian OpenStack User Group August 2012: Chef for OpenStack
Page 46: Australian OpenStack User Group August 2012: Chef for OpenStack

$ ssh -i ~/.ssh/trystack.pem [email protected] 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)? 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/cloud

The 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:~$

Page 47: Australian OpenStack User Group August 2012: Chef for OpenStack

Chef for Infrastructure Portability

• knife ec2

• knife rackspace

• knife hp

• knife openstack

• ... and many others

Page 48: Australian OpenStack User Group August 2012: Chef for OpenStack

• Documentation

• Hypervisors (LXC, Xen, Hyper-V)

• Databases (PostgreSQL)

• Operating Systems (RHEL)

• HA Configuration

• Quantum

• Cinder

Chef for OpenStack Roadmap

Page 49: Australian OpenStack User Group August 2012: Chef for OpenStack

• Cookbooks reusable outside of OpenStack

• Community Events

• Librarian

• Spiceweasel

• pxe_dust

• Crowbar

Chef for OpenStack Ecosystem

Page 50: Australian OpenStack User Group August 2012: Chef for OpenStack

Thanks!

Matt [email protected]

IRC/Twitter/GitHub: mattraywww.opscode.com/openstack