vagrantのインストール
最近、Chefに興味を持って触っています。Chef便利です。Chefを使うとレシピと言われるファイルを用いてサーバにnginxなどをインストールすることができます。
- 使いこなせるようになると以下のような嫌な事から解放されます
Chefが使えるようになるとサーバ環境を簡単にセットアップできるだけでなく、環境をGemfileでライブラリを管理するかのように設定ファイルで環境を管理できます。設定ファイルで管理できるためgitでサーバ状態を履歴管理できるようになります。これが本当のchefの目的でセットアップするためのツールではないようです。
ただ、いざ始めようとするとChef Server / ClientとChef-Solo、knife、knife-solo、vagrant、berkshelfなど覚えなくてはイケナイことがたくさんあります。正直わかりにくいです。・・と思っていましたが下記の本が出版されて全てが繋がりました。感謝と同時におすすめです!
このエントリーではvagrantをインストールする方法をメモしておこうと思います。
vagrantのインストール
vagrantはベイグラントと読むようです。そもそもchefやるのになんでvagrantの話しが出てくるかと言うとchefはnginx, mysqlなどのミドルウェアをインストールするもので手持ちのPC(私はMacBookAir)にnginxをインストールしたくなかったりするので、壊してもいいlinux環境が欲しいのです(chefはwindowsでも動作するらしいです)。そこで、容易にトライアンドエラーが試せるようにvagrantで環境を作ります。
vagrantは仮想環境上で動作します。今回は無料のvirtualboxを使います。
virtualboxをダウンロード
vagrantをダウンロード(v1.1からgemではなくパッケージになりました)
%vagrant init precise32 http://files.vagrantup.com/precise32.box A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.
これでprecise32.boxというマシンイメージをprecise32という名前でvagrantが管理します。precise32の部分をubuntuなど好きな名前に変更してもいいです。 マシンイメージは下記のサイトで配布されています。
自分でマシンイメージ(box)を作りたい場合はveeweeを利用すると良さそうです。
vagrant box listで追加したboxを確認できます
%vagrant box list precise32 (virtualbox)
vagrant initするとVagrantfileが作成されます。Vagrantfileにどのboxを利用するのかひも付けしてあります。実態となる.vmdkファイルはmacの場合は~/VirtualBox VMs/のディレクトリにできてます。(vagrant initは第三引数にurlがあるとそのboxをダウンロードして、vagrant box add した事にしてくれます。)
vagrant initでOSが出来たらあとは
- サーバ起動
%vagrant up
- sshでログイン
%vagrant ssh
- サーバ終了
%vagrant halt
- 再起動
%vagrant reload
- サーバが不要になったらdestroyで削除
%vagrant destroy
- 新たなサーバを用意する場合は(precise32はbox名)
%vagrant init precise32