The session at the Atlanta 2014 OpenStack Summit is for those already familiar with Chef and interested in deploying and managing OpenStack. We cover the state of the deploying OpenStack with Chef and deploying infrastructure on top of OpenStack with Chef. The second half of the talk is a deep-dive walkthrough of the Vagrant deployment, the instructions are here: http://bit.ly/ATLChef
http://openstacksummitmay2014atlanta.sched.org/event/39587e0e47a20323c6389e136c954ecf
6. Chef for OpenStack: Project
• Developer & Operator Community around the automated
deployment and management of OpenStack
• Reduce fragmentation and increase collaboration
• Deploying OpenStack is not "Secret Sauce"
• Community Project, not a 'Product'
• Apache 2 License
7. Community
• #openstack-chef on irc.freenode.net
• groups.google.com/group/opscode-chef-openstack
• @chefopenstack
• Weekly Status Hangouts (Monday 11am EST)
• Stackalytics (stackforge->chef-group)
8. Who's Involved?
• AT&T
• Blue Box
• Dell
• DreamHost
• Gap
• HP
• HubSpot
• IBM
• Korea Telecom
• Opscode
• Rackspace
• SUSE
• and many more
9.
10. Chef Requirements
• Chef 11
• Ruby 1.9.x
• Foodcritic, ChefSpec, Rubocop for
testing
• attribute-driven by Environments
• platform logic in attributes
• currently packages-only installation
11. StackForge: Cookbooks
• "Official" OpenStack StackForge repositories
•github.com/stackforge/cookbook-openstack-*
•gated by review.openstack.org
• OpenStack services for Grizzly, Havana and Icehouse cookbooks
•block-storage, common, compute, dashboard, identity, image, telemetry,
network, object-storage, orchestration, test-integration
• Operational support cookbooks
•ceph, ops-database, ops-messaging
12. StackForge: Deployment
• Chef repository for deploying Grizzly, Havana or Icehouse
•example Environments and Roles
•example "All-in-One" Vagrant deployments
•github.com/stackforge/openstack-chef-repo
• Gated by review.openstack.org
•More single and multi-node testing coming
13. Reference Implementation
• Deployment examples in documentation
•All-in-One Compute
•Single Controller + N Compute
•more coming
• Will provide example HA configurations
• Operations outside of scope of core repository
•logging, monitoring, provisioning
24. Available openstack subcommands: (for details, knife
SUB-COMMAND --help)!
!
** OPENSTACK COMMANDS **!
knife openstack flavor list (options)!
knife openstack group list (options)!
knife openstack image list (options)!
knife openstack network list (options)!
knife openstack server create (options)!
knife openstack server delete SERVER [SERVER] (options)!
knife openstack server list (options)
$ knife openstack
26. Name ID Snapshot!
centos-6.5 68555833-8497-4d14-88ca-c9062e25f14b no!
cirros-test ecc21974-c0f7-4da4-a433-ab826890f4a4 no!
coreos 83d37ea5-d9ae-44cd-9110-d4d39ad997ce no!
fedora-19 9add7e14-25e3-41d8-963a-ca744d081f2e no!
fedora-20 acb6eba5-226a-4ed5-8db6-33a6fd8cf20d no!
freebsd-10.0 0e270df7-1a02-4e91-9fc3-6f5311c58193 no!
ubuntu-12.04 ce268db5-ceda-4a90-93c8-3b987ac3705f no!
ubuntu-13.04 28d61273-3b8b-4943-8a6f-66630d7d4ef0 no!
ubuntu-14.04 4a4f85bf-f164-4e54-83d8-8b2e7d0712b2 no!
Windows Server 2012 R2 Std Eval 64e7cba7-7a50-443f-8fa6-a065406e0b04 no
$ knife openstack image list
27. Name ID Tenant Shared!
external 06dc9d5a-f55a-410d-a7fd-4c7cb34ad927 5da25cc3853f4c54850898f9614c20bb true!
internal ba0fdd03-72b5-41eb-bb67-fef437fd6cb4 5da25cc3853f4c54850898f9614c20bb true!
$ knife openstack network list
28. Name Protocol From To CIDR Description!
haproxy tcp 22002 22002 0.0.0.0/0 haproxy!
ssh tcp 22 22 0.0.0.0/0 ssh access!
web tcp 443 443 0.0.0.0/0 web stuff!
web tcp 80 80 0.0.0.0/0 web stuff!
web tcp 8080 8080 0.0.0.0/0 web stuff
$ knife openstack group list
29. Name Instance ID Zone Public IP Private IP Flavor Image Keypair State!
OC-4424-chef-client f3302b74-1542-4af8-bc64-bd172ad3de50 172.31.6.79 17 89c4181f-6e6c-470e-baa7-d84162112153 shutoff!
bb-test d2a9ceff-bf84-4396-9bf3-87b153ca4446 172.31.6.113 10 89c4181f-6e6c-470e-baa7-d84162112153 shutoff!
isa-ubu.opscode.us 1bc5212c-3ad1-409c-9881-87fefac78bce 172.31.6.195 7 4a7263a1-3bf7-4b52-be71-6c28339853b9 farniki_pub active!
os-3712471938967755 646347a4-4c3a-4559-a193-b352ed85db8e 172.31.6.249 2 967a39b4-b061-4515-94ad-f96717583277 mray-ops active!
os-8162382405504458 2b336930-12ba-460d-b6f2-b29a5e38fb74 172.31.6.253 2 967a39b4-b061-4515-94ad-f96717583277 openstack-key active!
os-837952636687383 21a81f5b-f9bc-4b14-9f21-298195fcbcbe 172.31.6.250 2 967a39b4-b061-4515-94ad-f96717583277 mray-ops shutoff!
os-883820551180086 15b32e62-5cd9-4a15-87d1-e0f4b7fee2ae 172.31.6.252 2 967a39b4-b061-4515-94ad-f96717583277 mray-ops shutoff!
sean-test-the-chef f1c171ec-5175-4a61-94ad-cc722278cdce 172.31.6.213 13 663656ce-2fe4-4164-b842-214f221cff55 seanh-support-gen active
$ knife openstack server list
30. knife openstack server create (options)!
-Z ZONE_NAME, The availability zone for this server!
--availability-zone!
--bootstrap-network NAME Specify network for bootstrapping. Default is 'public'.!
--bootstrap-protocol protocol!
Protocol to bootstrap Windows servers. options: winrm!
--bootstrap-proxy PROXY_URL The proxy server for the node being bootstrapped!
--bootstrap-version VERSION The version of Chef to install!
--ca-trust-file CA_TRUST_FILE!
The Certificate Authority (CA) trust file used for SSL
transport!
-N, --node-name NAME The Chef node name for your new node!
-s, --server-url URL Chef Server URL!
--chef-zero-port PORT Port to start chef-zero on!
-k, --key KEY API Client Key!
--[no-]color Use colored output, defaults to false on Windows, true
otherwise!
-c, --config CONFIG The configuration file to use!
--defaults Accept default values for all questions!
$ knife openstack server create
35. knife openstack 0.10.0
• Specify metadata during server
create
• Select network IDs to attach and
bootstrap
• Support availability zones
• Use of names instead of only UUIDs
36. knife openstack Roadmap
• more network and UUID cleanups
• knife-hp/knife-rackspace consolidation
• knife-cloud common base class
• TravisCI for Chef-supported knife
plugins
38. Test Kitchen
• Integration tool for developing and testing
infrastructure code and software on isolated target
platforms
• Integration test platform for your cookbooks on all the
supported platforms with virtual machines
• https://github.com/test-kitchen/kitchen-openstack
40. Test Kitchen: OpenStack
• Need blueprints for development
• need a busser for Tempest
• Possibly use RefStack for testing as well
41.
42. Chef Metal
• Chef recipes for deploying infrastructure
• Libraries for repeatably creating machines and
deployments with Chef primitives
• Bootstrappers for many infrastructure types