【べいぐらんと】

Vagrant とは?

最終更新:
💡 仮想マシンの「レシピ帳」

仮想マシンなどの開発環境の作成・設定を自動化するツール。Vagrantfileに設定を書いておけば、同じ構成の環境を何度でも作り直せる。

📌 このページのポイント
Vagrant — 仮想環境の構築・管理ツール Vagrantfile OS: Ubuntu 22.04 Memory: 2GB Network: private vagrant up プロバイダ VirtualBox VMware / Docker 仮想マシン 開発環境 完成! Vagrantのメリット 環境の統一 チーム全員が同じ環境 環境ごとの差を減らせる コードで管理 設定をGitで共有 再現性が高い 使い捨て可能 vagrant destroy で削除 何度でもやり直せる
Vagrantによる仮想環境管理のイメージ
ひよこ ひよこ
VagrantとDockerって何が違うの?
ペンギン先生 ペンギン先生
Vagrantは主に仮想マシンを扱うツールで、OSを丸ごと起動するよ。Dockerのコンテナは仮想マシンより軽くて、起動や停止がとても速いんだ。一方でVagrantなら、MacやLinuxの上でWindowsの環境を動かすように、OSごと別の環境を用意できる。OSごと再現したいならVM、アプリの実行環境をそろえたいだけならコンテナ、という使い分けが目安だね。ちなみにVagrantはDockerをプロバイダとして使うこともできるよ
ひよこ ひよこ
Vagrantfileって何を書くの?
ペンギン先生 ペンギン先生
使うBox(OSのイメージ)、CPUやメモリ、ネットワーク、ポート転送、初回起動時に実行するセットアップ手順(プロビジョニング)などを書くよ。Vagrantfileはプロジェクトに1つ置いてバージョン管理するものとされていて、vagrant upで作成から設定まで実行されるんだ
ひよこ ひよこ
環境の違いで「自分のPCでは動くのに」ってなるのは防げる?
ペンギン先生 ペンギン先生
公式もその言い訳をなくすことを目標に掲げているよ。みんなが同じVagrantfileから環境を作れば、手作業の差は減らせるんだ。ただ、プロバイダやホストのOS・CPUの違いが残ることはあるから、完全に同じになるとは限らないよ
ひよこ ひよこ
今でもVagrantを使う場面はあるの?
ペンギン先生 ペンギン先生
複数台のVMを組み合わせた検証環境や、コンテナでは再現しにくいOSごとの環境が必要なときに使われているよ。手元でLinuxのVMを手軽に立てるだけなら、LimaやCanonicalのMultipassのような道具も選択肢になるね
ひよこ ひよこ
ライセンスが変わったって聞いたよ
ペンギン先生 ペンギン先生
HashiCorpは2023年8月に、製品の今後のリリースをMPL 2.0からBusiness Source License(BSL)に切り替えると発表したんだ。VagrantもBSLで提供されていて、自分たちの開発で使うぶんには利用できるけど、HashiCorp(現在はIBM)の有償製品と競合する形での提供などには制限があるよ。仕事で使うときは条件を確認しておこうね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Vagrant」って出てきたら「設定ファイルから仮想マシンなどの開発環境を自動で作るツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Vagrant」 = 放浪者
💬 英語のvagrantは「決まった住まいを持たずにさまよう人」という意味だよ。名前の由来を公式が説明した資料は確認できなかったけど、「どこへでも同じ環境を持ち歩ける」イメージで覚えるとわかりやすいね

参考資料

← 用語集にもどる