Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Vagrantでアプリケーション開発環境をローカルPCに作ってみよう

インフラ構成管理ツールを使いこなす! コードではじめるサーバ構築 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2015/01/16 14:00

 本連載は、SI業界に入ったばかりの新米業務アプリケーション開発者や、SI業界を目指す学生さんを対象とした、インフラ構成管理ツールを使ってコードでインフラを構築するための講座です。また、インフラエンジニア/システムオペレータで、物理環境でのインフラ構築/運用管理は経験があるけど、プログラミングが苦手という方にも読み進めていただけるように、文法などの解説を入れながら説明します。今回は、Vagrantを使って開発チーム内で統一した開発環境を構築する方法について説明します。

目次

はじめに

 本連載では、インフラの構成をコードで管理するための便利なツールを使って、インフラを構築するための手順をご紹介します。前回は、コードによるインフラ構築の概要とローカルPCに仮想環境を作成するVagrantのセットアップについてご紹介しました。今回は具体的にVagrantを使って開発チーム内で統一した開発環境を構築する方法について説明します。

対象読者

 本記事は、次の方を対象にしています。

  • コードを使ってインフラの構成管理がしたい人
  • ネットワークやLinuxの基礎知識がある人
  • Webシステムの開発環境を構築したことがある人

Vagrantfileによる仮想環境構築

 前回の連載で説明したVagrantfileとは、仮想環境を作成するもとになる設定ファイルです。ここでは、RubyによるVagrantfileの記述の仕方について説明します。

Vagrantfileのひな形作成

 Vagrantには、Vagrantfileのひな形を作成する機能があります。次のvagrant initコマンドを実行するとカレントディレクトリにVagrantfileが自動生成されます。

リスト1 Vagrantfileのひな形作成
E:\vagrant-sample>vagrant init

 自動生成されたVagrantfileをもとに設定値を修正していきます。まず、Vagrantfileの基本となる構文は次のとおりです。

リスト2 Vagrantfileの基本構文(Vagrantfileの抜粋)
# Vagrantfileサンプル (Codezine)
# 1.  APIのバージョン指定
VAGRANTFILE_API_VERSION = "2"

# 2. 仮想環境の設定
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  #ここに仮想環境の設定内容を記述する
  ~中略~
end

 設定ファイルの説明をします。

1.APIのバージョン指定

 VagrantfileのAPIのバージョンを指定します。設定できる値は1または2のいずれかです。Vagrant 1.1以上ではVAGRANTFILE_API_VERSION に"2"を設定してください。

2. 仮想環境の設定

 Rubyではdoとendを1つのブロック(かたまり)として扱います。Vagrantで作成したい仮想環境の設定項目をこのブロックの中に記述していきます。設定出来る項目については大きく分けて次の4つがあります。

Vagrantfileでの設定項目
項目 説明
仮想環境の基本設定 どのBoxを使って仮想環境を作るか、ホスト名などの基本設定
ネットワーク設定 仮想環境のネットワーク構成を設定することで、ホストOSとゲストOS間で通信できる
ファイル同期設定 ホストOSとゲストOS間でフォルダを共有するための設定
プロビジョニング機能設定 シェルスクリプトやChef、Puppetなどのインフラ構成管理ツールを使う機能の設定

 なお、Rubyではコメント文は#で始まります。設定内容の説明などを記述しておくとよいでしょう。

仮想環境の基本設定/ネットワーク設定

 今回のサンプルでは、まず、次のような構成の仮想環境を構築します。

基本設定/ネットワーク設定
基本設定/ネットワーク設定

 では、仮想環境を構築するための基本設定とネットワーク設定について説明します。

リスト3 Vagrantfileの基本設定(Vagrantfileの抜粋)
# 3.仮想環境のもとになるBoxの情報
config.vm.box = "centos65"
config.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box"
# 4.仮想環境のホスト名
config.vm.hostname = "vagranthost"
~中略~

 プログラムの説明をします。

3. 仮想環境のもとになるBoxの情報

 仮想環境を作成するもとになるBoxの名前を指定します。config.vm.box_url=でBoxの入手元のURLを指定しておくと、まだBoxが作成されていない時に自動的にBoxファイルを生成します。

4. 仮想環境のホスト名

 仮想環境のホスト名を指定します。ホスト名にしたい任意の文字列を設定します。ここでは”vagranthost”という名前にしています。

 次にゲストOSと通信を行うためのネットワーク設定を行います。

リスト4 Vagrantfileのネットワーク設定(Vagrantfileの抜粋)
~中略~
# 5. ポートのフォワード設定
config.vm.network "forwarded_port", guest: 80, host: 8080
# 6. プライベートネットワークの設定
config.vm.network "private_network", ip: "192.168.33.10"
# 7. パブリックネットワークの設定
config.vm.network "public_network"
~中略~

 簡単にプログラムの説明をします。

5. ポートのフォワード設定

 ホストOSとゲストOSのポートの転送を設定します。たとえば、ゲストOSの80番ポートをホストOSの8080に転送する場合、上記のように記述します。この設定を行うと、ホストOSでlocalhost:8080にアクセスすると、ゲストOSの80番ポート(http)にアクセスできます。

6. プライベートネットワークの設定

 ゲストOSにプライベートネットワークを設定できます。この例の場合、ホストOSから192.168.33.10のプライベートアドレスでゲストOSにアクセスできます。

7. パブリックネットワークの設定

 ゲストOSにパブリックネットワークを設定できます。プライベートネットワークの設定と同じようにStatic IPを指定できます。また、この例のようにIPを指定しなかったときは、ゲストOSにホストOSと同じネットワーク環境でDHCP用のIPアドレスが付与されます。

 ネットワークの設定はこのほかにもさまざまな指定ができます。詳細については公式サイトのドキュメントを参照してください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 阿佐 志保(アサ シホ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:インフラ構成管理ツールを使いこなす!コードではじめるサーバ構築
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5