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 1.2.2 and AWS
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Arturas Smorgun
May 09, 2013
Technology
80
0
Share
Vagrant 1.2.2 and AWS
Demo of new features in Vagrant 1.2.2 and usage with AWS
Arturas Smorgun
May 09, 2013
More Decks by Arturas Smorgun
See All by Arturas Smorgun
Solve Complex Problems with DDD
asarturas
0
150
Review of Graph Databases
asarturas
0
94
Profiling in PHP
asarturas
5
940
Design Patterns in PHP Applications
asarturas
5
220
Application Quality
asarturas
6
340
Git Rebase
asarturas
2
240
Let's automate!
asarturas
0
280
AngularJS
asarturas
13
1.3k
Other Decks in Technology
See All in Technology
CloudTrail を見つめ直してみる
kazzpapa3
1
120
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
3
3.8k
AIでAIをテストする - 音声AIエージェントの品質保証戦略
morix1500
1
140
AI와 협업하는 조직으로의 여정
arawn
0
520
Good Enough Types: Heuristic Type Inference for Ruby
riseshia
1
310
260422_Sansan_Tech_Talk__関西_vol.3_データ活用のリアル__矢田__.pdf
sansantech
PRO
0
120
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
790
Pure Intonation on Browser: Building a Sequencer with Ruby
nagachika
0
160
ハーネスエンジニアリングの概要と設計思想
sergicalsix
9
5.4k
これからの「データマネジメント」の話をしよう
sansantech
PRO
0
150
AgentCore×VPCでの設計パターンn選と勘所
har1101
4
320
Expiration of Secure Boot Certificates for vSphere Virtual Machines
mirie_sd
0
110
Featured
See All Featured
The Curse of the Amulet
leimatthew05
1
11k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Ruling the World: When Life Gets Gamed
codingconduct
0
210
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
530
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Prompt Engineering for Job Search
mfonobong
0
280
Statistics for Hackers
jakevdp
799
230k
Building Applications with DynamoDB
mza
96
7k
Become a Pro
speakerdeck
PRO
31
5.9k
Transcript
Artūras Šmorgun, Inviqa Enlighten Lunch, 9th of May 2013 va·grant
One who lives on the streets and constitutes a public nuisance.
$ vagrant a tool to manage virtual boxes sometimes annoying
but easy and helpful (when works)
Versions 1.0.7 is widely used 1.2.2 is latest version 1.2.3
to be released soon
Vagrant 1.2.2 Compatibility Installation Configuration Plugins Windows support
1.1.x Fully compatible with 1.0.x (if you don’t use plugins)
1.x Fully compatible with 1.0.x Compatibility between 1.x not promised
(until next stable release 2.0) (1.0 considered to be stable)
Installation No RubyGems since 1.0.x downloads.vagrantup.com Install as usual Logout
and login back
Configuration Compatible with 1.0.x Versioning Vagrant.configure(“version#”) Vagrant.Config.run == Vagrant.configure(“1”)
Plugins Claimed to be compatible between version Many of them
(and increasing)
vagrant-apache2, vagrant-aws, vagrant- berkshelf, vagrant-boxen, vagrant-bundler, vagrant-butcher, vagrant-digitalocean, vagrant- exec,
vagrant-fog-box-storage, vagrant-host-path, vagrant-hostmaster, vagrant-hostmanager, vagrant-kvm, vagrant-librarian, vagrant- librarian-chef, vagrant-libvirt, vagrant-lxc, vagrant-mysql, vagrant-notify, vagrant-persistent- storage, vagrant-plugins, vagrant-rake, vagrant- rsync, vagrant-salt, vagrant-screenshot, vagrant- snap, vagrant-vbguest, nugrant, vagrant- sparseimage, vagrant-windows Last edited by p0deje, 10 days ago
vagrant-librarian-chef Automatically runs librarian-chef You will still need to have
in installed git://github.com/jimmycuadra/vagrant-librarian-chef.git Vagrant 1.2.0+
vagrant-aws Provisioner Amazon EC2 git://github.com/mitchellh/vagrant-aws.git Vagrant 1.2.0+
usage: step #1 vagrant plugin install vagrant-aws
usage: step #2 Create box file metadata.json Vagrantfile Tar-gzip it
metadata.json { "provider": "aws" }
Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby
: Vagrant.configure("2") do |config| config.vm.provider :aws do |aws| aws.ami = "ami-7747d01e" end end
tar-gzip it! tar cvzf aws.box ./metadata.json \ ./Vagrantfile
usage: step #3 Project configuration with Vagrantfile Source box from
last step Access details Configuration
Project structure > tools/ > vagrant/ > Vagrantfile
Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby
: Vagrant.configure("2") do |config| config.vm.provider :aws do |aws, override| end end
Vagrantfile: box # -*- mode: ruby -*- # vi: set
ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "vagrant122-aws" config.vm.box_url = "file:///home/arturas/ Downloads/vagrant122-aws.box" <..> end
Vagrantfile: aws <..> config.vm.provider :aws do |aws, override| aws.access_key_id =
'key_id' aws.secret_access_key = 'secret_access_key' aws.keypair_name = 'Vagrant122' aws.region = 'eu-west-1' aws.instance_type = 'm1.micro' aws.ami = 'ami-f2191786' override.ssh.username = 'ubuntu' override.ssh.private_key_path = "path_to_pem" end <..>
https://portal.aws.amazon.com/gp/aws/securityCredentials
https://console.aws.amazon.com/ec2/home
usage: step #4 Project provisioning with Vagrantfile Shell script to
install chef Add shell provision Add chef provision
Project structure > tools/ > vagrant/ > Vagrantfile > install_chef_solo.sh
install_chef_solo.sh #!/bin/bash sudo apt-get update sudo apt-get -y install rubygems
sudo gem install chef
Project structure > tools/ > vagrant/ > Vagrantfile > install_chef_solo.sh
Vagrantfile: shell <..> config.vm.provision :shell do |shell| shell.path = "install_chef_solo.sh"
end <..>
Project structure > tools/ > vagrant/ > Vagrantfile > install_chef_solo.sh
> Cheffile > cookbooks/
Cheffile #!/usr/bin/env ruby #^syntax detection site 'http://community.opscode.com/api/v1' cookbook 'apache2', '>=
1.0.0' cookbook 'php', '>= 1.0.0' cookbook 'mysql', '>= 1.0.0'
Project structure > tools/ > vagrant/ > Vagrantfile > install_chef_solo.sh
> Cheffile > cookbooks/
Vagrantfile: chef <..> config.vm.provision :chef_solo do |chef| chef.cookbooks_path = ["cookbooks"]
chef.add_recipe "apache2" chef.add_recipe "php" chef.add_recipe "apache2::mod_php5" chef.add_recipe "mysql::server" chef.add_recipe "php::module_mysql" end <..>
usage: step #5 vagrant up --provider aws vagrant provision
Demonstration?
Questions? Artūras Šmorgun
[email protected]
@asarturas
Thank you! Artūras Šmorgun
[email protected]
@asarturas