blog

はじめての Vagrant シリーズVagrantの最初の一歩

    • Ryuichi Nonaka
    この記事は書かれてから1年以上経過しており、内容が古い場合があります。

    はじめに

    デザイナーレベルでWordpressを使っていると開発環境はローカルのXAMPPやLAMPで複数のプロジェクトを掛け持ちし、環境はぐちゃぐちゃということが多々あると思います。私もその一人です。

    これをやっていると長期的な運用管理の際にバグのもとになったり昔作ったレイヤー構造やグリッド配置がぐちゃぐちゃなPSDをいじるようで、モチベーションが上がらず精神的にも作業効率が悪かったりします。

    そんな開発体制は払拭しようと心に誓い、今回Vagrantを勉強し始めたわけです。

    Vagrantとは

    VagrantVirtualBoxや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でパッケージ化できる。 このコマンドで作成されるファイルはVagrantfilepackage.boxです。

    $ vagrant package
    

    パッケージ管理システム「Vagrantbox.es」と「Vagrant Cloud」

    パッケージ管理システムから目的に合ったパッケージを探すことができます。もちろん、自身で作ったパッケージを登録することも可能です。

    これらの使い方については勉強できたらまたメモに残したいと思います。 今回はここまでで、次回Wordpressの開発環境をパパッと構築できる「VCCW」について紹介します。

    参考サイト

    シリーズ

    1. Vagrant + Chef ベースのWordpress Theme / Plugin 開発環境「VCCW」
    2. Vagrantの最初の一歩
    3. GruntでWordpressテーマの開発環境を作る

    コメント・フィードバック