akishin999の日記

調べた事などを書いて行きます。

Veewee による Vagrant の Box 作成環境構築 Windows 版 その1

遅ればせながら流行りの Vagrant 環境を Windows 上で構築してみました。

Vagrant 単体で公式で用意されている Box を使うだけでもそれはそれで便利なんですが、やはり自分で Box を作りたいので、Veewee を使用して Vagrant の Box を作成できる環境も併せて作っています。

検証した環境は以下になります。

msysgit のインストール

Veewee を Git リポジトリから clone して入れるのと、コマンドプロンプトssh や tar が使用できるようになっている方が後々楽なので、 msysgit をインストールします。

http://code.google.com/p/msysgit/downloads/list

上記から最新版をダウンロードしてインストール。
ここでは Git-1.8.3-preview20130601.exe をダウンロードしました。
新規インストールの場合、インストールウィザードの途中で以下のような「Adjusting your PATH environment」という画面が表示されます。

ここでは後々何かと便利なので、「Run Git and included Unix tools from the Windows Command Prompt」を選択。
このオプションを選択すると、インストール後に環境変数 PATH に自動的に以下のパスが追加されています。

  • C:\Program Files\Git\cmd
  • C:\Program Files\Git\bin

もし Warning の内容を読んで「Run Git and included Unix tools from the Windows Command Prompt」を選択したくないという人は、後で Vagrant や Veewee を実行する時だけ上記のパスを set PATH で追加すれば問題ないと思います。

これにより、コマンドプロンプトで以下のように ssh コマンドや tar コマンドが使用できるようになります。

>ssh -v
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
usage: ssh [-1246AaCfgkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-e escape_char] [-F configfile]
           [-i identity_file] [-L [bind_address:]port:host:hostport]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-R [bind_address:]port:host:hostport] [-S ctl_path]
           [-w local_tun[:remote_tun]] [user@]hostname [command]

>tar --version
tar (GNU tar) 1.22
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.

VirtualBox のインストール

https://www.virtualbox.org/wiki/Downloads

上記から最新版をダウンロードしてインストール。
ここでは VirtualBox-4.2.16-86992-Win.exe をダウンロードしました。
インストールは普通に進めていくだけで特に迷うところもないと思います。

ちなみに、VMware Player が既に入っている環境にも普通にインストールでき、どちらも使う事ができます。

Vagrant のインストール

1.1 以降では gem によるインストール方法は廃止されたため、以下から最新版のインストーラをダウンロードしてインストールします。

http://downloads.vagrantup.com/

ここでは Vagrant_1.2.7.msi をダウンロードしました。
gem 版の古い Vagrant を既に導入している場合は、先に gem uninstall してからインストールしてください。

Vagrant ではインストール完了後に Windows の再起動を求められます。

VirtualBox インストール時ですら再起動は求められなかったので、正直これはなんだか微妙ですね。
なんとかならないものかな。

Ruby のインストール

Veewee が Ruby 製なので Ruby 環境も作成します。
ここでは RubyInstaller を使用しました。
Veewee の依存ライブラリ中に存在する一部の native extension をビルドする必要があるため、DevKit も合わせて導入しておく必要があります。

http://rubyinstaller.org/downloads/

上記から 1.9 系の最新版をダウンロードしてインストール。

Windows 7 64bit + 2.0.0 x64 + DevKit-mingw64-64 の 環境で使用した際、 Veewee での vbox export 実行時に

unknown response from agent: 1, "\x00\x00\x00,\x01\x00\x00\x00'SSH-2.0-Ruby/Net::SSH_2.6.8 x64-mingw32"

というエラーが出てしまい、結局原因が良く分からなかったので、敢えてバージョンを落としています。
まぁ Box 自体、そこまで頻繁に作成するようなものでもないので、当面は Veewee のみ 1.9 環境で動かす感じでもいいかな、と・・・。

ここでは ruby-1.9.3-p448-i386-mingw32.7z と DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe をダウンロードしました。
インストールして DevKit を使えるよう設定するまでの方法については、以前 ここ に書いたので、参考にしてみて下さい。

インストールが完了したら、bundler を入れておきます。

>gem install bundler --no-rdoc --no-ri

Veewee のインストール

適当なディレクトリに移動して git clone します。

>git clone git://github.com/jedi4ever/veewee.git

この時、Git の設定で autocrlf が有効になっていると *.sh のファイルまで改行が CRLF になってしまい、box 作成時にエラーになってしまいます。
その場合は clone 前に以下を実行して Git の autocrlf を無効にしておきます。

>git config --global core.autocrlf false

clone が終わったら cd して bundle install を実行。

>cd veewee
>bundle install

これで Veewee を使う準備は完了です。
長くなったので続きは次回で。

次回はインストールした Veewee を使用して実際に box を作成してみます。

続き書きました。
Veewee による Vagrant の Box 作成環境構築 Windows 版 その2 - akishin999の日記