DevOps for Opensource Geospatial Applications

  • 372 views
Uploaded on

 

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
372
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
10
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