Vagratnt
Vagrantはオープンソースで開発された仮想環境を効率良くインストールするためのツール。プラットフォームとしてはWindows, Linux, Macがある。対象とうなる仮想化ツールはVirtual Box, VMWare, AWSが利用できる。またChefやpuppyと連動してソフトウェアの構成も自動化できる。Rubyで記述されている。
インストール
dpkgのインストール
Vagrantで提供されているインストーラの中でubuntuと相性が良いのがDebianパッケージである。
Debianパッケージを利用するためにdpkg(Debian パッケージツール)をインストールしておく。同時にVirtual Boxもインストールする。
sudo apt-get install dpkg-dev virtualbox-dkms
インストーラを取得する。
wget http://files.vagrantup.com/packages/a40522f5fabccb9ddabad03d836e120ff5d14093/vagrant_1.3.5_i686.deb
取得したらパッケージをインストールする。
sudo dpkg -i vagrant_1.3.5_i686.deb 未選択パッケージ vagrant を選択しています。 (データベースを読み込んでいます ... 現在 198056 個のファイルとディレクトリがインストールされています。) (vagrant_1.3.5_i686.deb から) vagrant を展開しています... vagrant (1:1.3.5) を設定しています ...
Vagrantのインストールはこれで完了。Virtual Boxも設定してしまう。
sudo dpkg-reconfigure virtualbox-dkms
ボックス
Vagrantは仮想マシンを構築するときにスクラッチからインストールはしない。ボックスと呼ばれる基礎となるテンプレートを利用する。このテンプレートを利用するとユーザーは余計な構成に時間をかけることもないし、ディスクなどのリソースも無駄に消費しない。
ボックスの取得
ボックスはVagrantの公式サイトから利用できるもの、その他有志により作られたものがインターネット上にある。まずVagrantの公式サイトからubuntu用のボックスを取得する。
vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
上記コマンドにでubuntuのlucidバージョン用のボックスを取得できる。
ボックスが正しくインストールされたかを確認する。
vagrant box list lucid32
Vagrant公式サイト以外にvagrantbox.esでは有志がボックスを持ち寄って共有している。
vagrant boxでは利用できるコマンドは vagrant -hで表示される。たとえば必要がなくなったボックスはvagrant removeで削除できる。
vagrant box -h Usage: vagrant box <command> [<args>] Available subcommands: add list remove repackage
仮想マシン
ボックスから仮想マシンを作成する。ボックスはテンプレートして扱われるので複数の仮想マシンをひとつのボックスからインストールできる。Vagrantではひとつの仮想マシンをプロジェクトして取り扱うが実態としては個別の独立したフォルダになる。
初期化
仮想マシンを作成するためはまずフォルダを作成する。
mkdir ubu01 cd ubu01
次にフォルダでVagrantの初期化を実行しVagrantfileを作成する。
vagrant init 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.
Vagrantでは仮想マシンの構成をVagrantfileと呼ばれるファイルに記述する。Vagrantfileの記述を直して、先ほどダウンロードしたボックスを利用する。
下記の行を見つける。
config.vm.box = "base"
lucid32を利用するにように変更する。
config.vm.box = "lucid32"
次にネットワークを設定する。ホストから接続できるようにホストオンリーでプライベートアドレスを振る。下記の行を探しコメントを取り除く
# config.vm.network :hostonly, "192.168.33.10"
設定はこれで完了したので仮想マシンを生成する。
vagrant up
ステータスを確認すると起動していることがわかる。
vagrant status Current VM states: default running
仮想マシンが起動しているのでSSHで接続する。
vagrant ssh Linux lucid32 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:13:04 UTC 2012 i686 GNU/LinuxUbuntu 10.04.4 LTS
仮想マシンに対する操作
仮想マシンに対する操作はvagrantコマンドで一元管理されている。対象となるプロジェクトのフォルダに移動してvagrantコマンドを適切なオプションで実行する。下記は仮想マシンに対して停止、再起動等をするときのオプションである。
- halt
- resume
- suspend
- destroy
サーバーの初期設定
ウェッブサーバーとして利用するために下記ページと同じ設定をする。
ホストからhtmlを取得してみる。正しく取得できた。
wget http://192.168.33.10 --2013-11-08 17:04:35-- http://192.168.33.10/192.168.33.10:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 177 `index.html' に保存中 100%[================================================>] 177 -.-K/s 時間 0s