Vagrant2. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
1
徭失B初
? 翌表
C 幄塀氏芙イプロス
C チ`フエンジニア
? Github
C @toyama0919
C https://github.com/toyama0919/
? Twitter
C @god_tongue_19
3. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
2
vagrant provison1
vagrant package2
3
Vagrant 1.34
まとめ5
vagrant plugin
4. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
3
VAGRANTの恷寄
のL侭は
5. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
4
インフラの
コ`ド晒
(Infrastructure As Code)
6. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
5
インフラのコ`ド晒
Vagrantfileはテキストファイル
テキストファイルであるということは堕sを砿尖
できるということ。
Virtual BOXやVM Wareはイメ`ジ
バイナリファイルだと堕sが砿尖できない。
宴旋ではあるが筝坪否を慌嗤できない。
云桑では咾い討い襪徭蛍のh廠では咾ないと
かはよくある。
7. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
6
云|議でない恬Iに
rgを聞わない。
8. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
7
プロビジョン
(provision)
9. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
8
プロビジョン(provision)とは
∀襯泪轡鵑鯑咾靴遂Hにg佩される
匯BのI尖。
サブコマンドのprovision ,up ,reloadを
g佩したrにk咾垢襦☆1
☆1 vagrant 1.3で碧筝
10. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
9
プロビジョン(provision)の旋泣
ミドルウェアのインスト`ルやサ`ビ
スの軟咫⇒V垢覆匹鰈啝できる。
Bする∀襯泪轡鵑VirtualBoxでも
EC2でも揖じスクリプト、Cookbookが
聞える。
採指g佩しても揖じY惚になる。
★腟釆(べきとうせい)
11. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
10
プロビジョン(provision)
ChefやChef-Solo
Vagrantfileの嶄でcookbookのパスやm喘したいレ
シピを峺協する。
Shell
Shellは翌何ファイルではなくインラインで峰す
ることも辛嬬。☆瘁峰
Puppet
CFEngine
12. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
11
# Vagrantfileにコマンドを岷俊峰
config.vm.provision :shell, :inline => "echo
foo > /vagrant/test ̄
# g佩する翌何Shellを峺協
config.vm.provision :shell, :path =>
"script/setup.sh"
Shellによるプロビジョン
13. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
12
# 參和のいずれかでプロビジョンされる。
vagrant {up,reload,provision}
# shellのみでプロビジョン
vagrant up --provision-with shell
Shellによるプロビジョン2
14. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
13
chefとは
サ`バOSでのインスト`ル?O協?光
サ`ビスの彜B砿尖吉、T?のシステ
ムBや\喘恬Iを徭啝できる
Rubyu。
オ`プンソ`スとして巷_されている
。
ミドルウェアの彜Bを仝Cookbook々と
して砿尖する。
15. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
14
# chef-soloを∀襯泪轡麌呂g佩
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = [ "cookbooks", "site-cookbooks" ]
chef.run_list = [
"recipe[mysql55]",
"recipe[java]"
]
end
# これでもよい。
chef.add_recipe("java")
chef.add_recipe( ̄mysql55")
chefによるプロビジョン
16. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
15
Vagrant 云桑h廠Chef
尖誂里呂海鵑文个
17. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
16
POVIDER
(プロバイダ`)
18. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
17
プロバイダ`(provider)とは
∀襯泪轡鵑鰈るエンジンの何蛍。
∀襯泪轡鵑侶Ne、とえれば措い。
箭をい欧襪頒塹造里箸り
VirtualBox
AWS
VMware Fusion
KVM
19. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
18
プラグイン
20. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
19
プラグイン
Vagrantのコマンドをできる。
providerやvagrant坪何もプラグインで
竃栖ている。
F壓のvagrantのバ`ジョンは1.2狼だ
が硬いバ`ジョンとプラグインの札Q
來がないこともあるので廣吭。
蒙に1.0と1.1參貧では寄きく碧が
厚されており、Vagrantfileの峰圭隈
徭悶も笋錣辰討い襦
21. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
20
どんなプラグインがある
aws
sahara
veewee
berkshelf
vagrant-vbguest
vagrant-omnibus
Etc´
22. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
21
vagrant-aws plugin
Vagrantでaws貧にEC2インスタンスを
恬撹できる。
VPCに鬉靴討い襦
恷除ElasticIPに鬉靴拭
リ`ジョン、アベイラビリティゾ`ン
、セキュリティグル`プ、タグ、イン
スタンスタイプなどかな峺協が辛嬬
。
23. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
22
vagrant-aws plugin
Internal AWS
EC2
vagrant up
24. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
23
vagrant up
だけで
EC2インスタンス
を伏撹
25. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
24
config.vm.provider :aws do |aws, override|
aws.access_key_id = "YOUR KEY"
aws.secret_access_key = "YOUR SECRET KEY"
aws.keypair_name = "KEYPAIR NAME ̄
aws.instance_type = "t1.micro ̄
aws.region = "ap-northeast-1 ̄
aws.security_groups = [ 'quick-start-1' ]
aws.ami = "ami-XXXXXXXXX ̄
override.ssh.username =  ̄ec2-user"
override.ssh.private_key_path = "PATH"
end
vagrant-aws plugin のO協箭
26. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
25
# プラグインをインスト`ル
$ vagrant plugin install vagrant-aws
# EC2インスタンスを軟
$ vagrant up Cprovider=aws
# EC2インスタンスをTerminate ☆1
$ vagrant destroy
☆1 stop instanceはない徨。。。
vagrant-aws plugin のO協箭
27. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
26
Amazon Linuxの廣吭泣
Amazon Linuxをロ`カルh廠にBす
ることは児云できない。
ChefのCookbookがAmazon Linuxに
鬉靴討い覆い海箸たまにあり、徭蛍
のh廠と揖じプロビジョニングをする
ためにamazon喘の鬉駅勣な栽が
ある。
Shell Scriptは児云揖じものが聞える。
28. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
27
sahara plugin
∀襯泪轡鵑鮑gにロ`ルバックでき
るプラグイン。
Vagrantのプラグインといえばこれ、と
いうぐらい嗤兆。
火廷ながらVirtualBoxのみ鬄
29. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
28
# sandboxモ`ドに秘る
$ vagrant sandbox on
# 採か恬I
$ ~
# きす
$ vagrant sandbox rollback
# _協する。(rollbackしたらここにる)
$ vagrant sandbox commit
sahara plugin
30. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
29
sahara plugin
sandbox off コミットしていなければも
とにせる。
火廷ながらVirtualBoxのみ鬄
31. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
30
徭蛍のBOXを
麿繁に巷_したい。
32. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
31
PACKAGE
(パッケ`ジ)
33. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
32
パッケ`ジング(package)
徭蛍で俐屎した∀襯泪轡鵑鮃禾个任
る。
徨が.boxで隠贋する。
VagrantfileでBOXのロケ`ションを峺
協できる。
恬撹するBOXはvagrantで聞喘されるの
が念戻なので、vagrantユ`ザ`がいな
ければいけない。
34. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
33
# 恬IディレクトリにVagrantfile
# package.boxが恬撹される
$ vagrant package
# 恬ったBOXを徭蛍のマシンに弖紗
$ vagrant box add my_box package.box
# BOXをs3にアップロ`ドして慌嗤
$ s3cmd put package.box s3://BUCKET[/PREFIX]
packageの聞い圭
35. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
34
イプロスでの聞喘箭
Internal S3
BASE
BOX
36. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
35
config.vm.box =  ̄my_box"
# 恬撹したBOXをs3にアップロ`ドしておき、
# そのURLを峺協する。(httpでなくても辛)
config.vm.box_url =
"http://hoge.s3.amazonaws.com/develop/dev.box"
VagrantfileのO協箭
vagraut up
だけでダウンロ`ドが_兵され、
襯泪轡鵑ロ`カルに婢_される
37. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
36
パッケ`ジングの聞い祇としては
徭蛍で恬ったボックスをS3にアップロ
`ドし、光徭がvagrantU喇でロ`カル
にマシンを婢_する。
ロ`カルにBOXが贋壓すれば2業朕參
週はマシンをダウンロ`ドしない。
恷詰泙硫新屬BOX晒する、で措いが
ミドルウェアやアプリをインスト`ル
していく何蛍はprovisioningで砿尖して
いくことが李ましい。
38. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
37
パッケ`ジングの廣吭泣
BOXの侭はインタ`ネットにつなが
る侭なら辛嬬なので、J^秤鵑
BOXに秘れてしまう栽は廣吭が駅勣
。(リポジトリのパスワ`ドとか)
_kで聞う栽はS3にBOXを崔くケ`
スが謹いと房うので、Bucket Policyな
どで`るとよい。
39. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
38
_kが試kなので
碧が寄きく笋錣襦
40. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
39
Vagrant1.3がリリ`ス、筝泣は
vagrant upで兜指のみプロビジョニン
グがg佩される。
2指朕參週は苧幣議に!provisionとしな
いとプロビジョニングされない。
vagrant reloadも揖。
Mac OS Xのguestが鬉靴燭蕕靴ぁ
瘁はファイルの撹とかかい。
41. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
40
まとめ
USE
VAGRANT
42. COPYRIGHT ? 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. ‐CONFIDENTIAL/
Vagrant
41
ご床ありがとう
ございました。