LoginSignup
13
20

More than 5 years have passed since last update.

新人向け開発環境知識(Vagrant編)

Posted at

記事執筆時点で、プログラマ歴3週間の雑魚プログラマが記事を書いています。
間違っている可能性がございますので、参考までに御覧ください。
OS X El Capitan‎とWindows7の実行環境にて動作確認済み。

Vagrantとは

Vagrantは、開発環境の構築と共有を簡単に行うためのツール。
実際にサービスを作る時、チームで開発する時など皆が同じ開発環境を構築できるように、仮想環境を立てるときに役立ちます。
Vagrantは同じ環境を再現できるように仮想マシン環境の管理する機能+共有する仕組みを提供してくれます。

[参照したサイト:開発環境の構築・共有を簡単にするVagrant入門]
全くvagrantについて知らない人は、ドットインストールでも見てね。
新人の場合、プロジェクトに加入した時(またはPCをもらった時)に最初に行う環境構築作業になるかと思います。この記事で、新人の仲間の役に少しでも立てればと思います。

準備(Vagrant&VirtualBox)

  1. こちらからVagrantをダウンロード:Vagrantサイト
  2. 上記サイトからダウンロードできたら、dmgファイルを開いて手順通りにインストール
  3. こちらからVirtualBoxをダウンロード:Oracle VM VirtualBox
  4. 上記サイトからダウンロードできたら、dmgファイルを開いて手順通りにインストール

導入

  • Vagrantに複数のVMを立てることを想定し、適当に作業ディレクトリを作りましょう。
    作業ディレクトリ名はボックス名に合わせると良いかと思います。 (今回はubuntu14.04を使用するので'ubuntu_1404'と命名します)
 mkdir ubuntu_1404
 cd ubuntu_1404
  • boxのダウンロードはこちら
    boxの追加方法は、コマンドを叩くか直接ダウンロードするか2通りある。
  • コマンドを叩いてダウンロードする場合。

    1. 上記のサイトから入れたいboxを探し、URLをCOPYする
    2. vagrant box add {title} {url}
      上記コマンドを打つ。{title}は何でも良いが、入れるbox&バージョン名にしておくと管理しやすい。(例:ubuntu1404など)
  • ソースを直接ダウンロードする場合。

    1. 上記のサイトから入れたいboxを探し、Nameの欄にリンクの貼ってあるboxを選び直接ダウンロードしてくる。
    2. 先ほど作成した作業ディレクトリ配下に、ダウンロードしてきたboxを移動する
    3. vagrant box add {title} {path}
      上記コマンドを打つ。{title}は何でも良いが、入れるbox&バージョン名にしておくと管理しやすい。(例:ubuntu1404など)
  • boxを追加できているか確認する
vagrant box list
  • 確認が取れたら、Vagrantfileを生成する。
vagrant init {title}

{title}はboxを追加した時に命名した{title}です(上記例だと'ubuntu1404')

Vagrantfileの設定

box周りの設定

config.vm.box = "ubuntu1404" # boxをaddした時の'title'で使用するboxを指定
config.vm.box_url ="boxを参照するurl" # urlからboxを取得(localに無ければ)
config.vm.box_check_update = false # boxのアップデート

ネットワーク周りの設定

「ポートフォワーディングとは、ローカルコンピュータの特定のポートに送られてきたデータを、別に用意した通信経路を用いてリモートコンピュータの特定ポートに送信すること」らしいです。(参照)

ホスト・ゲスト間でのファイル共有/同期するディレクトリの指定に関しては、
詳細に書かれた記事がございますので、以下を参照して下さい。
[Vagrant]ホスト/ゲスト間のファイルの共有/同期機能(SYNCED FOLDERS)について

# ポートフォワーディングの設定
config.vm.network "forwarded_port", guest: 80, host: 8080

# プライベートネットワークでのIPアドレス指定
config.vm.network "private_network", ip: "127.0.0.1"

# ホスト・ゲスト間でのファイル共有/同期するディレクトリを指定
config.vm.synced_folder "../data", "/vagrant_data"

VMの設定

vb.gui = true # 仮想ウインドウをGUIモードで起動
vb.memory = "1024" # 起動するVBに割くメモリの大きさ

複数vm起動

  config.vm.define :node01 do |cfg|
    cfg.vm.box = "このvm起動用box(重複可)"
    cfg.vm.network :hostonly, "このvm起動用IP(重複不可)"
    cfg.vm.host_name = "node01"
  end

  config.vm.define :node02 do |cfg|
    cfg.vm.box = "このvm起動用box(重複可)"
    cfg.vm.network :hostonly, "このvm起動用IP(重複不可)"
    cfg.vm.host_name = "node02"
  end

  config.vm.define :node03 do |cfg|
    cfg.vm.box = "このvm起動用box(重複可)"
    cfg.vm.network :hostonly, "このvm起動用IP(重複不可)"
    cfg.vm.host_name = "node03"
  end

基本的なところはこんなところでしょうか。
その他にVagrant起動時にDockerコンテナ起動するように構成したりなどもできます。
興味があれば、色々あるんで調べて下さい。

補足

windowsユーザーは、Linux環境構築にあたりTeraTermをインストールすることをオススメします。
macユーザーはiterm2を入れているかと思いますので、iterm2を使っていればOKです。

TeraTermのインストールはこちらから
VagrantとTeraTermの連携は以下を参照。

Vagrantコマンド(よく使うやつ)

操作 コマンド
仮想マシン起動 vagrant up
仮想マシン停止 vagrant halt
仮想マシン再起動 vagrant reload
仮想マシン削除(boxをaddして、initする前の状態に戻す。) vagrant destroy
仮想マシン接続 vagrant ssh
仮想マシン接続状況表示 vagrant ssh-config

上記のコマンド以外は、バージョン確認(vagrant -v)とインストール時に利用したboxコマンドぐらい。
boxコマンドは普段あまり使わないので、都度ググれば良いかな?

追記:VagrantのゲストOSへの簡単proxy設定

会社とか研究室だとproxy周りの設定もしなければ、いけないことがあるかと思います。
そんな時に役立つ設定方法を紹介してくれている記事があります。
新人だとproxy周りでハマることが多いと思うので、参考までにどうぞ。
vagrant-proxyconf で行う ゲストOSへのかんたんProxy設定

ちなみにproxyに関しては、「環境変数の設定」「各ブラウザでのプロキシ設定」は忘れないようにしましょう。

13
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
20