Vagrantを使ってみる
- OSX: 10.7.5
- VirtualBox: 4.3.0 r89960
- Vagrant: 1.3.5
VirtualBoxのインストール
Vagrantを使うはVirtualBoxが必要なのでインストール.
Vagrantのインストール
gemでインストール出来るんだけど,gemインスコすると1.0.7が入ってしまう.
gem install vagrant
なので,公式から最新版のバイナリを落とす(Vagrant Downloads).
今日(2013/10/24)時点では1.3.5. これを機に再インストールしました.
$ vagrant --version Vagrant 1.3.5
vagrant box の準備
vagrantはこのboxを元にvmを作成する. 今回はvagrantbox.esで公開されているScientific Linux 6 64 minimalをつかう.
以下のコマンドでboxを取得する.DLするので少し時間がかかる.
vagrant box add base http://lyte.id.au/vagrant/sl6-64-lyte.box
初期化
initで初期化すると.Vagrantfileが作成される.
vagrant init
ネットワークの設定.
Vagrantfileにネットワーク設定を記述する. config.vm.networkとかでファイル内を検索すると記述する場所がだいたいわかるので,しかるべき場所に書く. これを書くとホストからゲストにアクセスできるようになる. (この設定では動かない可能性があります.詳細は後述)
config.vm.network :hostonly, "192.168.50.2"
vagrantの起動
vagrant up
と思ったらエラーがでた.
/Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/plugins/kernel_v2/config/vm.rb:167:in `[]': can't convert Symbol into Integer (TypeError) from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/plugins/kernel_v2/config/vm.rb:167:in `network' from /Users/yoshiki_aoki/work/vagrant/Vagrantfile:23:in `block in <top (required)>' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/config/v2/loader.rb:37:in `call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/config/v2/loader.rb:37:in `load' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/config/loader.rb:104:in `block (2 levels) in load' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/config/loader.rb:98:in `each' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/config/loader.rb:98:in `block in load' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/config/loader.rb:95:in `each' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/config/loader.rb:95:in `load' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/environment.rb:261:in `config_global' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/environment.rb:513:in `block in action_runner' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/runner.rb:28:in `call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/action/runner.rb:28:in `run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/environment.rb:274:in `hook' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/lib/vagrant/environment.rb:135:in `initialize' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/bin/vagrant:74:in `new' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.3.5/bin/vagrant:74:in `<top (required)>' from /Applications/Vagrant/bin/../embedded/gems/bin/vagrant:23:in `load' from /Applications/Vagrant/bin/../embedded/gems/bin/vagrant:23:in `<main>'
どうやら先程のネットワーク設定ではだめで,private_network
指定すればいいらしい.
もう一度Vagrantfileを書き換える.さっき追加した行を置き換える.
config.vm.network :private_network, ip: "192.168.50.2"
起動したvmにログイン
vagrant ssh
~/.vagrant.dというディレクトリが作成されていて,その中にsshの秘密鍵が作成されている.
ssh -i ~/.vagrant.d/insecure_private_key vagrant@192.168.50.2
これでもいいんだけど./ssh/confgに書いておく. 直接書くこともできるが,
vagrant ssh-config --host vag >> ~/.ssh/config
と書くと追記してくれる(vagは好きな名前をつける).
以降,ssh vag
でログイン出来る.
Vagrantの基本操作
- 起動:
vagrant up
- 終了:
vagrant halt
- vagrantを破壊:
vagramt destroy