• Like
Config managament for development environments
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Config managament for development environments

  • 5,933 views
Published

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

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,933
On SlideShare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
73
Comments
0
Likes
10

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. Configuration Managementfor Development EnvironmentsFOSDEM 6th February 2011gareth rushgrove | morethanseven.net http://www.flickr.com/photos/doistrakh/3448860299
  • 2. morethanseven.netGareth Rushgrovegareth rushgrove | morethanseven.net
  • 3. freeagentcentral.comWork at FreeAgentgareth rushgrove | morethanseven.net
  • 4. devopsweekly.comgareth rushgrove | morethanseven.net
  • 5. Problemsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/arttravel_nz/4178520218
  • 6. 1. Not all developers want to be sysadminsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/samagnew/3179259502/
  • 7. 2. New employeesgareth rushgrove | morethanseven.net http://www.flickr.com/photos/gregwake/4927118859
  • 8. 3. Works on my machinegareth rushgrove | morethanseven.net
  • 9. 4. Running a full stack locallygareth rushgrove | morethanseven.net http://www.flickr.com/photos/donaldmacleod/5216044050
  • 10. 5. Service based architecturesgareth rushgrove | morethanseven.net http://www.flickr.com/photos/thesuttonfamily/2663990050
  • 11. Solutionsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/exalthim/3597210568
  • 12. 1. Virtualisationgareth rushgrove | morethanseven.net http://www.flickr.com/photos/robdray/4805444111
  • 13. VirtualBoxgareth rushgrove | morethanseven.net
  • 14. VMwaregareth rushgrove | morethanseven.net
  • 15. Virtualisation needs powerful hardwaregareth rushgrove | morethanseven.net http://www.flickr.com/photos/martinoc/477335951
  • 16. What about editing code?gareth rushgrove | morethanseven.net http://www.flickr.com/photos/monkeyc/3496523476
  • 17. Shared Folders or NFSgareth rushgrove | morethanseven.net http://www.flickr.com/photos/konajra/5202442920
  • 18. Doubledown
  • 19. Vimgareth rushgrove | morethanseven.net
  • 20. To the Cloudgareth rushgrove | morethanseven.net http://www.flickr.com/photos/monkeyc/3496521334
  • 21. Amazon EC2gareth rushgrove | morethanseven.net
  • 22. Rackspace Cloudgareth rushgrove | morethanseven.net
  • 23. Private Cloudsgareth rushgrove | morethanseven.net
  • 24. devstructure.comDevstructuregareth rushgrove | morethanseven.net
  • 25. 2. Local configuration managementgareth rushgrove | morethanseven.net http://www.flickr.com/photos/popcorncx/3516880947
  • 26. Chef sologareth rushgrove | morethanseven.net
  • 27. Puppet standalonegareth rushgrove | morethanseven.net
  • 28. vagrantup.comVagrantgareth rushgrove | morethanseven.net
  • 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. $ gem install vagrant $ vagrant box add lucid32 http://.../lucid32.box $ vagrant init $ vagrant upVagrant upgareth rushgrove | morethanseven.net
  • 31. Vagrant::Config.run do |config| config.vm.box = "lucid32" endVagrantfilegareth rushgrove | morethanseven.net
  • 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. Vagrant::Config.run do |config| config.vm.share_folder("folder", "/guest", "../host") endShared foldersgareth rushgrove | morethanseven.net
  • 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. 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. 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. 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. Base boxesgareth rushgrove | morethanseven.net http://www.flickr.com/photos/s3a/4710416678
  • 39. VeeWeegareth rushgrove | morethanseven.net
  • 40. Conclusionsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/exalthim/1783760822 ttp://www.flickr.com/photos/moonboots/40371626
  • 41. 1. Executable documentationgareth rushgrove | morethanseven.net http://www.flickr.com/photos/s__i/1016532054
  • 42. 2. Early testing of recipes or manifestsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/matthewgriff/3981894124
  • 43. 3. Shared language between dev and opsgareth rushgrove | morethanseven.net http://www.flickr.com/photos/matthias17/756090070
  • 44. FOSDEM11Extra month free for FreeAgentgareth rushgrove | morethanseven.net
  • 45. Questions?gareth rushgrove | morethanseven.net http://flickr.com/photos/psd/102332391/