vagrantで開発環境を整える
vagrantはdockerのようにべき等性のある開発環境を作ることができます。
dockerはコンテナ型の仮想化であるのに対し、vagrantはVirtualBox、VMWare、Hyper-Vを利用しているのでホスト型とハイパーバイザー型の仮想化です。
ようは、WindowsやMacで簡単にlinux環境を作ったり壊したりできるとても便利なツールです。
ではではWindows環境でCentOS、Fedora、Debian、Ubuntu環境を作ってみます。
インストール
ここから環境にあったものをダウンロードしてインストール
ruby gemもあるがバージョンが古い。
あとVirtualBoxもインストールする
VirtualBoxで64bitのOSが入れられなかくなるのでHyper-VはOFFにします。
sshクライアントはPuTTY ごった煮版を使いました。
試しにubuntu環境を作る
コマンドプロンプトを起動(windowsキー→cmdと打つ→Enter)し以下のコマンドを実行。
> mkdir test
> cd test
> vagrant init hashicorp/precise32
> vagrant up
それぞれのコマンドがやっていることはこんなイメージ。
vagrant init hashicorp/precise32
ubuntuの32bit(hashicorp/precise32)のイメージをダウンロードし、Vagrantfileを初期化。
vagrant up
Vagrantfileを読み込みVirtualBoxでubuntu環境を作成。
仮想環境にログインする
SSHクライアントがないので怒られる。Cygwinなどで起動していればこれでログインできるはず。
今回はPuttyを使ってログインします。必要な情報はこれです。
Host: 127.0.0.1
Port: 2222
Username: vagrant
ホスト名:127.0.0.1
ポート:2222
ユーザ:vagrant
パス:vagrant
でログインできます。
vagrant@precise32:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
ubutu環境の出来上がりです。
他の環境も作る
vagrantはOSを『box』で管理しています。
ではCentOS、Fedora、Debian、Ubuntuのboxをvagrantcloudから取得します。
# ダウンロード
> vagrant box add chef/centos-6.5
> vagrant box add chef/ubuntu-13.10
> vagrant box add chef/debian-7.4
> vagrant box add chef/fedora-20# 確認
>vagrant box list
chef/centos-6.5 (virtualbox, 1.0.0)
chef/debian-7.4 (virtualbox, 1.0.0)
chef/fedora-20 (virtualbox, 1.0.0)
chef/ubuntu-13.10 (virtualbox, 1.0.0)
hashicorp/precise32 (virtualbox, 1.0.0)
Vagrantfileを作る
dev.vm.boxにbox名を指定します。
VirtuabBoxに環境を作る
> vagrant up
VirtuabBoxに環境ができました。
プロビジョニング
デフォルトではscreenやvimが入っていません。Vagrantfileを修正して入れます。
centosだけvimとscreenをインストールする設定をします。
> notepad Vagrantfile
VAGRANTFILE_API_VERSION = "2"dev.vm.provision "shell" do |s|endendendendendend
起動しているboxの設定を読み込みなおすには『up』コマンドではなく『reload』コマンドを使います。
centosのみプロビジョニングも含めて再設定するため、『centos --provision』と書いています。
$ screen -v
Screen version 4.00.03 (FAU) 23-Oct-06
$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr 5 2012 10:17:30)
無事インストールできました。
そのほかコマンド
vagrantの終了
vagrant destroy
vagrantの中断
vagrant suspend
vagrant resume
boxの作成
vagrant package --base CentOS64
※実行前にVirtualBox上でCentOS64という名前の仮想環境を作る必要があります。
boxの削除
vagrant box remove hashicorp/precise32 virtualbox