##概要
開発をしていると、サービスの動作確認をするためにチームメンバー全員に同じローカル開発環境を用意したいと思うことはないでしょうか。
この記事は、ローカル開発環境のベースとなる仮想サーバを簡単に用意できるVagrantというツールについて、メリットや利用方法をまとめたものです。
この記事で伝えたいこと
- Vagrantを利用するメリット
- Vagrantの基本的な利用方法
Vagrantとは
Vagrantとは簡単にいうと、端末内で仮想サーバーを管理することができるツールです。Vagrantfileというファイルに仮想サーバーの設定を記述して、コマンドによって設定した仮想サーバーを管理(起動・停止・破棄)します。
※ インストールの手順は以下の記事を参考にしてください。
【設定方法】配布可能な環境を簡単に構築することができるVagrantをMacのHomebrewでサクッとインストールする手順 | とあるクリエイターのエンジニアブログ
Vagrantのメリット
他にも仮想サーバを構築する方法はありますが、その上でVagrantを利用する理由は何でしょうか?
私が思うVagrantを利用する大きなメリットは以下の2つです。
-
誰でも同じ仮想サーバーを簡単に用意できる
VagrantはVagrantfileに記述した設定を元に、コマンドを実行して仮想サーバーを起動します。言い換えれば、同じVagrantfileさえあれば誰でも同じ仮想サーバーを起動できます。 -
複数台の仮想サーバーを一括で管理できる
また、Vagrantfileには複数台の仮想サーバーについて設定を記述することもできます。
例えば、APサーバーを3台、DBサーバーを1台立ち上げたいという場合にも、記述した設定をコマンドで一括で管理(起動・破棄など)できます。
Vagrantによるローカル開発環境構築
以下では、実際にVagrantで仮想サーバーを起動するまでの手順を簡単に説明します。
Vagrantfileの作成
以下の内容のファイルを、Vagrantfileという名前で作成します。
以下ファイルでは、ホスト名、box(OSのイメージ)、IPアドレスを設定しています。
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.define "sample-ap" do |server|
server.vm.box = "generic/ubuntu2004"
server.vm.network "private_network", ip: "192.168.33.21"
end
config.vm.define "sample-db" do |server|
server.vm.box = "generic/ubuntu2004"
server.vm.network "private_network", ip: "192.168.33.22"
end
end
チームで開発している場合は作成したファイルをgitで管理することで、チームメンバー全員が同様の環境を構築できます。
仮想サーバーの起動・疎通確認
Vagrantfileがあるディレクトリでvagrant up
を実行すると、Vagrantfileに設定を記述した仮想サーバが一括で起動します。
仮想サーバー起動後はデフォルトで作成されるvagrant
ユーザーを利用して、vagrant ssh ホスト名
で外部のサーバーと同様に接続して利用できます。
# 仮想サーバーを起動
$ vagrant up
# 仮想サーバーに接続
$ vagrant ssh sample-ap
まとめ
ここまで、Vagrantのメリットと基本的な利用方法について説明しました。
改めて、自分が思うVagrantを利用するメリットは以下の通りです。
- gitでVagrantfileを管理することで、チームメンバー全員が同じ仮想サーバーを簡単に用意できる
- 設定ファイルを利用することで、複数台の仮想サーバーでもコマンドで一括管理できる
皆さんもVagrantを利用して開発環境を整えてみてはいかがでしょうか。
補足
- Vagrantでは開発環境のベースとなる仮想サーバーのみを作成します。そのため実際に動作確認に利用するには、Ansibleなどの構成管理ツールでツールのインストール、アプリのデプロイなどを行う必要があります。