Vagrant とは?
Vagrant は、VirtualBoxなどの仮想環境上に仮想マシンを簡単に作成したり破棄したりできるツールです。操作出来る仮想環境は VirtualBox が基本ですが、VMware Fusion や Amazon EC2 なども(ちょっと設定すれば)操作可能です。
プロビジョニング(ミドルウェアの設定やインストール等の環境構築)には、Chef や Puppet や Ansible などが利用されます。
Vagrant と VirtualBox のインストール
今回は VirtualBox 上に仮想マシンを作成して使ってみましょう。まずインストールですが、以前紹介した homebrew-caskさえあればご飯大盛り三杯はイケる を利用していればこの設定を追加するだけです。
cask install virtualbox cask install vagrant
あとは brew bundle するだけです。それ以外の方はなんとかしてインスt(ry
仮想マシンを起動しよう
まずは、仮想マシンのベースとなるイメージファイルを追加します。centos65 というのは任意の名前なので、好きな名前を付けちゃってください。これ以外のイメージファイルは A list of base boxes for Vagrant - Vagrantbox.es にあります。
$ vagrant box add centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
これでイメージファイルが追加されました。以下のコマンドで確認できます。
$ vagrant box list centos65 (virtualbox, 0)
先ほど作成した centos65 があることがわかりますね。次に、vagrant init します。引数の centos65 というのは、先ほど付けたイメージファイルの名前です。
$ mkdir foobar # 任意のディレクトリを作成 $ cd foobar $ vagrant init centos65
vagrant init すると、Vagrantfile というファイルが生成されます。このファイルには、ベースとしたイメージファイルや、作成された仮想マシンのIPなどが記録されています。
Vagrantfile が出来たらあとは vagrant up するだけ。
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'centos65'... ==> default: Matching MAC address for NAT networking... ==> default: Setting the name of the VM: blog_default_1406514521318_25412 ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 => 2222 (adapter 1) ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Remote connection disconnect. Retrying... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... ==> default: Mounting shared folders... default: /vagrant => /Users/sasata299/work/foobar
これで仮想マシンの作成が起動しました!プログラマブルに扱えるのが嬉しいですね。
仮想マシンに ssh ログイン
作成した仮想マシンには ssh でログイン可能なので、あとはゴニョゴニョしましょう。
$ vagrant ssh
vagrant コマンドを使わずに普通に ssh したい場合には、
vagrant ssh-config >> ~/.ssh/config
して、ssh 用の設定を ~/.ssh/config に書き出しておきましょう。ssh <任意のnode名> でログイン可能になります。 :D