Windows に VirtualBox / Vagrant 環境を構築する

昔のメモを掘り起こしたので、一部加筆修正して転記。

前提

VirtualBox インストール

Downloads – Oracle VM VirtualBox

  1. VirtualBox older builds > VirtualBox 4.3 > VirtualBox 4.3.12
    ※4.3.14 以降だと vagrant up でコケてVMが起動しないので 4.3.12 を使用する
  2. Windows hosts x86/AMD64 をクリックしてインストーラをダウンロード
  3. インストーラを起動
    ※途中、デバイスのインストール確認があるのでインストールする (USBコントローラ, ネットワークアダプタ, Network Service)

Vagrant インストール

Download - Vagrant by HashiCorp

  1. WINDOWS Universal (32 and 64-bit) からインストーラをダウンロード
  2. インストーラを起動
$ vagrant -v
Vagrant 1.8.1

Vagrant Plugins

※プロキシ環境の場合は環境変数の設定が必要

$ set HTTP_PROXY= ...

vagrant-proxyconf

ゲストOSのプロキシ設定が簡単にできるプラグイン

$ vagrant plugin install vagrant-proxyconf

Vagrantfile に以下の設定を追加する

# Proxy settings
config.proxy.http     = "..."
config.proxy.https    = "..."
config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"

vagrant-vbox-snapshot

仮想マシンのスナップショットを管理できるプラグイン

$ vagrant plugin install vagrant-vbox-snapshot

sahara

仮想マシンの状態を管理 (commit, rollback) できるプラグイン

$ vagrant plugin install sahara

仮想マシン起動

Box は Discover Vagrant Boxes | Atlas by HashiCorp で検索できる。
※ここでは nrel/CentOS-6.7-x86_64 を使う。

作業フォルダ上で以下のコマンドを実行して Vagrantfile を生成する。

$ vagrant init nrel/CentOS-6.7-x86_64

以下のコマンドで仮想マシンを起動する。初回は Box をダウンロードするため時間がかかる。
※プロキシ環境の場合は環境変数の設定が必要

$ vagrant up

SSH

TeraTerm など ssh が使えるクライアントから接続する。接続情報は以下のコマンドで確認できる。

$ vagrant ssh-config

秘密鍵の情報は .vagrant/machines/default/virtualbox/private_key を参照。

フォルダ同期

Vagrantfile があるフォルダはゲストOSの /vagrant と同期しているため、ホスト-ゲスト間で簡単にファイル共有ができる。

基本的なコマンド

パッケージング

以下のコマンドで Box をパッケージングする。

$ vagrant package --output centos67-xxxxx.box

Vagrantfile にパッケージングした Box を使うように設定する。

config.vm.box     = "centos67-xxxxx"
config.vm.box_url = "centos67-xxxxx.box"

Vagrantfile と centos67-xxxxx.box を配置したフォルダ上で vagrant up する。