Sachool Engineering Blog

プログラミング学習の記録

新卒エンジニアがVagrantを使ってみた

| Comments

どうも!仙台ファクトリー新卒のkouです。
今回は、Vagrantを使ってみたのでまとめてみたいと思います。
Vagrantを使って仮想OSの立ち上げまでできるようになることを目指します。

1. Vagrantとは

Vagrantの概要

Vagrantは、仮想環境を簡単に構築できるツールです。
仮想化ソフトであるVirtual Boxと併用して使います。
これまで面倒だった環境構築もコマンドを数行打つだけで完了させることができます。

Vagrantを利用することで次のことが実現できます。

  • ローカル環境と本番環境を揃える
  • チームで開発する際の環境を揃える(*構成管理ツールが必要)

他にもいろいろできることはありますが、Vagrantを使うことでの最大の恩恵は 大幅な時間の節約
これに尽きるのではないかと思います。 Vagrantの使い方を覚えることで、環境構築に費やす非生産的な時間から解放されて時間を有効に使えるようになると思います。

Vagrantで押さえておきたい用語

  • Boxファイル
    →Vagrant用にカスタマイズされたOSのイメージファイル。
     ネット上で配布されているものもある。(配布先は後述)自作も可能。
    *BoxファイルがないとVagrantは使えないので注意

  • Vagrantfile
    →仮想マシンの設定が書かれているファイル。
     ネットワーク設定やマシンスペック設定などが書かれている。
    *Vagrant初期化時に生成される  

2.事前準備

Vagrantがインストールされたか確認

Vagrantをインストールしたら、コマンドラインで

1
$ vagrant -v

を入力し、vagrantが正しくインストールされているか確認しましょう。

1
Vagrant 1.8.1

というようにバージョンが表示されれば正常にインストールされています。

*1 Vagrantbox.esは有志が作ったサイト。ここに公開されているBOXファイルの安全性は保障されてないので使用は自己責任で。

3.Vagrantの設定

ここからは、コマンドラインで操作を行います。

1.Boxの追加

1
2
3
4
5
6
7
$ vagrant box add [Box名] [BoxのURL]

例:boxファイルをサーバーから取得する場合
$ vagrant box add centos http://github.com/~~~/centos.box

例:boxファイルをフォルダから指定する場合
$ vagrant box add centos C:/Users/[ユーザー名]/centos.box

2.Boxの追加の確認

1
$ vagrant box list

と入力し、

1
[Box名]

と表示されればVagrantへのBOXの追加は完了です。

3.作業用フォルダの作成

仮想環境用の作業フォルダを作成します。 今回は(ユーザー名)ディレクトリ直下にcentosというフォルダを作成します。

1
2
3
4
5
6
7
8
ユーザーフォルダ直下に移動
$ cd /c/users/[ユーザー名]

centosフォルダを作成
$ mkdir centos

作成したフォルダに移動
$ cd centos

*フォルダの作成は、デスクトップ上で行っても構いません。

vagrantを立ち上げる際は作成したフォルダに移動してから以降のコマンドを実行するようにします

4.vagrantの初期化

1
2
3
$ vagrant init [Box名]
$ vagrant init centos

これで、centosフォルダ上に1.で追加したboxファイルを起動するように設定されたvagrantfileが作成されます。

5.vagrantの立ち上げ

1
$ vagrant up

これでvagrantが起動し、仮想マシンが立ち上がります。

6.仮想マシンへログイン

1
$ vagrant ssh

これで仮想マシンを弄れるようになります。 *windowsのコマンドプロンプトではssh接続ができないので、MinGWなどをインストールすることをお勧めします。

7.vagrantの終了

仮想マシンを弄り終わったら次のコマンドで停止してあげましょう。

1
$ vagrant halt

8.vagrantの削除

仮想マシンが不要になったら次のコマンドで削除できます。

1
$ vagrant destroy

4.まとめ

今回は、簡単なローカル開発環境の構築を行ってみました。 まだまだ使いこなせてませんが、少しずつ使い慣れていきたいと思います。

今後は、Chefも触ってみて環境構築も自動化することを目指したいと思います。 自動化できるところは自動化して生産性UP!

今回は以上です。

Comments