検証環境を毎回手で作るのは面倒。Vagrantを使えば、環境の構成をコードに書いて、コマンド一発で作って壊せます。入門をまとめます。
Vagrantとは
仮想マシン(VirtualBoxなど)の作成・設定を、設定ファイル(Vagrantfile)に書いて自動化するツールです。「どんなVMを、いくつ、どう設定するか」をコードにしておけば、vagrant up 一発で環境が立ち上がります。
何が嬉しいのか
- 再現性: 同じVagrantfileから、いつでも同じ環境ができる
- 速い: 手動のインストール作業が不要
- 使い捨て:
vagrant destroyで消し、また作り直せる - 共有できる: Vagrantfileを渡せば、他の人も同じ環境を作れる
「検証のたびに1時間かけてVMを作る」が、数分になります。
Vagrantfileの例
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/jammy64"
config.vm.define "web" do |web|
web.vm.hostname = "web01"
web.vm.network "private_network", ip: "192.168.56.11"
end
config.vm.define "db" do |db|
db.vm.hostname = "db01"
db.vm.network "private_network", ip: "192.168.56.12"
end
end
これで、web01とdb01の2台が、指定IPで立ち上がります。
基本コマンド
vagrant up … 環境を起動(初回は自動で作成)
vagrant ssh web … webにSSHログイン
vagrant halt … 停止
vagrant destroy … 削除(きれいに片付ける)
vagrant reload … 設定を変えて再起動
プロビジョニングで初期設定も自動化
起動時にシェルスクリプトやAnsibleを走らせて、初期設定まで自動化できます。
config.vm.provision "shell", inline: "apt update && apt install -y nginx"
これで、起動と同時にnginxまで入った状態になります。
学習での使い方
- 「Web+DBの2台構成」をVagrantfileで用意し、通信を検証
- 壊して作り直す前提で、思い切った実験
- Ansibleの練習台として、複数VMを一気に用意
まとめ
Vagrantは、検証環境を「コードで定義し、一瞬で作って壊す」ためのツールです。再現性があり、使い捨てできるので、学習にも実務の検証にも最適。手作業でVMを作る時代から、環境をコードで管理する時代へ。まずは1台のVagrantfileから始めて、「作っては壊す」の快適さを体験してみてください。