Your SlideShare is downloading. ×
0
DevOps For Opensource Geospatial Applications        Travis Pinney         @tlpinney
Software Sucks
Software Really Suckshttp://www.flickr.com/photos/dominik99/384027019
Software Really Suckshttp://www.flickr.com/photos/dominik99/384027019   http://www.flickr.com/photos/wwarby/4782904694/
Software Really Suckshttp://www.flickr.com/photos/dominik99/384027019                                               http://...
osmdevbox http://github.com/tlpinney/osmdevboxCreated at DC OSM Hack Weekend   http://bit.ly/osm-hack
Vagrant       http://vagrantup.com       http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)https://github.com/...
VirtualBox1.0https://www.virtualbox.org/
http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
THE INSTALLhttps://www.virtualbox.org/wiki/Downloadshttp://downloads.vagrantup.com            http://www.flickr.com/photos...
mkdir fooboxcd fooboxvagrant init
Vagrantfile
# -*- mode: ruby -*-# vi: set ft=ruby :Vagrant::Config.run do |config| config.vm.box = "lucid64" config.vm.box_url = "http://fi...
CPU  SSDMEMORY
git clone http://github.com/tlpinney/osmdevbox.gitcd osmdevboxvagrant up
http://xkcd.com/303/
vagrant ssh        http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
$ vagrant box listCentOS-5.7-x86_64basecentoscentos57centos62centos62x11lucid32lucid32_currentlucid64maverick64my_boxpuppe...
$ vagrant box remove maverick64[vagrant] Deleting box maverick64...
Show movie
http://www.12factor.net
Dev Prod Parityhttp://www.12factor.net/dev-prod-parity
http://en.wikipedia.org/wiki/File:Agile-vs-iterative-flow.jpg
vagrant destroy
vagrant upvagrant provision
http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
http://wiki.opscode.com/display/chef/Knife
knife[:aws_access_key_id] = "#{ENV[AWS_ACCESS_KEY_ID]}"knife[:aws_secret_access_key] = "#{ENV[AWS_SECRET_ACCESS_KEY]}"knif...
$ sudo gem install chef knife-ec2
$ knife ec2 server list
$ knife   ec2 server delete i-XXXXXXXX
$ knife   ec2 server create -r role[webserver] -I              ami-7000f019 -f m1.small
Futureroles for osm renderers, api servers for clusters
git checkout -b centos    http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
bare metal                     veeweehttps://github.com/jedi4ever/veewee      http://www.flickr.com/photos/virtualsugar/44...
bare metalhttp://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
bare metalbash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)source ~/.bas...
bare metal$cd project/veewee/Using /Users/tlpinney/.rvm/gems/ruby-1.9.2-p290veewee gemset created (/Users/tlpinney/.rvm/ge...
bare metal$ veewee versionVersion : 0.3.0.alpha4 - use at your own risk                  http://www.flickr.com/photos/virt...
$ veewee vbox ostypes
$ veewee vbox ostypes- ["Windows7_64", {:fusion=>"windows7-64", :kvm=>nil, :vbox=>"Windows7_64", :parallels=>"win-7"}]- ["...
["Linux26", {:fusion=>"other26xlinux", :kvm=>nil, :vbox=>"Linux26", :parallels=>"linux-2.6"}]- ["Linux26_64", {:fusion=>"o...
CentOs 5.7*Openstreetmap stack        http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
Veewee definitionshttps://github.com/tlpinney/osmdevbox/tree/centos/            definitions/CentOS-5.7-x86_64             ht...
$ veewee vbox define"mycentos""CentOS-5.7-x86_64"The basebox mycentos has beensuccesfully created from thetemplate CentOS-...
$ veewee vbox build mycentos        http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
$ veewee vbox validate mycentos
# -*- mode: ruby -*-# vi: set ft=ruby :Vagrant::Config.run do |config| config.vm.box = "CentOS-5.7-x86_64" config.vm.box_url =...
Effing Package Managerhttps://github.com/jordansissel/fpm
Effing Package Managerfpm -s dir -t rpm -n openstreetmap-website   --prefix=/usr/local openstreetmap-website
THE END
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
Upcoming SlideShare
Loading in...5
×

DevOps for Opensource Geospatial Applications

416

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
416
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "DevOps for Opensource Geospatial Applications"

  1. 1. DevOps For Opensource Geospatial Applications Travis Pinney @tlpinney
  2. 2. Software Sucks
  3. 3. Software Really Suckshttp://www.flickr.com/photos/dominik99/384027019
  4. 4. Software Really Suckshttp://www.flickr.com/photos/dominik99/384027019 http://www.flickr.com/photos/wwarby/4782904694/
  5. 5. Software Really Suckshttp://www.flickr.com/photos/dominik99/384027019 http://www.flickr.com/photos/wwarby/4782904694/ http://www.flickr.com/photos/epsos/3777343342/
  6. 6. osmdevbox http://github.com/tlpinney/osmdevboxCreated at DC OSM Hack Weekend http://bit.ly/osm-hack
  7. 7. Vagrant http://vagrantup.com http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)https://github.com/mitchellh/vagrant
  8. 8. VirtualBox1.0https://www.virtualbox.org/
  9. 9. http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  10. 10. http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  11. 11. THE INSTALLhttps://www.virtualbox.org/wiki/Downloadshttp://downloads.vagrantup.com http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  12. 12. mkdir fooboxcd fooboxvagrant init
  13. 13. Vagrantfile
  14. 14. # -*- mode: ruby -*-# vi: set ft=ruby :Vagrant::Config.run do |config| config.vm.box = "lucid64" config.vm.box_url = "http://files.vagrantup.com/lucid64.box" ...
  15. 15. CPU SSDMEMORY
  16. 16. git clone http://github.com/tlpinney/osmdevbox.gitcd osmdevboxvagrant up
  17. 17. http://xkcd.com/303/
  18. 18. vagrant ssh http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  19. 19. $ vagrant box listCentOS-5.7-x86_64basecentoscentos57centos62centos62x11lucid32lucid32_currentlucid64maverick64my_boxpuppet-debian-lenny-64ubuntu-maverick-64
  20. 20. $ vagrant box remove maverick64[vagrant] Deleting box maverick64...
  21. 21. Show movie
  22. 22. http://www.12factor.net
  23. 23. Dev Prod Parityhttp://www.12factor.net/dev-prod-parity
  24. 24. http://en.wikipedia.org/wiki/File:Agile-vs-iterative-flow.jpg
  25. 25. vagrant destroy
  26. 26. vagrant upvagrant provision
  27. 27. http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  28. 28. http://wiki.opscode.com/display/chef/Knife
  29. 29. knife[:aws_access_key_id] = "#{ENV[AWS_ACCESS_KEY_ID]}"knife[:aws_secret_access_key] = "#{ENV[AWS_SECRET_ACCESS_KEY]}"knife[:aws_ssh_key_id] = "osm" http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  30. 30. $ sudo gem install chef knife-ec2
  31. 31. $ knife ec2 server list
  32. 32. $ knife ec2 server delete i-XXXXXXXX
  33. 33. $ knife ec2 server create -r role[webserver] -I ami-7000f019 -f m1.small
  34. 34. Futureroles for osm renderers, api servers for clusters
  35. 35. git checkout -b centos http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  36. 36. bare metal veeweehttps://github.com/jedi4ever/veewee http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  37. 37. bare metalhttp://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  38. 38. bare metalbash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)source ~/.bash_profilervm requirements# install any needed requirementsrvm install 1.9.2git clone https://github.com/jedi4ever/veeweecd veeweegem install bundlerbundle install http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  39. 39. bare metal$cd project/veewee/Using /Users/tlpinney/.rvm/gems/ruby-1.9.2-p290veewee gemset created (/Users/tlpinney/.rvm/gems/ruby-1.9.2-p290@veewee).Using /Users/tlpinney/.rvm/gems/ruby-1.9.2-p290 withgemset veewee$ http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  40. 40. bare metal$ veewee versionVersion : 0.3.0.alpha4 - use at your own risk http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  41. 41. $ veewee vbox ostypes
  42. 42. $ veewee vbox ostypes- ["Windows7_64", {:fusion=>"windows7-64", :kvm=>nil, :vbox=>"Windows7_64", :parallels=>"win-7"}]- ["Windows7", {:fusion=>"windows7", :kvm=>nil, :vbox=>"Windows7", :parallels=>"win-7"}]- ["Windows8", {:fusion=>nil, :kvm=>nil, :vbox=>"Windows8", :parallels=>"win-8"}]- ["Windows8_64", {:fusion=>nil, :kvm=>nil, :vbox=>"Windows8_64", :parallels=>"win-8"}]- ["WindowsNT", {:fusion=>"winNT", :kvm=>nil, :vbox=>"WindowsNT", :parallels=>"win-net"}]- ["Windows2008", {:fusion=>"longhorn", :kvm=>nil, :vbox=>"Windows2008", :parallels=>"win-2008"}]- ["Windows2008_64", {:fusion=>"longhorn-64", :kvm=>nil, :vbox=>"Windows2008_64", :parallels=>"win-2008"}]- ["WindowsVista_64", {:fusion=>"winvista-64", :kvm=>nil, :vbox=>"WindowsVista_64", :parallels=>"win-vista"}]- ["WindowsVista", {:fusion=>"winvista", :kvm=>nil, :vbox=>"WindowsVista", :parallels=>"win-vista"}]- ["Windows2003", {:fusion=>"winnetstandard", :kvm=>nil, :vbox=>"Windows2003", :parallels=>"win-2003"}]- ["Windows2003_64", {:fusion=>"winnetstandard-64", :kvm=>nil, :vbox=>"Windows2003_64", :parallels=>"win-2003"}]- ["WindowsXP_64", {:fusion=>"winXPPro-64", :kvm=>nil, :vbox=>"WindowsXP_64", :parallels=>"win-xp"}]- ["WindowsXP", {:fusion=>"winXP", :kvm=>nil, :vbox=>"WindowsXP", :parallels=>"win-xp"}]- ["Windows2000", {:fusion=>nil, :kvm=>nil, :vbox=>"Windows200", :parallels=>"win-2000"}]- ["WindowsNT4", {:fusion=>nil, :kvm=>nil, :vbox=>"WindowsNT4", :parallels=>"win-nt"}]- ["WindowsMe", {:fusion=>nil, :kvm=>nil, :vbox=>"WindowsMe", :parallels=>"win-me"}]- ["Windows98", {:fusion=>nil, :kvm=>nil, :vbox=>"Windows98", :parallels=>"win-98"}]- ["Windows95", {:fusion=>nil, :kvm=>nil, :vbox=>"Windows95", :parallels=>"win-95"}]- ["Windows31", {:fusion=>nil, :kvm=>nil, :vbox=>"Windows31", :parallels=>"win-311"}]- ["Other", {:fusion=>"other", :kvm=>nil, :vbox=>"Other", :parallels=>"other"}]- ["Other_64", {:fusion=>"other-64", :kvm=>nil, :vbox=>"Other_64", :parallels=>"other"}]- ["FreeBSD", {:fusion=>"freeBSD", :kvm=>nil, :vbox=>"FreeBSD", :parallels=>"freebsd"}]- ["FreeBSD_64", {:fusion=>"FreeBSD_64", :kvm=>nil, :vbox=>"FreeBSD-64", :parallels=>"freebsd"}]- ["Oracle", {:fusion=>"oraclelinux", :kvm=>nil, :vbox=>"Oracle", :parallels=>"other"}]- ["Oracle_64", {:fusion=>"oraclelinux-64", :kvm=>nil, :vbox=>"Oracle_64", :parallels=>"other"}]- ["Debian", {:fusion=>"debian5", :kvm=>nil, :vbox=>"Debian", :parallels=>"debian"}]- ["Debian_64", {:fusion=>"debian5-64", :kvm=>nil, :vbox=>"Debian_64", :parallels=>"debian"}]- ["Gentoo", {:fusion=>"other26xlinux", :kvm=>nil, :vbox=>"Gentoo", :parallels=>"other"}]- ["Gentoo_64", {:fusion=>"other26xlinux-64", :kvm=>nil, :vbox=>"Gentoo_64", :parallels=>"other"}]- ["Linux22", {:fusion=>"linux", :kvm=>nil, :vbox=>"Linux22", :parallels=>"other"}]- ["Linux24", {:fusion=>"other24xlinux", :kvm=>nil, :vbox=>"Linux24", :parallels=>"linux-2.4"}]- ["Linux24_64", {:fusion=>"other24xlinux-64", :kvm=>nil, :vbox=>"Linux24_64", :parallels=>"linux-2.4"}]-
  43. 43. ["Linux26", {:fusion=>"other26xlinux", :kvm=>nil, :vbox=>"Linux26", :parallels=>"linux-2.6"}]- ["Linux26_64", {:fusion=>"other26xlinux-64", :kvm=>nil, :vbox=>"Linux26_64", :parallels=>"linux-2.6"}]- ["RedHat", {:fusion=>"RedHat", :kvm=>nil, :vbox=>"RedHat", :parallels=>"redhat"}]- ["RedHat_64", {:fusion=>"RedHat_64", :kvm=>nil, :vbox=>"RedHat_64", :parallels=>"redhat"}]- ["Centos4", {:fusion=>"centos", :kvm=>nil, :vbox=>"RedHat", :parallels=>"centos"}]- ["Centos_64", {:fusion=>"centos-64", :kvm=>nil, :vbox=>"RedHat_64", :parallels=>"centos"}]- ["ArchLinux", {:fusion=>"other26xlinux", :kvm=>nil, :vbox=>"ArchLinux", :parallels=>"linux-2.6"}]- ["ArchLinux_64", {:fusion=>"other26xlinux-64", :kvm=>nil, :vbox=>"ArchLinux_64", :parallels=>"linux-2.6"}]- ["OpenSUSE", {:fusion=>"opensuse", :kvm=>nil, :vbox=>"OpenSUSE", :parallels=>"opensuse"}]- ["OpenSUSE_64", {:fusion=>"opensuse-64", :kvm=>nil, :vbox=>"OpenSUSE_64", :parallels=>"opensuse"}]- ["SUSE", {:fusion=>"suse", :kvm=>nil, :vbox=>"OpenSUSE", :parallels=>"suse"}]- ["SUSE_64", {:fusion=>"suse-64", :kvm=>nil, :vbox=>"OpenSUSE_64", :parallels=>"suse"}]- ["Fedora", {:fusion=>"fedora", :kvm=>nil, :vbox=>"Fedora", :parallels=>"fedora-core"}]- ["Fedora_64", {:fusion=>"fedora-64", :kvm=>nil, :vbox=>"Fedora_64", :parallels=>"fedora-core"}]- ["Ubuntu", {:fusion=>"ubuntu", :kvm=>nil, :vbox=>"Ubuntu", :parallels=>"ubuntu"}]- ["Ubuntu_64", {:fusion=>"ubuntu-64", :kvm=>nil, :vbox=>"Ubuntu_64", :parallels=>"ubuntu"}]- ["Linux", {:fusion=>"linux", :kvm=>nil, :vbox=>"Linux", :parallels=>"linux"}]- ["Solaris", {:fusion=>"solaris10", :kvm=>nil, :vbox=>"Solaris", :parallels=>"solaris-10"}]- ["Solaris_64", {:fusion=>"solaris10-64", :kvm=>nil, :vbox=>"Solaris_64", :parallels=>"solaris-10"}]- ["Solaris9", {:fusion=>"solaris", :kvm=>nil, :vbox=>"Solaris", :parallels=>"solaris-9"}]- ["Solaris7", {:fusion=>"solaris7", :kvm=>nil, :vbox=>"Solaris", :parallels=>"solaris"}]- ["Solaris8", {:fusion=>"solaris8", :kvm=>nil, :vbox=>"Solaris", :parallels=>"solaris"}]- ["OpenSolaris", {:fusion=>"solaris10", :kvm=>nil, :vbox=>"OpenSolaris", :parallels=>"opensolaris"}]- ["OpenSolaris_64", {:fusion=>"solaris-64", :kvm=>nil, :vbox=>"OpenSolaris_64", :parallels=>"opensolaris"}]- ["OpenBSD", {:fusion=>"other", :kvm=>nil, :vbox=>"OpenBSD", :parallels=>"other"}]- ["OpenBSD_64", {:fusion=>"other-64", :kvm=>nil, :vbox=>"OpenBSD_64", :parallels=>"other"}]- ["NetBSD", {:fusion=>"other", :kvm=>nil, :vbox=>"NetBSD", :parallels=>"other"}]- ["NetBSD_64", {:fusion=>"other-64", :kvm=>nil, :vbox=>"NetBSD_64", :parallels=>"other"}]
  44. 44. CentOs 5.7*Openstreetmap stack http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  45. 45. Veewee definitionshttps://github.com/tlpinney/osmdevbox/tree/centos/ definitions/CentOS-5.7-x86_64 http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  46. 46. $ veewee vbox define"mycentos""CentOS-5.7-x86_64"The basebox mycentos has beensuccesfully created from thetemplate CentOS-5.7-x86_64You can now edit the definitionfiles stored in definitions/mycentos or build the box with:veewee vbox build mycentos http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  47. 47. $ veewee vbox build mycentos http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  48. 48. $ veewee vbox validate mycentos
  49. 49. # -*- mode: ruby -*-# vi: set ft=ruby :Vagrant::Config.run do |config| config.vm.box = "CentOS-5.7-x86_64" config.vm.box_url = "https://s3.amazonaws.com/osmdevbox/CentOS-5.7-x86_64.box"
  50. 50. Effing Package Managerhttps://github.com/jordansissel/fpm
  51. 51. Effing Package Managerfpm -s dir -t rpm -n openstreetmap-website --prefix=/usr/local openstreetmap-website
  52. 52. THE END
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×