Configuration Managementfor Development EnvironmentsFOSDEM 6th February 2011gareth rushgrove | morethanseven.net   http://w...
morethanseven.netGareth Rushgrovegareth rushgrove | morethanseven.net
freeagentcentral.comWork at FreeAgentgareth rushgrove | morethanseven.net
devopsweekly.comgareth rushgrove | morethanseven.net
Problemsgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/arttravel_nz/4178520218
1. Not all developers want to be sysadminsgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/samagnew/3179...
2. New employeesgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/gregwake/4927118859
3. Works on my machinegareth rushgrove | morethanseven.net
4. Running a full stack locallygareth rushgrove | morethanseven.net   http://www.flickr.com/photos/donaldmacleod/5216044050
5. Service based architecturesgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/thesuttonfamily/2663990050
Solutionsgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/exalthim/3597210568
1. Virtualisationgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/robdray/4805444111
VirtualBoxgareth rushgrove | morethanseven.net
VMwaregareth rushgrove | morethanseven.net
Virtualisation needs powerful hardwaregareth rushgrove | morethanseven.net   http://www.flickr.com/photos/martinoc/477335951
What about editing code?gareth rushgrove | morethanseven.net   http://www.flickr.com/photos/monkeyc/3496523476
Shared Folders or NFSgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/konajra/5202442920
Doubledown
Vimgareth rushgrove | morethanseven.net
To the Cloudgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/monkeyc/3496521334
Amazon EC2gareth rushgrove | morethanseven.net
Rackspace Cloudgareth rushgrove | morethanseven.net
Private Cloudsgareth rushgrove | morethanseven.net
devstructure.comDevstructuregareth rushgrove | morethanseven.net
2. Local configuration managementgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/popcorncx/3516880947
Chef sologareth rushgrove | morethanseven.net
Puppet standalonegareth rushgrove | morethanseven.net
vagrantup.comVagrantgareth rushgrove | morethanseven.net
-      Automated virtual machine creation using Oracle’s VirtualBox-      Automated provisioning of virtual environments u...
$     gem install vagrant      $     vagrant box add lucid32 http://.../lucid32.box      $     vagrant init      $     vag...
Vagrant::Config.run do |config|              config.vm.box = "lucid32"            endVagrantfilegareth rushgrove | morethan...
Vagrant::Config.run do |config|     config.vm.forward_port("web", 80, 8080)     config.vm.forward_port("ftp", 21, 4567)   ...
Vagrant::Config.run do |config|     config.vm.share_folder("folder", "/guest", "../host")   endShared foldersgareth rushgr...
Vagrant::Config.run do |config|     config.vm.define :web do |web_config|       web_config.vm.box = "web"       web_config...
Vagrant::Config.run do |config|               config.vm.provision :puppet do |puppet|                 puppet.manifests_pat...
Vagrant::Config.run do |config|               config.vm.provision :chef_solo do |chef|                 chef.roles_path = "...
Vagrant::Config.run do |config|   config.vm.provision :chef_solo do |chef|     chef.recipe_url = "http://github.com/cookbo...
Base boxesgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/s3a/4710416678
VeeWeegareth rushgrove | morethanseven.net
Conclusionsgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/exalthim/1783760822                         ...
1. Executable documentationgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/s__i/1016532054
2. Early testing of recipes or manifestsgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/matthewgriff/39...
3. Shared language between dev and opsgareth rushgrove | morethanseven.net   http://www.flickr.com/photos/matthias17/756090...
FOSDEM11Extra month free for FreeAgentgareth rushgrove | morethanseven.net
Questions?gareth rushgrove | morethanseven.net   http://flickr.com/photos/psd/102332391/
Upcoming SlideShare
Loading in …5
×

Config managament for development environments

6,696 views

Published on

Discussion, advise and code for using techniques like configuration management and virtualisation for managing local development environments.

Talk given at FOSDEM 2011 in the Configuration and Systems Management room.

Published in: Technology
0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,696
On SlideShare
0
From Embeds
0
Number of Embeds
2,666
Actions
Shares
0
Downloads
75
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

