DevOps for Opensource Geospatial Applications
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

DevOps for Opensource Geospatial Applications

on

  • 531 views

 

Statistics

Views

Total Views
531
Views on SlideShare
531
Embed Views
0

Actions

Likes
0
Downloads
10
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

DevOps for Opensource Geospatial Applications Presentation Transcript

  • 1. DevOps For Opensource Geospatial Applications Travis Pinney @tlpinney
  • 2. Software Sucks
  • 3. Software Really Suckshttp://www.flickr.com/photos/dominik99/384027019
  • 4. Software Really Suckshttp://www.flickr.com/photos/dominik99/384027019 http://www.flickr.com/photos/wwarby/4782904694/
  • 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. osmdevbox http://github.com/tlpinney/osmdevboxCreated at DC OSM Hack Weekend http://bit.ly/osm-hack
  • 7. Vagrant http://vagrantup.com http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)https://github.com/mitchellh/vagrant
  • 8. VirtualBox1.0https://www.virtualbox.org/
  • 9. http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 10. http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 11. THE INSTALLhttps://www.virtualbox.org/wiki/Downloadshttp://downloads.vagrantup.com http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 12. mkdir fooboxcd fooboxvagrant init
  • 13. Vagrantfile
  • 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. CPU SSDMEMORY
  • 16. git clone http://github.com/tlpinney/osmdevbox.gitcd osmdevboxvagrant up
  • 17. http://xkcd.com/303/
  • 18. vagrant ssh http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 19. $ vagrant box listCentOS-5.7-x86_64basecentoscentos57centos62centos62x11lucid32lucid32_currentlucid64maverick64my_boxpuppet-debian-lenny-64ubuntu-maverick-64
  • 20. $ vagrant box remove maverick64[vagrant] Deleting box maverick64...
  • 21. Show movie
  • 22. http://www.12factor.net
  • 23. Dev Prod Parityhttp://www.12factor.net/dev-prod-parity
  • 24. http://en.wikipedia.org/wiki/File:Agile-vs-iterative-flow.jpg
  • 25. vagrant destroy
  • 26. vagrant upvagrant provision
  • 27. http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 28. http://wiki.opscode.com/display/chef/Knife
  • 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. $ sudo gem install chef knife-ec2
  • 31. $ knife ec2 server list
  • 32. $ knife ec2 server delete i-XXXXXXXX
  • 33. $ knife ec2 server create -r role[webserver] -I ami-7000f019 -f m1.small
  • 34. Futureroles for osm renderers, api servers for clusters
  • 35. git checkout -b centos http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 36. bare metal veeweehttps://github.com/jedi4ever/veewee http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 37. bare metalhttp://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 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. 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. bare metal$ veewee versionVersion : 0.3.0.alpha4 - use at your own risk http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 41. $ veewee vbox ostypes
  • 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. ["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. CentOs 5.7*Openstreetmap stack http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 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. $ 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. $ veewee vbox build mycentos http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 48. $ veewee vbox validate mycentos
  • 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. Effing Package Managerhttps://github.com/jordansissel/fpm
  • 51. Effing Package Managerfpm -s dir -t rpm -n openstreetmap-website --prefix=/usr/local openstreetmap-website
  • 52. THE END