Vagrantを使ったローカル開発環境構築メモ

Published: 2016年9月25日 by tomsato

概要

ありきたりな話ですがVirtualBox + Vagrantを使ったローカル開発環境構築方法について

ちなみに今回手元にあるPCはMacなのでMacでの構築方法

用語について

ローカル開発環境

サーバを立てる場合は自前でサーバを購入するかレンタルサーバを購入してサーバを用意する、しかしコスト面でお金や手間がかかることから「ローカル開発環境」として手元のPC内でサーバを立てて開発環境を作成することことができる

VirtualBox

手元のPC上に仮想的なPCを作成して、別のOSをインストールして動作することができる

無料で、WindowsやMacでも使うことができる

Vagrant

VirtualBoxのフロントエンドツールでコマンドラインで簡単に仮想マシンを立ち上げることができる

簡単に複数の仮想マシンを作成することができ、破棄するのも簡単なので動作検証する時によく使われるツールである

VirtualBoxインストール

https://www.virtualbox.org/wiki/Downloads
ダウンロードURLからそれぞれの環境に合わせてダウンロード・インストール
vagrant01
しかし2016/09/25現在Vagrantの最新バージョンである1.8.5には不具合があるらしく1.8.4にするにはVirtualBoxを5.0.X系にしなければならない
上記のURLでは5.1.X系が入ってしまうので5.0.X系をインストールするには下記のURLからダウンロード・インストールする
https://www.virtualbox.org/wiki/Download_Old_Builds_5_0

Vagrantインストール

https://www.vagrantup.com/downloads.html
vagrant02
先程も記述したとおりVagrant 1.8.5は不具合があるので1.8.4を入れる
https://releases.hashicorp.com/vagrant/1.8.4/
Macの場合だとこちらから「vagrant_1.8.4.dmg」をクリックしてダウンロード・インストールする

仮想サーバ立ち上げ – 準備

初回のみBoxの追加が必要なので用意する
Boxとは、仮想マシンを作成する時に必要なOSのディスクイメージファイル等が入った箱のようなもの

Boxのリストはこちらのサイトで確認できるので入れたいOSのBoxを選択してコピーする
http://www.vagrantbox.es/
vagrant03
コピーしたURLをもとにBoxの追加を行う、今回はcentos6.7を入れてみる(完了まで1~2時間ぐらいかかった…)

// boxの名前をcentos67としている
$ vagrant box add centos67 https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box

完了するとBoxが追加されたことがわかる

$ vagrant box list
centos67 (virtualbox, 0)

仮想サーバ立ち上げ

作業ディレクトリの作成

$ mkdir -p ~/vagrant/centos67_01
$ cd ~/vagrant/centos67_01

追加したcentos67 boxを元にVagrantfileを作成

$ vagrant init centos67
$ ls -l
total 8
-rw-r--r-- 1 tomsato staff 3020 9 25 17:07 Vagrantfile

Vagrantfileを少し修正する

$ cp Vagrantfile Vagrantfile.org
$ vim Vagrantfile

差分はこちら

// ipの設定
$ diff Vagrantfile Vagrantfile.org
29c29
< config.vm.network "private_network", ip: "192.168.33.19"
---
> # config.vm.network "private_network", ip: "192.168.33.10"

プライベートネットワークとして「192.168.33.19」を設定した
これについては他のVMとかぶらなければなんでも良さそう

vagrantコマンドでVMの起動

$ vagrant up

VirtualBoxを見てみると実行中になっているのがわかる
vagrant04
作成したVMにSSH接続を行う

// vagrant sshで作成したVMにアクセスできる
$ vagrant ssh
[vagrant@localhost ~]$
// Vagrantfileで設定したipが使われている
[vagrant@localhost ~]$ ifconfig | grep 192.168.33.19
inet addr:192.168.33.19 Bcast:192.168.33.255 Mask:255.255.255.0

不要になった場合の削除

一時停止

$ vagrant suspend

再開

$ vagrant up

仮想マシン停止

$ vagrant halt

仮想マシン削除

$ vagrant destroy

通常のsshでログインできるようにする

先程のやり方だと「vagrant ssh」でログインできるが通常のsshコマンドでログインしたい場合の設定

// 以下のコマンドでssh設定を吐き出してくれるのでそのまま~/.ssh/configに追加する
$ vagrant ssh-config --host myserver >> ~/.ssh/config

これでssh接続できるようになる

$ ssh myserver
Last login: Sun Sep 25 09:34:41 2016 from 10.0.2.2
[vagrant@localhost ~]$

コメントを書く

※ 個別に返信が必要な時のみご記入ください

※ Emailは公開されません

※ 承認されると名前・コメントが下記に表示されます

コメント一覧

最近の投稿

ビジュアルリグレッションテストについてまとめ、ネットで調べると数多くのライブラリがありどれがどんな立ち位置なのか全体像がわかりずらかったのでどんな種類があるのか入門の入門としてまとめます、またPlaywrightを使って実際に触ってみました

社内ツールなどの超小規模なAPIをGolangで実装する際にフレームワークを使うべきかを、実際にnet/httpを使った実装とフレームワークを使った実装を比較することでどれだけ優位性があるかを見ていきたいと思います。今回はフレームワークにはシンプルで使いやすそうなEchoを使うことにします。

vue-pdfを使ってNuxt.jsで作成しているアプリケーションに pdfスライドを表示させるサンプルを作成しました README.md通りに実装してもうまくいかないところがあったのでそのあたり含めてまとめます

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

カテゴリ一覧

タグ一覧