Config managament for development environments

  1. 1. Configuration Managementfor Development EnvironmentsFOSDEM 6th February 2011gareth rushgrove | morethanseven.net http://www.flickr.com/photos/doistrakh/3448860299
  2. 2. morethanseven.netGareth Rushgrovegareth rushgrove | morethanseven.net
  3. 3. freeagentcentral.comWork at FreeAgentgareth rushgrove | morethanseven.net
  4. 4. devopsweekly.comgareth rushgrove | morethanseven.net
  5. 5. Problemsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/arttravel_nz/4178520218
  6. 6. 1. Not all developers want to be sysadminsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/samagnew/3179259502/
  7. 7. 2. New employeesgareth rushgrove | morethanseven.net http://www.flickr.com/photos/gregwake/4927118859
  8. 8. 3. Works on my machinegareth rushgrove | morethanseven.net
  9. 9. 4. Running a full stack locallygareth rushgrove | morethanseven.net http://www.flickr.com/photos/donaldmacleod/5216044050
  10. 10. 5. Service based architecturesgareth rushgrove | morethanseven.net http://www.flickr.com/photos/thesuttonfamily/2663990050
  11. 11. Solutionsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/exalthim/3597210568
  12. 12. 1. Virtualisationgareth rushgrove | morethanseven.net http://www.flickr.com/photos/robdray/4805444111
  13. 13. VirtualBoxgareth rushgrove | morethanseven.net
  14. 14. VMwaregareth rushgrove | morethanseven.net
  15. 15. Virtualisation needs powerful hardwaregareth rushgrove | morethanseven.net http://www.flickr.com/photos/martinoc/477335951
  16. 16. What about editing code?gareth rushgrove | morethanseven.net http://www.flickr.com/photos/monkeyc/3496523476
  17. 17. Shared Folders or NFSgareth rushgrove | morethanseven.net http://www.flickr.com/photos/konajra/5202442920
  18. 18. Doubledown
  19. 19. Vimgareth rushgrove | morethanseven.net
  20. 20. To the Cloudgareth rushgrove | morethanseven.net http://www.flickr.com/photos/monkeyc/3496521334
  21. 21. Amazon EC2gareth rushgrove | morethanseven.net
  22. 22. Rackspace Cloudgareth rushgrove | morethanseven.net
  23. 23. Private Cloudsgareth rushgrove | morethanseven.net
  24. 24. devstructure.comDevstructuregareth rushgrove | morethanseven.net
  25. 25. 2. Local configuration managementgareth rushgrove | morethanseven.net http://www.flickr.com/photos/popcorncx/3516880947
  26. 26. Chef sologareth rushgrove | morethanseven.net
  27. 27. Puppet standalonegareth rushgrove | morethanseven.net
  28. 28. vagrantup.comVagrantgareth rushgrove | morethanseven.net
  29. 29. - Automated virtual machine creation using Oracle’s VirtualBox- Automated provisioning of virtual environments using Chef or Puppet- Full SSH access to created environments- Assign a static IP to your VM, accessible from your machine- Forward ports to the host machine- Shared folders allows you to continue using your own editor- Package environments into distributable boxes- Completely tear down environment when you’re done- Easily rebuild a complete environment with a single commandWhat is Vagrant?gareth rushgrove | morethanseven.net
  30. 30. $ gem install vagrant $ vagrant box add lucid32 http://.../lucid32.box $ vagrant init $ vagrant upVagrant upgareth rushgrove | morethanseven.net
  31. 31. Vagrant::Config.run do |config| config.vm.box = "lucid32" endVagrantfilegareth rushgrove | morethanseven.net
  32. 32. Vagrant::Config.run do |config| config.vm.forward_port("web", 80, 8080) config.vm.forward_port("ftp", 21, 4567) config.vm.forward_port("ssh", 22, 2222, :auto => true) endPort forwardinggareth rushgrove | morethanseven.net
  33. 33. Vagrant::Config.run do |config| config.vm.share_folder("folder", "/guest", "../host") endShared foldersgareth rushgrove | morethanseven.net
  34. 34. Vagrant::Config.run do |config| config.vm.define :web do |web_config| web_config.vm.box = "web" web_config.vm.forward_port("http", 80, 8080) end config.vm.define :db do |db_config| db_config.vm.box = "db" db_config.vm.forward_port("db", 3306, 3306) end endMultiple VMsgareth rushgrove | morethanseven.net
  35. 35. Vagrant::Config.run do |config| config.vm.provision :puppet do |puppet| puppet.manifests_path = "puppetmanifests" puppet.manifest_file = "newbox.pp" end endVagrant provisioning with Puppetgareth rushgrove | morethanseven.net
  36. 36. Vagrant::Config.run do |config| config.vm.provision :chef_solo do |chef| chef.roles_path = "roles" chef.add_role("vm") end endVagrant provisioning with Chefgareth rushgrove | morethanseven.net
  37. 37. Vagrant::Config.run do |config| config.vm.provision :chef_solo do |chef| chef.recipe_url = "http://github.com/cookbooks.tar.gz" chef.add_recipe "garethr" chef.cookbooks_path = [:vm, "cookbooks"] chef.json.merge!({ :garethr => { :ohmyzsh => "https://github.com/.../oh-my-zsh.git", :dotvim => "https://github.com/garethr/dotvim.git" }}) end endRemote Tar Filegareth rushgrove | morethanseven.net
  38. 38. Base boxesgareth rushgrove | morethanseven.net http://www.flickr.com/photos/s3a/4710416678
  39. 39. VeeWeegareth rushgrove | morethanseven.net
  40. 40. Conclusionsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/exalthim/1783760822 ttp://www.flickr.com/photos/moonboots/40371626
  41. 41. 1. Executable documentationgareth rushgrove | morethanseven.net http://www.flickr.com/photos/s__i/1016532054
  42. 42. 2. Early testing of recipes or manifestsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/matthewgriff/3981894124
  43. 43. 3. Shared language between dev and opsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/matthias17/756090070
  44. 44. FOSDEM11Extra month free for FreeAgentgareth rushgrove | morethanseven.net
  45. 45. Questions?gareth rushgrove | morethanseven.net http://flickr.com/photos/psd/102332391/

×