Vagrantメモ
boxをVagrantbox.esなどで用意
http://www.vagrantbox.es/
$ vagrant box add {title} {url}
HTTP経由で指定したurlからboxファイルをダウンロードして、{title}で指定した名前で保存されます。{url}はローカルパスでも可。
addしたboxはホームディレクトリ下の.vagrantディレクトに追加される。
boxとVMは対の関係ではないので、どんどん作って削除していい。
プロジェクトのルートディレクトリを作成。ディレクトリ名がVMの名前になる。
ルートディレクトリへ移動後、VMを初期化
$ vagrant init {title}
{title}はaddしたboxの名前として指定したもの。プロジェクトディレクトリにVagrantfileが作られる
boxからVMをの稼働と起動
$ vagrant up
オプションでプロバイダ(VmwareFusion, AWSなど)を指定して起動できる。
$ vagrant up --provider=vmware_fusion $ vagrant up --provider=aws
http://lab.raqda.com/vagrant/getting-started/up.html
Vagrant日本語ドキュメント内では以下のようにVagrantfileを編集せよとあるけど、特に設定の必要は無さげ。
日本語ドキュメント
Vagrant.configure(“2”) do |config| config.vm.box = “precise32” end
これが、upしてデフォルトの状態だと。
VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "precise32" end
となってる。
本家のドキュメントを読む限り、バージョンを2か1にを設定する必用があるのだけど、
「1.1+ leading up to 2.0.x」の場合は2に設定せよとある。
現在の最新版が1.3.4なのでこのまま2でOK、となる。
http://docs.vagrantup.com/v2/vagrantfile/version.html
/vagrantディレクトリはプロジェクトのルートディレクトリ、つまりVagrantfileを含むホスト側ディレクトと同期している。そのため、ホスト側のファイルを編集すれば、VM側でそのまま変更が反映される。
プロビジョニング
英和辞典的に言えば「設備の事前準備」みたいな意味。
config.vm.provision :shell; :path => “bootstrap.sh”
みたいに設定を加えれば、shellが走って設定ファイルbootstrap.shの内容が実行される。パスはプロジェクトのルートディレクトリからの相対パス。
shefなんかを使えば、もっと複雑で便利なことができる。
コマンド
vagrant box add {title} {url} boxの追加
vagrant box list 追加されているboxのリストを表示
vagrant box remove {title} {provider}
vagrant box repachage {title} {provider}
vagrant status VMの状態を確認
vagrant suspend VMのサスペンド
vagrant resume サスペンドしたVMのレジューム
vagrant destroy VMの削除
vagrant ssh VMにvagrantユーザーとしてssh接続