Your SlideShare is downloading. ×
Cooking an Omelette with Chef
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Cooking an Omelette with Chef

429
views

Published on

A talk given at Rails Israel about getting value with Chef at your enterprise while minimizing the common errors that people make.

A talk given at Rails Israel about getting value with Chef at your enterprise while minimizing the common errors that people make.

Published in: Technology, Self Improvement

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
429
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Cooking an Omelette with Chef Case Taintor Wednesday, October 9, 13
  • 2. Survey • Who has been manually configuring their machines? • Who has been using a tool like Chef or Puppet? • Who is an expert in Chef? Wednesday, October 9, 13
  • 3. Purpose Wednesday, October 9, 13
  • 4. Wednesday, October 9, 13
  • 5. How did we work? Wednesday, October 9, 13
  • 6. Wednesday, October 9, 13
  • 7. Infrastructure as Code Wednesday, October 9, 13
  • 8. Wednesday, October 9, 13
  • 9. Wednesday, October 9, 13
  • 10. Wednesday, October 9, 13
  • 11. Wednesday, October 9, 13
  • 12. Wednesday, October 9, 13
  • 13. Wednesday, October 9, 13
  • 14. Where do we start? Wednesday, October 9, 13
  • 15. Priorities • Reproducibility • Testability • Traceability • Keep It Simple, Stupid Wednesday, October 9, 13
  • 16. How does Chef work? • Figures out which instructions to run • Runs them in an idempotent way Wednesday, October 9, 13
  • 17. Cookbook Everything to install & configure a component Wednesday, October 9, 13
  • 18. Cookbooks attributes definitions files libraries providers recipes resources templates attributes definitions files libraries providers recipes resources templates metadata.rb $ ls -1 cookbook Wednesday, October 9, 13
  • 19. Cookbooks attributes definitions files libraries providers recipes resources templates metadata.rb $ ls -1 cookbook Wednesday, October 9, 13
  • 20. nginx cookbook attributes definitions files libraries providers recipes resources templates attributes attributes/default.rb attributes/source.rb definitions files recipes recipes/default.rb recipes/source.rb templates metadata.rb $ ls -1 nginx Wednesday, October 9, 13
  • 21. Then What? Wednesday, October 9, 13
  • 22. run_list { ... "run_list": [ "recipe[rvm::system]", "recipe[nginx]", "recipe[user]" ] ... } Wednesday, October 9, 13
  • 23. How do I run Chef? node1 chef-solo all config node2 chef-solo all config chef-solo node1 chef-client config node2 chef-client config chef-server chef-server config Wednesday, October 9, 13
  • 24. Problems Problem Solution Repeatability Reproducibility Idempotence Chef Wednesday, October 9, 13
  • 25. Problems Problem Solution Repeatability Reproducibility Idempotence Chef Versioning Wednesday, October 9, 13
  • 26. default rvm default['rvm']['default_ruby'] = "ruby-1.9.3-p327" default['rvm']['rubies'] = [] default[‘rvm][‘version’] = “head” rvm/attributes/default.rb Wednesday, October 9, 13
  • 27. Berkshelf Wednesday, October 9, 13
  • 28. Problems Problem Solution Repeatability Reproducibility Idempotence Chef Versioning Berkshelf Wednesday, October 9, 13
  • 29. Problems Problem Solution Repeatability Reproducibility Idempotence Chef Versioning Berkshelf Development Wednesday, October 9, 13
  • 30. Wednesday, October 9, 13
  • 31. Problems Problem Solution Repeatability Reproducibility Idempotence Chef Versioning Berkshelf Development Vagrant +VirtualBox Wednesday, October 9, 13
  • 32. Problems Problem Solution Repeatability Reproducibility Idempotence Chef Versioning Berkshelf Development Vagrant +VirtualBox KISS Wednesday, October 9, 13
  • 33. Gusteau Wednesday, October 9, 13
  • 34. Problems Problem Solution Repeatability Reproducibility Idempotence Chef Versioning Berkshelf Development Vagrant +VirtualBox KISS Gusteau Wednesday, October 9, 13
  • 35. omelette-server • rvm • nginx • users Wednesday, October 9, 13
  • 36. Process $ gusteau init omelette-cooker Wednesday, October 9, 13
  • 37. Berksfile site :opscode cookbook 'rvm', :github => 'fnichol/chef-rvm' cookbook 'nginx' cookbook 'user' Wednesday, October 9, 13
  • 38. .gusteau.yml ... environments: development: nodes: web: run_list: - recipe[rvm::system] - recipe[nginx] - recipe[user::data_bag] ... Wednesday, October 9, 13
  • 39. $ vagrant up development-web $ gusteau converge development-web Wednesday, October 9, 13
  • 40. Wednesday, October 9, 13
  • 41. Next Problems Wednesday, October 9, 13
  • 42. Share your stuff • Inside your organization • Outside your organization Wednesday, October 9, 13
  • 43. default rvm default['rvm']['default_ruby'] = "ruby-1.9.3-p327" default['rvm']['rubies'] = [] default[‘rvm][‘version’] = “head” rvm/attributes/default.rb Wednesday, October 9, 13
  • 44. your rvm modifications default['rvm']['default_ruby'] = "ruby-1.9.3-p448" default['rvm']['rubies'] = ["ruby-1.9.3-p448", "ruby-1.9.3-p327"] default[‘rvm][‘version’] = "1.21.4" rvm/attributes/default.rb Wednesday, October 9, 13
  • 45. Wrapper Cookbooks $ knife cookbook create wrapper-rvm -o site-cookbooks normal[:rvm][:default_ruby] = "ruby-1.9.3-p448" normal[:rvm][:rubies] = ["ruby-1.9.3-p448", "ruby-1.9.3-p327"] normal[:rvm][:version] = "1.21.4" include_recipe "rvm::system" site-cookbooks/wrapper-rvm/attributes/default.rb site-cookbooks/wrapper-rvm/recipes/default.rb Wednesday, October 9, 13
  • 46. Wrapper Cookbooks place dependencies in metadata.rb depends ‘rvm’, ‘0.9.1’ site-cookbooks/wrapper-rvm/metadata.rb Wednesday, October 9, 13
  • 47. .gusteau.yml ... environments: development: nodes: web: run_list: - recipe[wrapper-rvm] - recipe[nginx] - recipe[user::data_bag] ... Wednesday, October 9, 13
  • 48. $ vagrant up development-web $ gusteau converge development-web Wednesday, October 9, 13
  • 49. Share Wednesday, October 9, 13
  • 50. Berksfile site :opscode cookbook 'rvm', :github => 'fnichol/chef-rvm' cookbook 'nginx' cookbook 'user' cookbook ‘wrapper-rvm’, :git => ‘...:wrapper- rvm.git, :branch => ‘0.1.0’ Wednesday, October 9, 13
  • 51. Next Steps • Sharing common setups • Cookbook development • Move to Chef Server Wednesday, October 9, 13
  • 52. Wrap Up • Recognize what you want • Use tools • Iterate Wednesday, October 9, 13
  • 53. Questions? More Info: @ctaintor Wednesday, October 9, 13
  • 54. Image References Danley, Brent. "Crowded Beach." Flickr.Yahoo!, n.d.Web. 05 Oct. 2013. <http:// www.flickr.com/photos/brentdanley/1086226020/>. Goehring, David. "Does Not Work." Flickr.Yahoo!, n.d.Web. 04 Oct. 2013. <http://www.flickr.com/photos/carbonnyc/496721450/>. Harber, Chris. "Food I Made 1." Flickr.Yahoo!, n.d.Web. 07 Oct. 2013. <http:// www.flickr.com/photos/britishchris/4437265186/>. Johnson, Darren. "Koh Ngai." Flickr. ShotHotspot.com, n.d.Web. 04 Oct. 2013. <http://www.flickr.com/photos/dazjohnson/7424536244/>. Komulainen,Tommi. "Handlebar Is No More." Flickr.Yahoo!, n.d.Web. 05 Oct. 2013. <http://www.flickr.com/photos/tommikomulainen/137069098/>. Reck, Bob. "My Motorcycle." Flickr.Yahoo!, n.d.Web. 05 Oct. 2013. <http:// www.flickr.com/photos/u2sockmonkey/116641053/>.Used with permission. Wednesday, October 9, 13