株式会社イプロス
外山 寛
VAGRANT
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
1
自己紹介
• 外山 寛
– 株式会社イプロス
– チーフエンジニア
• Github
– @toyama0919
– https://github.com/toyama0919/
• Twitter
– @god_tongue_19
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
2
vagrant provison1
vagrant package2
3
Vagrant 1.34
まとめ5
vagrant plugin
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
3
VAGRANTの最大
の長所は?
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
4
インフラの
コード化!
(Infrastructure As Code)
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
5
インフラのコード化?
Vagrantfileはテキストファイル!
テキストファイルであるということは履歴を管理
できるということ。
Virtual BOXやVM Wareはイメージ
バイナリファイルだと履歴が管理できない。
便利ではあるが変更内容を共有できない。
本番では動いているが自分の環境では動かないと
かはよくある話。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
6
本質的でない作業に
時間を使わない。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
7
プロビジョン
(provision)
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
8
プロビジョン(provision)とは?
仮想マシンを起動した際に実行される
一連の処理。
サブコマンドのprovision ,up ,reloadを
実行した時に発動する。※1
※1 vagrant 1.3で仕様変更!
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
9
プロビジョン(provision)の利点
ミドルウェアのインストールやサービ
スの起動、停止などを自動化できる。
構築する仮想マシンがVirtualBoxでも
EC2でも同じスクリプト、Cookbookが
使える。
何回実行しても同じ結果になる。
→冪等性(べきとうせい)
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
10
プロビジョン(provision)
ChefやChef-Solo
Vagrantfileの中でcookbookのパスや適用したいレ
シピを指定する。
Shell
Shellは外部ファイルではなくインラインで記述す
ることも可能。※後述
Puppet
CFEngine
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
11
# Vagrantfileにコマンドを直接記述
config.vm.provision :shell, :inline => "echo
foo > /vagrant/test”
# 実行する外部Shellを指定
config.vm.provision :shell, :path =>
"script/setup.sh"
Shellによるプロビジョン
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
12
# 以下のいずれかでプロビジョンされる。
vagrant {up,reload,provision}
# shellのみでプロビジョン
vagrant up --provision-with shell
Shellによるプロビジョン2
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
13
chefとは?
サーバOSでのインストール・設定・各
サービスの状態管理等、諸々のシステ
ム構築や運用作業を自動化できる
Ruby製。
オープンソースとして公開されている
。
ミドルウェアの状態を「Cookbook」と
して管理する。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
14
# chef-soloを仮想マシン上で実行
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によるプロビジョン
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
15
Vagrant 本番環境Chef
理想形はこんな感じ
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
16
POVIDER
(プロバイダー)
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
17
プロバイダー(provider)とは?
仮想マシンを作るエンジンの部分。
仮想マシンの種別、と覚えれば良い。
例を挙げると以下のとおり
VirtualBox
AWS
VMware Fusion
KVM
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
18
プラグイン
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
19
プラグイン
Vagrantのコマンドを拡張できる。
providerやvagrant内部もプラグインで
出来ている。
現在のvagrantのバージョンは1.2系だ
が古いバージョンとプラグインの互換
性がないこともあるので注意。
特に1.0と1.1以上では大きく仕様が変
更されており、Vagrantfileの記述方法
自体も変わっている。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
20
どんなプラグインがある?
aws
sahara
veewee
berkshelf
vagrant-vbguest
vagrant-omnibus
Etc…
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
21
vagrant-aws plugin
Vagrantでaws上にEC2インスタンスを
作成できる。
VPCに対応している。
最近ElasticIPに対応した。
リージョン、アベイラビリティゾーン
、セキュリティグループ、タグ、イン
スタンスタイプなど細かな指定が可能
。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
22
vagrant-aws plugin
Internal AWS
EC2
vagrant up
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
23
vagrant up
だけで
EC2インスタンス
を生成!
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 の設定例
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
25
# プラグインをインストール
$ vagrant plugin install vagrant-aws
# EC2インスタンスを起動
$ vagrant up –provider=aws
# EC2インスタンスをTerminate ※1
$ vagrant destroy
※1 stop instanceはない様子。。。
vagrant-aws plugin の設定例
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
26
Amazon Linuxの注意点
Amazon Linuxをローカル環境に構築す
ることは基本できない。
ChefのCookbookがAmazon Linuxに対
応していないことがたまにあり、自分
の環境と同じプロビジョニングをする
ためにamazon用の対応が必要な場合が
ある。
Shell Scriptは基本同じものが使える。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
27
sahara plugin
仮想マシンを簡単にロールバックでき
るプラグイン。
Vagrantのプラグインといえばこれ、と
いうぐらい有名。
残念ながらVirtualBoxのみ対応。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
28
# sandboxモードに入る
$ vagrant sandbox on
# 何か作業
$ ~
# 巻き戻す
$ vagrant sandbox rollback
# 確定する。(rollbackしたらここに戻る)
$ vagrant sandbox commit
sahara plugin
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
29
sahara plugin
sandbox off コミットしていなければも
とに戻せる。
残念ながらVirtualBoxのみ対応。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
30
自分のBOXを
他人に公開したい。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
31
PACKAGE
(パッケージ)
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
32
パッケージング(package)
自分で修正した仮想マシンを共有でき
る。
拡張子が.boxで保存する。
VagrantfileでBOXのロケーションを指
定できる。
作成するBOXはvagrantで使用されるの
が前提なので、vagrantユーザーがいな
ければいけない。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
33
# 作業ディレクトリにVagrantfile
# package.boxが作成される
$ vagrant package
# 作ったBOXを自分のマシンに追加
$ vagrant box add my_box package.box
# BOXをs3にアップロードして共有
$ s3cmd put package.box s3://BUCKET[/PREFIX]
packageの使い方
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
34
イプロスでの使用例
Internal S3
BASE
BOX
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の設定例
vagraut up
だけでダウンロードが開始され、仮
想マシンがローカルに展開される
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
36
パッケージングの使い道としては
自分で作ったボックスをS3にアップロ
ードし、各自がvagrant経由でローカル
にマシンを展開する。
ローカルにBOXが存在すれば2度目以
降はマシンをダウンロードしない。
最低限の部分はBOX化する、で良いが
ミドルウェアやアプリをインストール
していく部分はprovisioningで管理して
いくことが望ましい。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
37
パッケージングの注意点
BOXの場所はインターネットにつなが
る場所なら可能なので、認証情報を
BOXに入れてしまう場合は注意が必要
。(リポジトリのパスワードとか)
開発で使う場合はS3にBOXを置くケー
スが多いと思うので、Bucket Policyな
どで縛るとよい。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
38
開発が活発なので
仕様が大きく変わる。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
39
Vagrant1.3がリリース、変更点は
vagrant upで初回のみプロビジョニン
グが実行される。
2回目以降は明示的に—provisionとしな
いとプロビジョニングされない。
vagrant reloadも同様。
Mac OS Xのguestが対応したらしい。
後はファイルの構成とか細かい話。
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
40
まとめ
USE
VAGRANT
COPYRIGHT © 2013 IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】
Vagrant
41
ご静聴ありがとう
ございました。

