SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
DevOps For Opensource
 Geospatial Applications
        Travis Pinney
         @tlpinney
Software Sucks
Software Really Sucks




http://www.flickr.com/photos/dominik99/384027019
Software Really Sucks




http://www.flickr.com/photos/dominik99/384027019   http://www.flickr.com/photos/wwarby/4782904694/
Software Really Sucks




http://www.flickr.com/photos/dominik99/384027019                                               http://www.flickr.com/photos/wwarby/4782904694/




                                              http://www.flickr.com/photos/epsos/3777343342/
osmdevbox

 http://github.com/tlpinney/osmdevbox




Created 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/mitchellh/vagrant
VirtualBox




1.0
https://www.virtualbox.org/
http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
THE INSTALL




https://www.virtualbox.org/wiki/Downloads



http://downloads.vagrantup.com


            http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
mkdir foobox
cd foobox
vagrant init
Vagrantfile
# -*- 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"
                                ...
CPU
  SSD
MEMORY
git clone http://github.com/tlpinney/osmdevbox.git
cd osmdevbox
vagrant up
http://xkcd.com/303/
vagrant ssh




        http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
$ vagrant box list
CentOS-5.7-x86_64
base
centos
centos57
centos62
centos62x11
lucid32
lucid32_current
lucid64
maverick64
my_box
puppet-debian-lenny-64
ubuntu-maverick-64
$ vagrant box remove maverick64
[vagrant] Deleting box 'maverick64'...
Show movie
http://www.12factor.net
Dev Prod Parity




http://www.12factor.net/dev-prod-parity
http://en.wikipedia.org/wiki/File:Agile-vs-iterative-flow.jpg
vagrant destroy
vagrant up
vagrant 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']}"
knife[:aws_ssh_key_id] = "osm"




               http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
$ 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
Future
roles for osm renderers, api servers for clusters
git checkout -b centos



    http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
bare metal


                     veewee


https://github.com/jedi4ever/veewee



      http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
bare metal




http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
bare metal
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
source ~/.bash_profile
rvm requirements
# install any needed requirements
rvm install 1.9.2




git clone https://github.com/jedi4ever/veewee
cd veewee
gem install bundler
bundle install


                         http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
bare metal
$cd project/veewee/
Using /Users/tlpinney/.rvm/gems/ruby-1.9.2-p290
'veewee' gemset created (/Users/tlpinney/.rvm/gems/
ruby-1.9.2-p290@veewee).
Using /Users/tlpinney/.rvm/gems/ruby-1.9.2-p290 with
gemset veewee
$


                 http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
bare metal

$ veewee version
Version : 0.3.0.alpha4 - use at your own risk




                  http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
$ veewee vbox ostypes
$ 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"}]
-
["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"}]
CentOs 5.7*
Openstreetmap stack



        http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
Veewee definitions


https://github.com/tlpinney/osmdevbox/tree/centos/
            definitions/CentOS-5.7-x86_64




             http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
$ veewee vbox define
"mycentos""CentOS-5.7-x86_64"
The basebox 'mycentos' has been
succesfully created from the
template 'CentOS-5.7-x86_64'
You can now edit the definition
files stored in definitions/
mycentos or build the box with:
veewee vbox build 'mycentos'




          http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
$ 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 = "https://s3.amazonaws.com/osmdevbox/
CentOS-5.7-x86_64.box"
Effing Package Manager



https://github.com/jordansissel/fpm
Effing Package Manager


fpm -s dir -t rpm -n openstreetmap-website 
  --prefix=/usr/local openstreetmap-website
THE END

Mais conteúdo relacionado

Mais procurados

GIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APPGIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APPPavel Tyk
 
OpenStack Swift - MSST 2011 Tutorial Day
OpenStack Swift - MSST 2011 Tutorial DayOpenStack Swift - MSST 2011 Tutorial Day
OpenStack Swift - MSST 2011 Tutorial DayJoshua McKenty
 
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Codemotion
 
Builder and BuildKit
Builder and BuildKitBuilder and BuildKit
Builder and BuildKitMoby Project
 
