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
72
Como aplicar la arquitectura de Elm en Swift
guidomb
0
120
A portal from Elm to Swift
guidomb
1
470
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
関数型まつりレポート for JuliaTokai #22
antimon2
0
160
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
68
21k
Discover Metal 4
rei315
2
120
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
10k
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
410
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
600
C++20 射影変換
faithandbrave
0
570
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
3
6k
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
0
4.2k
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
2.2k
Featured
See All Featured
BBQ
matthewcrist
89
9.7k
Balancing Empowerment & Direction
lara
1
410
How to train your dragon (web standard)
notwaldorf
94
6.1k
Building Applications with DynamoDB
mza
95
6.5k
Done Done
chrislema
184
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Code Reviewing Like a Champion
maltzj
524
40k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
GraphQLとの向き合い方2022年版
quramy
49
14k
A Tale of Four Properties
chriscoyier
160
23k
The Pragmatic Product Professional
lauravandoore
35
6.7k
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