PR:この記事にはアフィリエイトリンクが含まれます。
チームで同じアプリを動かしているのに、OSやパッケージの差で結果が変わる。開発現場では珍しくありません。Vagrantなら仮想マシンの構成をファイルに残し、共有できる開発環境を整えられます。
Vagrant本を選ぶ際は、コマンド数よりVagrantfileやベースボックスとプロビジョニングの関係まで学べるかを見ます。ここでは日本語の入門書と英語の実践書を紹介します。
| 書名 | 刊行・言語 | 主な収録範囲 | 内容の特徴 |
|---|---|---|---|
実践 Vagrant | 2014年・日本語 | Vagrantfile、プロビジョニング、複数マシン | 基本を順に学びやすい |
Hands-On DevOps with Vagrant | 2018年・英語 | 導入、同期、ネットワーク、複数マシン | 複数のプロビジョナーを扱う |
Vagrant Virtual Development Environment Cookbook | 2015年・英語 | レシピ、クラスター、環境共有 | 課題別に手順を引ける |
Pro Vagrant | 2015年・英語 | VM設定、セキュリティ、ボックス作成 | 実務のワークフローまで扱う |
Vagrantの役割
Vagrantは仮想マシンを管理するツールです。アプリを動かすOSや設定をそろえ、開発者ごとのPC環境による違いを小さくします。チームで共有する開発環境の設計図を動かす役目です。
仮想マシンを動かすソフトはプロバイダーと呼ばれます。代表例はVirtualBoxで、Vagrantの設定と連携してマシンを作成・起動します。Vagrantが環境を定義する一方、プロバイダーが仮想化を担う仕組みです。
ベースボックスを決め、Vagrantfileにマシンやネットワークの条件を書き、必要なソフトを用意します。vagrant upで起動すれば、設定に沿った環境が立ち上がります。
変更点をVagrantfileに記録すれば、同僚も同じ環境を再現しやすくなります。何を用意したかが見えるため、引き継ぎや検証にも役立ちます。
Vagrantfileの芯
Vagrantfileにはボックスや仮想マシンの設定、ネットワーク・共有フォルダー・プロビジョニングをまとめます。環境の情報が集まるので、全体の構成を把握する入口になります。
ボックスはゲストOSを含む仮想マシンを作る出発点です。指定するボックスによってOSや初期状態が決まります。プロバイダーやマシン設定との関係を押さえれば、各項目の役割も読み取りやすくなるでしょう。
ネットワーク設定はホストPCやほかの仮想マシンからアプリへ接続するときに使います。共有フォルダーを設定すると、PC側のソースコードをゲストOSから参照できます。作業を想像しながら読むと、設定の役割を捉えやすいでしょう。
読む順はボックス・仮想マシンの資源・ネットワーク・共有フォルダー・プロビジョニングです。設定行の暗記より、環境のどこに影響するかをつかむと応用しやすいですよ。
開発環境を固定
同じVagrantfileを使っても、ボックスや導入パッケージの指定が曖昧だと、時間がたつにつれて再現が難しくなることがあります。環境を共有するなら、使うOSや設定をどこまでファイルに残すかが大切です。
仮想マシンの中だけに置いたデータは、マシンを作り直すと失われる場合があります。ソースコードなど必要なファイルは、共有フォルダーやバージョン管理を使ってホスト側にも残すと安心です。
vagrant haltは仮想マシンを停止し、vagrant destroyはマシンを削除します。それぞれの影響を把握すれば、作り直すときにも慌てません。起動から状態確認、破棄まで本で追うと実用的です。
プロビジョニング
プロビジョニングは、仮想マシンに必要なソフトや設定を自動で用意する工程です。Vagrantfileから実行できるため、起動後に同じコマンドを手入力する手間を減らせます。環境の再現性を支える仕組みです。
シェルスクリプトなら、普段のコマンドを使って手順を書けます。初学者にも流れが分かりやすい方法です。Chef・Puppet・Ansibleは複数の設定やマシンを管理するときに役立ちます。
方式によって記法と得意分野が異なります。まずシェルでOS更新や開発ツールの導入を自動化し、処理の流れをつかみます。続いて構成管理ツールに進むと、方式ごとの違いを整理できます。
処理の順序や、同じ処理を再実行したときの挙動も確認したい点です。複数マシンでは順序が結果を左右します。具体例のある本なら設定と実行の流れを追いやすくなります。
複数台構成
Webアプリの検証では、アプリ用とデータベース用の仮想マシンを分けることがあります。Vagrantの複数マシン構成は、各マシンの役割やネットワークを一つの環境として定義する仕組みです。
一台構成より接続先や起動順、メモリーの割り当てなど考える点は増えます。その分、本番に近い環境を手元で試しやすく、アプリとMySQLの連携や複数ノードの挙動を調べるときに便利です。
二台構成でアプリからデータベースへ接続する例を追えば、仕組みが具体的になります。Vagrantfileと個別マシンの設定を併せて学ぶと、クラスタ構成の理解にもつながるでしょう。
実践 Vagrant
『実践 Vagrant』はVagrant開発者のMitchell Hashimotoが著し、玉川竜司が訳した日本語書籍です。208ページで、導入から設定へ順に学べます。
VirtualBoxを導入する手順と、VirtualBoxなしでVagrantを使う方法を解説しています。Vagrantfileではバージョン1と2を扱い、マシン設定やボックスも説明しています。日本語で基礎用語を確認できる本です。
プロビジョニングではシェルスクリプト、Chef、Puppetを取り上げています。クラスタのモデル化やMySQLを使った複数マシン構成にも進みます。設定例を通じて、環境全体の組み立て方を学べます。
2014年刊行なので、現在の環境で試すときはVagrantやプロバイダーの現行情報も確認してください。参考価格は税込2,860円で、公式の希望小売価格・定価が目安です。実売価格は時期や店舗で変わります。
運用まで広げる
Alex Braunton著の『Hands-On DevOps with Vagrant』は2018年刊の英語書籍です。232ページで、Windows・macOS・LinuxへのVagrantとVirtualBoxの導入から扱います。システム管理の経験がある人を主な対象にしています。
ボックス・Vagrant Cloud・Vagrantfileをはじめ、ネットワークから複数マシン、プラグインとファイル同期まで幅広く扱います。周辺機能との関係も押さえたい読者が参照できる構成です。
プロビジョニングではシェル・Chef・Ansible・Docker・Puppet・Saltを扱い、複数方式の違いを一冊で見渡せます。DevOpsの実務範囲を広げたい人には、この本をおすすめします。
英語で書かれており、システム管理の経験を持つ読者が対象です。仮想マシンが初めてなら、日本語の入門資料と併用すると読み進めやすいでしょう。関連する技術を広く押さえたい人には情報量があります。
手順を引ける本
『Vagrant Virtual Development Environment Cookbook』はChad O Thompson著の英語書籍で、2015年刊の250ページです。レシピ形式で、再利用可能な開発環境の手順を課題ごとに探せます。
VirtualBoxに加えてVMware Desktopの設定例を収録しています。プロビジョニングの例では、シェル・Puppet・Chef・Salt・Ansibleを扱います。利用するツールの幅を広げたい開発者や管理者に便利です。
複数マシン環境やクラスターの作成に加えて、プロビジョナーを実行する順番も解説しています。アプリ用とデータベース用の環境をどう組み合わせるか、次の一歩を考えるときに参照しやすい内容です。
ソース管理を使った環境共有と、Vagrant環境やボックスの共有も扱います。通読後は作業中に目次から必要なレシピを探せます。英語の手順書に慣れた人なら、実務で活用しやすいでしょう。
実務の流れ
『Pro Vagrant』はWłodzimierz Gajda著の英語書籍で、2015年刊行です。256ページで前付XXI頁を含み、Vagrantの導入・仮想マシンの状態・ゲストOSの設定・ボックス作成へ進みます。
プロビジョニングはShell・Puppet・Chefを扱います。ゲストVMのセキュリティや仮想マシン設定にも触れ、環境を作る側の視点を得られます。
One True WorkflowとGoing Proの章があり、実務で使うワークフローを扱います。導入から運用までの流れをたどれる構成です。
英語の実務的な説明を読み進めたい人におすすめです。設定を試しながら読むと、ボックスやVMの状態管理と開発環境の関係を理解しやすくなります。
結論
日本語でVagrantの基礎からVagrantfile、プロビジョニング、複数マシン構成まで学ぶなら、『実践 Vagrant』をおすすめします。段階を追える構成なので、初めて読む人も取り組みやすいでしょう。
周辺機能や複数のプロビジョナーも知りたい人には、『Hands-On DevOps with Vagrant』がおすすめです。作業中に手順を引きたい人にはCookbookを、ボックス作成やワークフローも学びたい人には『Pro Vagrant』をすすめます。
設定例は、Vagrantfileの項目が仮想マシンのどこに作用するかを確かめながら試すと理解が深まります。刊行後に変わったバージョン情報は公式ドキュメントで補い、今の開発環境に活用してください。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。





