Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vagrant
Search
Guido Marucci Blas
November 13, 2013
Programming
3
250
Vagrant
Un introducción a Vagrant y alguno tips para un mejor uso
Guido Marucci Blas
November 13, 2013
Tweet
Share
More Decks by Guido Marucci Blas
See All by Guido Marucci Blas
Código que genera código
guidomb
0
63
Como aplicar la arquitectura de Elm en Swift
guidomb
0
120
A portal from Elm to Swift
guidomb
1
450
Behavior Driven Development
guidomb
0
150
The Ruby Programming Language
guidomb
1
260
MVC, MVVM & MVP ... números romanos o que?
guidomb
4
1.9k
Other Decks in Programming
See All in Programming
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
120
Unity Android XR入門
sakutama_11
0
150
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
340
定理証明プラットフォーム lapisla.net
abap34
1
1.8k
DROBEの生成AI活用事例 with AWS
ippey
0
130
[Fin-JAWS 第38回 ~re:Invent 2024 金融re:Cap~]FaultInjectionServiceアップデート@pre:Invent2024
shintaro_fukatsu
0
410
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
730
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
520
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
380
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
5
3.9k
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
270
最近のVS Codeで気になるニュース 2025/01
74th
1
260
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
How to train your dragon (web standard)
notwaldorf
91
5.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Statistics for Hackers
jakevdp
797
220k
Facilitating Awesome Meetings
lara
51
6.2k
Transcript
Wednesday, November 13, 13
Guido Marucci Blas CTO & Co-Founder at Wolox guidomb
[email protected]
Wednesday, November 13, 13
Permite virtualizar ambientes Es open source Soporta Virtualbox y VMware
Configurable con un DSL en Ruby Multiplataforma Wednesday, November 13, 13
¿Por qué usar Vagrant? Wednesday, November 13, 13
Probar server setups Ambientes de desarrollo replicables Probar cluster de
forma local Wednesday, November 13, 13
Probar server setups Ambientes de desarrollo replicables Probar cluster de
forma local Wednesday, November 13, 13
Projecto A Projecto B Rails 3.2 Ruby 1.9.3 Postgres 8.4
Imagemagick Poppler Rails 4.1 Ruby 2.0.0 Postgres 9.6 Wednesday, November 13, 13
- RRHH: Juan, hoy empieza el nuevo dev para el
proyecto X. ¿Cuáles van a ser sus tareas para la próxima semana? - Juan (PM): Configurar el ambiente Wednesday, November 13, 13
Nos ayuda a bajar la barrera de entrada en un
proyecto Wednesday, November 13, 13
Instalar VirtualBox Instalar Vagrant Configurar Vagrantfile $> vagrant up $>
vagrant ssh $vagrant> Setup Wednesday, November 13, 13
DEMO Wednesday, November 13, 13
Tips Wednesday, November 13, 13
Definir nombre de box por proyecto # -*- mode: ruby
-*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "vagrant-demo" config.vm.box_url = "http://files.vagrantup.com/precise64.box" # Network config.vm.synced_folder ".", "/vagrant", :nfs => true, id: "vagrant-root" config.vm.network :forwarded_port, guest: 3000, host: 8000 config.vm.network :private_network, ip: "192.168.50.4" end Wednesday, November 13, 13
Usar NFS para sync de archivos # -*- mode: ruby
-*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "vagrant-demo" config.vm.box_url = "http://files.vagrantup.com/precise64.box" # Network config.vm.synced_folder ".", "/vagrant", :nfs => true, id: "vagrant-root" config.vm.network :forwarded_port, guest: 3000, host: 8000 config.vm.network :private_network, ip: "192.168.50.4" end Wednesday, November 13, 13
Configurar memoria RAM de la VM # -*- mode: ruby
-*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "vagrant-demo" config.vm.box_url = "http://files.vagrantup.com/precise64.box" config.vm.customize = ["modifyvm", :id, "memory", 1024] # Network config.vm.synced_folder ".", "/vagrant", :nfs => true, id: "vagrant-root" config.vm.network :forwarded_port, guest: 3000, host: 8000 config.vm.network :private_network, ip: "192.168.50.4" end Wednesday, November 13, 13
Exportar la VM configurada $> vagrant up ... SETUP ...
$> vagrant halt $> vagrant package $> mv package.box vagrant-demo.box $> echo "*.box" >> .gitignore $> vagrant box add vagrant-demo ./vagrant-demo.box Wednesday, November 13, 13
DEMO Wednesday, November 13, 13
Berkshelf Chef + + Wednesday, November 13, 13
$> vagrant plugin install vagrant-berkshelf # -*- mode: ruby -*-
# vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "vagrant-demo-chef" config.vm.box_url = "http://files.vagrantup.com/precise64.box" # Network config.vm.synced_folder ".", "/vagrant", :nfs => true, id: "vagrant-root" config.vm.network :forwarded_port, guest: 3000, host: 8000 config.vm.network :private_network, ip: "192.168.50.4" # Provisioning config.berkshelf.enabled = true config.vm.provision :chef_solo do |chef| chef.add_recipe "apt" chef.add_recipe "build-essential" chef.add_recipe "git" end end Wednesday, November 13, 13
site :opscode cookbook 'apt' cookbook 'build-essential' cookbook 'git' Definir el
Berksfile $>vim Berksfile http://berkshelf.com Wednesday, November 13, 13
$> vagrant plugin install vagrant-omnibus # -*- mode: ruby -*-
# vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "vagrant-demo-chef" config.vm.box_url = "http://files.vagrantup.com/precise64.box" # Network config.vm.synced_folder ".", "/vagrant", :nfs => true, id: "vagrant-root" config.vm.network :forwarded_port, guest: 3000, host: 8000 config.vm.network :private_network, ip: "192.168.50.4" # Provisioning config.omnibus.chef_version = :latest config.berkshelf.enabled = true config.vm.provision :chef_solo do |chef| chef.add_recipe "apt" chef.add_recipe "build-essential" chef.add_recipe "git" end end Wednesday, November 13, 13
Usar versiones fijas en las cookbooks No actualizar Vagrant a
menos que los plugins soporten la nueva versión ProTip Wednesday, November 13, 13
DEMO Wednesday, November 13, 13
Amazon EC2 + cocina de AMIs = Wednesday, November 13,
13
$> vagrant plugin install vagrant-aws config.vm.define :aws do |aws_config| credentials
= YAML.load_file("./.amazon.yml") aws_config.vm.box = "dummy" aws_config.vm.box_url = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box" aws_config.omnibus.chef_version = "10.24.0" aws_config.vm.provider :aws do |aws, override| aws.access_key_id = credentials['access_key_id'] aws.secret_access_key = credentials['secret_access_key'] aws.keypair_name = "APPLICATION_NAME" aws.region = "sa-east-1" aws.region_config "sa-east-1", :ami => "ami-a3da00be" aws.security_groups = ["APPLICATION_NAME"] aws.instance_type = "m1.medium" override.ssh.username = "ubuntu" override.ssh.private_key_path = "~/.ssh/APPLICATION_NAME.pem" end aws_config.vm.provision :chef_solo do |chef| chef.add_recipe 'apt' chef.add_recipe 'application::packages' chef.add_recipe 'nginx::source' chef.add_recipe 'mysql::client' end end $> vagrant up --provider=aws Wednesday, November 13, 13
vagrant halt ¿Preguntas? Wednesday, November 13, 13