Deep dark-side of git: How git works internally
Deep dark-side of git: How git works internallyDeep dark-side of git: How git works internally
Deep dark-side of git: How git works internallySeongJae Park
 
Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)Soshi Nemoto
 
slides.pdf
slides.pdfslides.pdf
slides.pdfvidsvagi
 
Git: An introduction of plumbing and porcelain commands
Git: An introduction of plumbing and porcelain commandsGit: An introduction of plumbing and porcelain commands
Git: An introduction of plumbing and porcelain commandsth507
 
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册Yiwei Ma
 
DCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on KubernetesDCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on KubernetesDocker, Inc.
 
DCSF19 Tips and Tricks of the Docker Captains
DCSF19 Tips and Tricks of the Docker Captains  DCSF19 Tips and Tricks of the Docker Captains
DCSF19 Tips and Tricks of the Docker Captains Docker, Inc.
 
A Continuous Packaging Pipeline
A Continuous Packaging PipelineA Continuous Packaging Pipeline
A Continuous Packaging PipelineMaciej Pasternacki
 
Creating docker custom image
Creating docker custom imageCreating docker custom image
Creating docker custom imaget lc
 

Mais procurados (19)

GIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APPGIT, RVM, FIRST HEROKU APP
GIT, RVM, FIRST HEROKU APP
 
OpenStack Swift - MSST 2011 Tutorial Day
OpenStack Swift - MSST 2011 Tutorial DayOpenStack Swift - MSST 2011 Tutorial Day
OpenStack Swift - MSST 2011 Tutorial Day
 
Transforming WebSockets
Transforming WebSocketsTransforming WebSockets
Transforming WebSockets
 
Containers for sysadmins
Containers for sysadminsContainers for sysadmins
Containers for sysadmins
 
Docker perl build
Docker perl buildDocker perl build
Docker perl build
 
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
 
Builder and BuildKit
Builder and BuildKitBuilder and BuildKit
Builder and BuildKit
 
Deep dark-side of git: How git works internally
Deep dark-side of git: How git works internallyDeep dark-side of git: How git works internally
Deep dark-side of git: How git works internally
 
Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)
 
slides.pdf
slides.pdfslides.pdf
slides.pdf
 
Git: An introduction of plumbing and porcelain commands
Git: An introduction of plumbing and porcelain commandsGit: An introduction of plumbing and porcelain commands
Git: An introduction of plumbing and porcelain commands
 
Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册Nginx 0.9.x 安装手册
Nginx 0.9.x 安装手册
 
DCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on KubernetesDCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on Kubernetes
 
Vagrant and CentOS 7
Vagrant and CentOS 7Vagrant and CentOS 7
Vagrant and CentOS 7
 
Light my-fuse
Light my-fuseLight my-fuse
Light my-fuse
 
DCSF19 Tips and Tricks of the Docker Captains
DCSF19 Tips and Tricks of the Docker Captains  DCSF19 Tips and Tricks of the Docker Captains
DCSF19 Tips and Tricks of the Docker Captains
 
Git internals
Git internalsGit internals
Git internals
 
A Continuous Packaging Pipeline
A Continuous Packaging PipelineA Continuous Packaging Pipeline
A Continuous Packaging Pipeline
 
Creating docker custom image
Creating docker custom imageCreating docker custom image
Creating docker custom image
 

Semelhante a DevOps for Opensource Geospatial Applications

Into to Docker (Central PA Java User Group - 8/14/2017)
Into to Docker (Central PA Java User Group - 8/14/2017)Into to Docker (Central PA Java User Group - 8/14/2017)
Into to Docker (Central PA Java User Group - 8/14/2017)Mike Melusky
 
Composer, putting dependencies on the score
Composer, putting dependencies on the scoreComposer, putting dependencies on the score
Composer, putting dependencies on the scoreRafael Dohms
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionFabio Kung
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOpsandersjanmyr
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)Soshi Nemoto
 
Baremetal deployment scale
Baremetal deployment scaleBaremetal deployment scale
Baremetal deployment scalebaremetal
 
