Your SlideShare is downloading. ×
0
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
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
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
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
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
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
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
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
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
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
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
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
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

DevOps for Opensource Geospatial Applications

402

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
402
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
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. 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

×