Vagrant

  • 1.
  • 2.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 1 自己紹介 • 外山 寛 – 株式会社イプロス – チーフエンジニア • Github – @toyama0919 – https://github.com/toyama0919/ • Twitter – @god_tongue_19
  • 3.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 2 vagrant provison1 vagrant package2 3 Vagrant 1.34 まとめ5 vagrant plugin
  • 4.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 3 VAGRANTの最大 の長所は?
  • 5.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 4 インフラの コード化! (Infrastructure As Code)
  • 6.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 5 インフラのコード化? Vagrantfileはテキストファイル! テキストファイルであるということは履歴を管理 できるということ。 Virtual BOXやVM Wareはイメージ バイナリファイルだと履歴が管理できない。 便利ではあるが変更内容を共有できない。 本番では動いているが自分の環境では動かないと かはよくある話。
  • 7.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 6 本質的でない作業に 時間を使わない。
  • 8.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 7 プロビジョン (provision)
  • 9.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 8 プロビジョン(provision)とは? 仮想マシンを起動した際に実行される 一連の処理。 サブコマンドのprovision ,up ,reloadを 実行した時に発動する。※1 ※1 vagrant 1.3で仕様変更!
  • 10.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 9 プロビジョン(provision)の利点 ミドルウェアのインストールやサービ スの起動、停止などを自動化できる。 構築する仮想マシンがVirtualBoxでも EC2でも同じスクリプト、Cookbookが 使える。 何回実行しても同じ結果になる。 →冪等性(べきとうせい)
  • 11.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 10 プロビジョン(provision) ChefやChef-Solo Vagrantfileの中でcookbookのパスや適用したいレ シピを指定する。 Shell Shellは外部ファイルではなくインラインで記述す ることも可能。※後述 Puppet CFEngine
  • 12.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 11 # Vagrantfileにコマンドを直接記述 config.vm.provision :shell, :inline => "echo foo > /vagrant/test” # 実行する外部Shellを指定 config.vm.provision :shell, :path => "script/setup.sh" Shellによるプロビジョン
  • 13.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 12 # 以下のいずれかでプロビジョンされる。 vagrant {up,reload,provision} # shellのみでプロビジョン vagrant up --provision-with shell Shellによるプロビジョン2
  • 14.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 13 chefとは? サーバOSでのインストール・設定・各 サービスの状態管理等、諸々のシステ ム構築や運用作業を自動化できる Ruby製。 オープンソースとして公開されている 。 ミドルウェアの状態を「Cookbook」と して管理する。
  • 15.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 14 # chef-soloを仮想マシン上で実行 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 © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 15 Vagrant 本番環境Chef 理想形はこんな感じ
  • 17.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 16 POVIDER (プロバイダー)
  • 18.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 17 プロバイダー(provider)とは? 仮想マシンを作るエンジンの部分。 仮想マシンの種別、と覚えれば良い。 例を挙げると以下のとおり VirtualBox AWS VMware Fusion KVM
  • 19.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 18 プラグイン
  • 20.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 19 プラグイン Vagrantのコマンドを拡張できる。 providerやvagrant内部もプラグインで 出来ている。 現在のvagrantのバージョンは1.2系だ が古いバージョンとプラグインの互換 性がないこともあるので注意。 特に1.0と1.1以上では大きく仕様が変 更されており、Vagrantfileの記述方法 自体も変わっている。
  • 21.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 20 どんなプラグインがある? aws sahara veewee berkshelf vagrant-vbguest vagrant-omnibus Etc…
  • 22.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 21 vagrant-aws plugin Vagrantでaws上にEC2インスタンスを 作成できる。 VPCに対応している。 最近ElasticIPに対応した。 リージョン、アベイラビリティゾーン 、セキュリティグループ、タグ、イン スタンスタイプなど細かな指定が可能 。
  • 23.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 22 vagrant-aws plugin Internal AWS EC2 vagrant up
  • 24.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 23 vagrant up だけで EC2インスタンス を生成!
  • 25.
    COPYRIGHT © 2013IPROS 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 の設定例
  • 26.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 25 # プラグインをインストール $ vagrant plugin install vagrant-aws # EC2インスタンスを起動 $ vagrant up –provider=aws # EC2インスタンスをTerminate ※1 $ vagrant destroy ※1 stop instanceはない様子。。。 vagrant-aws plugin の設定例
  • 27.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 26 Amazon Linuxの注意点 Amazon Linuxをローカル環境に構築す ることは基本できない。 ChefのCookbookがAmazon Linuxに対 応していないことがたまにあり、自分 の環境と同じプロビジョニングをする ためにamazon用の対応が必要な場合が ある。 Shell Scriptは基本同じものが使える。
  • 28.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 27 sahara plugin 仮想マシンを簡単にロールバックでき るプラグイン。 Vagrantのプラグインといえばこれ、と いうぐらい有名。 残念ながらVirtualBoxのみ対応。
  • 29.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 28 # sandboxモードに入る $ vagrant sandbox on # 何か作業 $ ~ # 巻き戻す $ vagrant sandbox rollback # 確定する。(rollbackしたらここに戻る) $ vagrant sandbox commit sahara plugin
  • 30.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 29 sahara plugin sandbox off コミットしていなければも とに戻せる。 残念ながらVirtualBoxのみ対応。
  • 31.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 30 自分のBOXを 他人に公開したい。
  • 32.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 31 PACKAGE (パッケージ)
  • 33.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 32 パッケージング(package) 自分で修正した仮想マシンを共有でき る。 拡張子が.boxで保存する。 VagrantfileでBOXのロケーションを指 定できる。 作成するBOXはvagrantで使用されるの が前提なので、vagrantユーザーがいな ければいけない。
  • 34.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 33 # 作業ディレクトリに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 © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 34 イプロスでの使用例 Internal S3 BASE BOX
  • 36.
    COPYRIGHT © 2013IPROS 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の設定例 vagraut up だけでダウンロードが開始され、仮 想マシンがローカルに展開される
  • 37.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 36 パッケージングの使い道としては 自分で作ったボックスをS3にアップロ ードし、各自がvagrant経由でローカル にマシンを展開する。 ローカルにBOXが存在すれば2度目以 降はマシンをダウンロードしない。 最低限の部分はBOX化する、で良いが ミドルウェアやアプリをインストール していく部分はprovisioningで管理して いくことが望ましい。
  • 38.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 37 パッケージングの注意点 BOXの場所はインターネットにつなが る場所なら可能なので、認証情報を BOXに入れてしまう場合は注意が必要 。(リポジトリのパスワードとか) 開発で使う場合はS3にBOXを置くケー スが多いと思うので、Bucket Policyな どで縛るとよい。
  • 39.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 38 開発が活発なので 仕様が大きく変わる。
  • 40.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 39 Vagrant1.3がリリース、変更点は vagrant upで初回のみプロビジョニン グが実行される。 2回目以降は明示的に—provisionとしな いとプロビジョニングされない。 vagrant reloadも同様。 Mac OS Xのguestが対応したらしい。 後はファイルの構成とか細かい話。
  • 41.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 40 まとめ USE VAGRANT
  • 42.
    COPYRIGHT © 2013IPROS CORPORATION. ALL RIGHTS RESERVED. 【CONFIDENTIAL】 Vagrant 41 ご静聴ありがとう ございました。