AtlasCamp 2015 Docker continuous integration training
AtlasCamp 2015 Docker continuous integration trainingAtlasCamp 2015 Docker continuous integration training
AtlasCamp 2015 Docker continuous integration trainingSteve Smith
 
Añadiendo Jenkins al entorno para Integración continua
Añadiendo Jenkins al entorno para Integración continuaAñadiendo Jenkins al entorno para Integración continua
Añadiendo Jenkins al entorno para Integración continuaCésar Martín Ortiz Pintado
 
How to create your own hack environment
How to create your own hack environmentHow to create your own hack environment
How to create your own hack environmentSumedt Jitpukdebodin
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsSander van der Burg
 
ChefConf 2012 Spiceweasel
ChefConf 2012 SpiceweaselChefConf 2012 Spiceweasel
ChefConf 2012 SpiceweaselMatt Ray
 
Puppet - Instant Data Center
Puppet  - Instant Data CenterPuppet  - Instant Data Center
Puppet - Instant Data CenterBryan Belanger
 
Understanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeUnderstanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeVictor Morales
 
Turbocharged Java with Quarkus | JakartaOne Livestream
 Turbocharged Java with Quarkus | JakartaOne Livestream Turbocharged Java with Quarkus | JakartaOne Livestream
Turbocharged Java with Quarkus | JakartaOne LivestreamJakarta_EE
 
Baremetal deployment
Baremetal deploymentBaremetal deployment
Baremetal deploymentbaremetal
 
DeveloperWeek 2015: A Practical Introduction to Docker
DeveloperWeek 2015: A Practical Introduction to DockerDeveloperWeek 2015: A Practical Introduction to Docker
DeveloperWeek 2015: A Practical Introduction to DockerSteve Smith
 
Composer for busy developers - DPC13
Composer for busy developers - DPC13Composer for busy developers - DPC13
Composer for busy developers - DPC13Rafael Dohms
 

Semelhante a DevOps for Opensource Geospatial Applications (20)

Into to Docker (Central PA Java User Group - 8/14/2017)
Into to Docker (Central PA Java User Group - 8/14/2017)Into to Docker (Central PA Java User Group - 8/14/2017)
Into to Docker (Central PA Java User Group - 8/14/2017)
 
Docker practice
Docker practiceDocker practice
Docker practice
 
Composer, putting dependencies on the score
Composer, putting dependencies on the scoreComposer, putting dependencies on the score
Composer, putting dependencies on the score
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOps
 
Preparation study of_docker - (MOSG)
Preparation study of_docker  - (MOSG)Preparation study of_docker  - (MOSG)
Preparation study of_docker - (MOSG)
 
Baremetal deployment scale
Baremetal deployment scaleBaremetal deployment scale
Baremetal deployment scale
 
AtlasCamp 2015 Docker continuous integration training
AtlasCamp 2015 Docker continuous integration trainingAtlasCamp 2015 Docker continuous integration training
AtlasCamp 2015 Docker continuous integration training
 
Añadiendo Jenkins al entorno para Integración continua
Añadiendo Jenkins al entorno para Integración continuaAñadiendo Jenkins al entorno para Integración continua
Añadiendo Jenkins al entorno para Integración continua
 
How to create your own hack environment
How to create your own hack environmentHow to create your own hack environment
How to create your own hack environment
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutions
 
ChefConf 2012 Spiceweasel
ChefConf 2012 SpiceweaselChefConf 2012 Spiceweasel
ChefConf 2012 Spiceweasel
 
Puppet - Instant Data Center
Puppet  - Instant Data CenterPuppet  - Instant Data Center
Puppet - Instant Data Center
 
Understanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeUnderstanding kube proxy in ipvs mode
Understanding kube proxy in ipvs mode
 
Turbocharged Java with Quarkus | JakartaOne Livestream
 Turbocharged Java with Quarkus | JakartaOne Livestream Turbocharged Java with Quarkus | JakartaOne Livestream
Turbocharged Java with Quarkus | JakartaOne Livestream
 
