ようやくVagrantとか触り始めた

長らくVMWare派だったのでVagrantは関係ないと思っていたのですが、どうやらVMWareでも使えるらしいじゃないですか。Vagrant。

というわけでいまさらながらようやくVagrantを使い始めたので、そのメモです。
Vagrantのバージョンは 1.2.2 です。

Install

ここからインストーラーを落として実行します。Windows用もあるので安心ですね。以前と違ってRubyを内包する形式に変わったようでRubyを自前でインスコしなくてもいいのはちょっと嬉しいかもしれません。

ちなみにWindows7 x64のマシンにMSIでインストールを行うと、シャットダウンや再起動ができない状態になりました。無理くり電源を落として再起動したら問題なく動きましたが、ちょっとしたバグかもしれません。

ちなみにちなみにVMWare派といっておきながら初回はVirtualBoxを使いました。

Usage

Vagrantでは仮想マシンをBoxという単位で管理するようです。 このリストから作成したいBoxのURLをコピーして名前との関連付けや初期化処理をします。

> vagrant box add {name} {box_url}
> vagrant init {name} # URLから仮想マシンがダウンロードされる
> vagrant up

vagrant init のタイミングでカレントディレクトリに管理用のVagrantfileと.vagrantディレクトリが作成されます。VagrantfileはやたらとRubyっぽい内容になっていて、仮想マシンの設定とかをできそうです。vagrant up が完了すると仮想マシンが起動していますので、以下のコマンドで接続することができます。

> vagrant ssh

Windows版ではvagrant ssh が動かないという記事をいくつか見ましたが、普通にうごきました。 Heroku toolbeltとかchef-clientとかUnixコマンドを注入するものをいくつかインストールしているので、その辺が関係あるかもしれません。

関連書籍とかプラグインとか

書籍が出ているみたいです。電子版もありました。

Vagrant: Up and Running

Vagrant: Up and Running

ついでにChefの書籍もあります。

入門Chef Solo - Infrastructure as Code

入門Chef Solo - Infrastructure as Code

プラグインはSaharaとvagrant-omnibusというのが便利みたいです。

Saharaは仮想マシンをSandboxという状態にできるもの。Sandboxの状態で変更を適用し、気に入らなければRollback、問題なければCommitができます。

> vagrant plugin install sahara

使い方のイメージは以下のような感じです。

> vagrant sandbox on
> vagrant sandbox rollback # sandbox on の状態まで巻き戻す
> vagrant sandbox commit   # 変更を確定する

vagrant-omnibusは仮想マシンに指定したバージョンのChef-clientがインストールされているか検査し、存在しなければ自動的にインストールしてくれるものです。

> vagrant plugin install vagrant-omnibus

使い方はVagrantfileのconfig.omnibus.chef_versionにバージョンを指定するだけのようです。
簡単ですね。

> config.omnibus.chef_version = "11.4.4"

とりあえずごく初歩的な部分だけ使ってみて「簡単すぎwwwwうほっwwwwwww」としているところです。もっと使い込んだり書籍を読んだりしてギョームでも使いこなしていきたいですね :)