Mac OS Xでのvagrant運用

More than 5 years have passed since last update.


はじめに

vagrant + virtualboxはコマンドラインベースでバーチャルマシンを立ち上げ、ソフトウェアのテストができる便利なツールだ。ただ、chefなどとの組み合わせも書いているページが多く、いろいろなページに分散して情報が載っていて不便なので、自分が使うとこだけログ代わりにまとめていくことにする。


インストール

VirtualBoxとVagrantをインストールする。

それぞれのサイトから、dmgを持ってきて、それぞれインストールする。


セットアップ

セットアップは基本的に以下の手順で行う。


  • 仮想環境の登録

  • ハンドル用のディレクトリの作成と初期化


仮想環境の登録

仮想環境は、外からダウンロードして登録するらしい。以下のサイトにいろいろな仮想環境(Linuxディストリビューション)がころがっているので、必要な環境を登録しておく。

ここでは、Ubuntu12.04をダウンロードして登録することにする。

$ vagrant box add ubuntu12.04 http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-i386-vagrant-disk1.box

4つめの引数は登録名になるので、自分で分かりやすい登録名を登録しておきましょう。ubuntuの複数のバージョンを使いたい場合など、"ubuntu"などという名前で登録すると後で面倒になります。また、ダウンロードするため、登録にはそれなりの時間がかかるので、まとまった時間を確保して行いましょう。


ハンドル用のディレクトリの作成と初期化

ホームディレクトリにでも、vagrantというディレクトリを作って、初期化する。

$ mkdir vagrant

$ cd vagrant
$ vagrant init ubuntu12.04

登録されたいずれかの環境で初期化するので、複数の環境を運用する場合は、ディレクトリ名を考えましょう。


基本の使い方

基本的な使い方は以下の通りである


仮想環境の立ち上げ

$ vagrant up


仮想環境へのアクセス

$ vagrant ssh


仮想環境の停止

$ vagrant halt


仮想環境のサスペンド

$ vagrant suspend


ロールバックとスナップショット

基本的な使い方はできたとはいえ、本当にやりたいのは、クリーンインストール環境でソフトウェアの確認を行いたいことだったりするので、ロールバックやスナップショットの機能を入れる

$ vagrant plugin install sahara

$ vagrant plugin install vagrant-vbox-snapshot


ロールバック

ロールバックを試すには、


  1. sandboxモードに入る

  2. 適当に作業

  3. 正否によって以下を実行


    • 失敗してロールバックしたい場合、ロールバックを実行

    • 成功して保存したい場合は現在の状態を反映する



という手順を踏む。以下、必要になるコマンドを示す。


sandboxモードに入る

$ vagrant sandbox on


ロールバック

$ vagrant sandbox rollback


変更を反映

$ vagrant sandbox commit


スナップショット

スナップショットは、仮想マシンのある状態を保存しておく機能だ。環境構築や共通の作業をしたところまでのスナップショットをとっておき、そのスナップショットを使って環境を作ると、同じ手順を何回も繰り返さずに済み、便利である。


Snapshotの作成

$ vargrant snapshot take hoge


Snapshotの確認

$ vagrant snapshot list


最新のSnapshotへ戻す

$ vagrant snapshot back


特的のSnapshotへ戻す

$ vagrant snapshot go hoge


ssh-configの設定

指定ディレクトリに入れなくても、立ち上げた仮想環境にsshログインできるように設定をconfigファイルに書き込むと楽です。また、X11を使ったアクセスなどをしたい場合に必要になります。

$ vagrant ssh-config --host ubuntu12.04 >> ~/.ssh/config


仮想環境のパッケージ化

すべての環境に必要なソフトウェアのインストールを一からやるのは効率が悪い。そこで、一定の作業を終えた仮想環境をパッケージ化して他の仮想環境に適用できると便利だ。それを実行するのが以下のコマンド

$ vagrant package

$ vagrant box add copy package.box

一つ目のコマンドで、まず現在の仮想環境のコピーがpackage.boxという名前で作成される。二つ目のコマンドでは、生成されたpackage.boxに基づいて、新しい環境copyを作成している。これで、一から環境をインストールすることなく、作業を開始できる。