Vagrantを用いた仮想開発環境の構築ガイド

Vagrantは、開発およびテスト環境の自動化を実現するツールです。設定ファイルを基に仮想マシンを構築し、必要なソフトウェアを自動的にインストールします。このツールは、複数のプロバイダー(VirtualBox、VMware、AWSなど)をサポートし、プロジェクトごとに一貫した環境を構築することを可能にします。

開発環境の構築では、異なるプログラミング言語や依存関係の管理が煩雑になることが一般的です。VagrantはVagrantfileを用いて環境定義をコード化し、プロビジョニングスクリプトで自動化します。これにより、チーム全体で標準化された開発環境を容易に共有できます。テスト環境においては、分散システムの統合テストに必要な複数の仮想マシンを単一ホスト上で起動し、自動化テストを実行可能です。さらにクラウドプロバイダー(AWS、OpenStack)を活用することで、大規模なテスト環境を構築することも可能です。

主な概念

  • プロバイダー:仮想マシンの実行を担当するソフトウェア。VirtualBoxやVMwareが代表例です。
  • ボックス:事前構築された仮想マシンイメージ。Vagrant Cloudや独自作成したボックスを使用できます。
  • プロジェクト:Vagrantfileが配置されたディレクトリ。子プロジェクトの設定は親を継承・上書き可能です。
  • Vagrantfile:Rubyで記述される設定ファイル。ボックス指定、ネットワーク設定、プロビジョニング設定が含まれます。
  • プロビジョニング:VM起動後に実行される初期設定。シェルスクリプト、Chef、Puppetなどで実装可能です。
  • プラグイン:Vagrantの機能拡張を可能にします。AWSやOpenStackのサポートはプラグインを通じて提供されます。

基本手順

まずプロバイダーとしてVirtualBoxをインストールします。
VirtualBox公式ダウンロード

Vagrantの最新バージョンをダウンロードします。Ubuntuリポジトリのバージョンは古いため、直接ダウンロードが推奨されます。
Vagrant公式ダウンロード

プロジェクトディレクトリを作成し、初期化します。

mkdir dev-environment
cd dev-environment
vagrant init ubuntu/focal64 https://app.vagrantup.com/ubuntu/boxes/focal64

生成されたVagrantfileにプロビジョニング設定を追加します。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/focal64"
  config.vm.box_url = "https://app.vagrantup.com/ubuntu/boxes/focal64"
  config.vm.provision "shell", path: "setup.sh"
end

プロビジョニングスクリプトを作成します。

#!/bin/bash
sudo apt update
sudo apt install -y nginx php-fpm

仮想マシンを起動します。

vagrant up

接続して確認します。

vagrant ssh
ls /vagrant

プロビジョニングを再実行する場合は以下のコマンドを使用します。

vagrant provision

仮想マシンの終了方法:

  • suspend:状態を保存して一時停止
  • halt:通常のシャットダウン
  • destroy:VMを完全に削除

タグ: vagrant VirtualBox provisioning shell-script virtual-machine

5月18日 21:56 投稿