Baremetal deployment
Baremetal deploymentBaremetal deployment
Baremetal deployment
 
Capistrano
CapistranoCapistrano
Capistrano
 
Backups
BackupsBackups
Backups
 
DeveloperWeek 2015: A Practical Introduction to Docker
DeveloperWeek 2015: A Practical Introduction to DockerDeveloperWeek 2015: A Practical Introduction to Docker
DeveloperWeek 2015: A Practical Introduction to Docker
 
Composer for busy developers - DPC13
Composer for busy developers - DPC13Composer for busy developers - DPC13
Composer for busy developers - DPC13
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Último (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

DevOps for Opensource Geospatial Applications

  • 1. DevOps For Opensource Geospatial Applications Travis Pinney @tlpinney
  • 2.
  • 3.
  • 6. Software Really Sucks http://www.flickr.com/photos/dominik99/384027019 http://www.flickr.com/photos/wwarby/4782904694/
  • 7. Software Really Sucks http://www.flickr.com/photos/dominik99/384027019 http://www.flickr.com/photos/wwarby/4782904694/ http://www.flickr.com/photos/epsos/3777343342/
  • 8. osmdevbox http://github.com/tlpinney/osmdevbox Created at DC OSM Hack Weekend http://bit.ly/osm-hack
  • 9. Vagrant http://vagrantup.com http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0) https://github.com/mitchellh/vagrant
  • 13. THE INSTALL https://www.virtualbox.org/wiki/Downloads http://downloads.vagrantup.com http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 16. # -*- 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" ...
  • 20.
  • 21. vagrant ssh http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 22. $ vagrant box list CentOS-5.7-x86_64 base centos centos57 centos62 centos62x11 lucid32 lucid32_current lucid64 maverick64 my_box puppet-debian-lenny-64 ubuntu-maverick-64
  • 23. $ vagrant box remove maverick64 [vagrant] Deleting box 'maverick64'...
  • 28.
  • 33. 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)
  • 34. $ sudo gem install chef knife-ec2
  • 35. $ knife ec2 server list
  • 36. $ knife ec2 server delete i-XXXXXXXX
  • 37. $ knife ec2 server create -r 'role[webserver]' -I ami-7000f019 -f m1.small
  • 38. Future roles for osm renderers, api servers for clusters
  • 39.
  • 40. git checkout -b centos http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 41. bare metal veewee https://github.com/jedi4ever/veewee http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 43. bare metal bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) source ~/.bash_profile rvm requirements # install any needed requirements rvm install 1.9.2 git clone https://github.com/jedi4ever/veewee cd veewee gem install bundler bundle install http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 44. bare metal $cd project/veewee/ Using /Users/tlpinney/.rvm/gems/ruby-1.9.2-p290 'veewee' gemset created (/Users/tlpinney/.rvm/gems/ ruby-1.9.2-p290@veewee). Using /Users/tlpinney/.rvm/gems/ruby-1.9.2-p290 with gemset veewee $ http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 45. bare metal $ veewee version Version : 0.3.0.alpha4 - use at your own risk http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 46. $ veewee vbox ostypes
  • 47. $ 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"}] -
  • 48. ["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"}]
  • 49. CentOs 5.7* Openstreetmap stack http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 50. Veewee definitions https://github.com/tlpinney/osmdevbox/tree/centos/ definitions/CentOS-5.7-x86_64 http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 51. $ veewee vbox define "mycentos""CentOS-5.7-x86_64" The basebox 'mycentos' has been succesfully created from the template 'CentOS-5.7-x86_64' You can now edit the definition files stored in definitions/ mycentos or build the box with: veewee vbox build 'mycentos' http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 52. $ veewee vbox build 'mycentos' http://www.flickr.com/photos/virtualsugar/4471926175/ (CC 2.0)
  • 53. $ veewee vbox validate mycentos
  • 54. # -*- 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"
  • 56. Effing Package Manager fpm -s dir -t rpm -n openstreetmap-website --prefix=/usr/local openstreetmap-website