はじめての Vagrant シリーズVagrantの最初の一歩
はじめに
デザイナーレベルでWordpressを使っていると開発環境はローカルのXAMPPやLAMPで複数のプロジェクトを掛け持ちし、環境はぐちゃぐちゃということが多々あると思います。私もその一人です。
これをやっていると長期的な運用管理の際にバグのもとになったり昔作ったレイヤー構造やグリッド配置がぐちゃぐちゃなPSDをいじるようで、モチベーションが上がらず精神的にも作業効率が悪かったりします。
そんな開発体制は払拭しようと心に誓い、今回Vagrantを勉強し始めたわけです。
Vagrantとは
VagrantはVirtualBoxやVM,EC2を前提とした仮想ソフトウェアCLIツールです。
VagrantとVirtualBox
Vagrantは仮想化ソフトウェアを前提としており、これらの利点と混同されていることがあります。まずはその点について整理します。
仮想化ソフトウェアの利点
仮想化ソフトウェアを導入する経緯としてローカル環境のApacheやPHPをそのまま使うとプロジェクト毎にバージョン管理する際に手間なことが多いため、開発環境をカプセル化したいといったときに利用します。
- ハードウェア非依存
- 開発環境のカプセル化
- スナップショットを使った復元
- テンプレート化
Vagrantの利点
仮想化ソフトウェアにVagrantを加えることで仮想化ソフトウェアだけでは実現できなかった利点が追加されます。
- チームメンバーの開発環境を同一化
- 開発環境と本番環境を同一化
- 数回のコマンドで自動的に開発環境を立ち上げ可能
- 使い捨て可能
- プラグインによる拡張
+Chef
これだけでは、仮想マシンを効率的に管理するだけで、その上で動くミドルウェアについては手動で管理しなければなりません。そこでChef(Chef solo)を使います。Chefを使うことでVagrantで構築した環境にミドルウェアを自動インストールすることができます(この編はまだ薄らと調べただけなので間違っていたら指摘してください)。
この記事がとてもわかりやすかったです。
初心者のための Vagrant, Chef, VirtualBox の関係
インストール
Vagrantをインストールする。
https://www.vagrantup.com/downloads
対応OS
対応OSは4つ、それぞれ32bit / 64bit版が用意されています。
- MacOS X
- Windows
- Linux(DEB)
- Linux(RPM)
インストールチェック
インストールが完了したら、バージョンを確認しておきます。
$ vagrant -v
Vagrant 1.6.3
仮想マシンのインストール
$ vagrant init
を使い、仮想マシンのVagrantfileの作成かリモートのVagrantfileをダウンロードして利用することができます。今回は公式の通りにhashicorp/precise32(Ubuntu 12.04:32bit)使います。
$ vagrant init hashicorp/precise32
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 up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'hashicorp/precise32' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'hashicorp/precise32'
default: URL: https://vagrantcloud.com/hashicorp/precise32
...
SSHアクセス
SSHで簡単にログインできます。
$ vagrant ssh
$ sudo su -
複数の仮想マシンを起動している時は$ vagrant ssh [vm-name]
のように識別子を指定します。
シャットダウン
仮想マシンを終了します。
$ vagrant halt
==> default: Attempting graceful shutdown of VM...
==> default: Removing hosts
仮想マシンの破棄
不要になった仮想マシンは$ vagrant destroy
で破棄することができます。
$ vagrant destroy
default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Forcing shutdown of VM...
==> default: Destroying VM and associated drives...
==> default: Removing hosts
仮想マシンのパッケージ管理
作成した環境をパッケージ化
設定を変更した仮想マシンを$ vagrant package
でパッケージ化できる。 このコマンドで作成されるファイルはVagrantfile
とpackage.box
です。
$ vagrant package
パッケージ管理システム「Vagrantbox.es」と「Vagrant Cloud」
パッケージ管理システムから目的に合ったパッケージを探すことができます。もちろん、自身で作ったパッケージを登録することも可能です。
これらの使い方については勉強できたらまたメモに残したいと思います。 今回はここまでで、次回Wordpressの開発環境をパパッと構築できる「VCCW」について紹介します。
参考サイト
- VagrantとChefで開発スピードを上げる話
- Vagrantの使い方
- VagrantでゲストOSを起動した際に、ホストOSのhostsファイルにゲストOSのホスト名・IPを追加・削除してくれるVagrantプラグイン「Vagrant::Hostsupdater
- Vagrantって流行ってるらしいけど何が便利なの?