Vagrant で開発環境を作る

最近は、Vgrant で開発環境を作ることが多いのでメモ。

Vagrantは仮想マシンで開発環境構築を簡単にするツールです。
https://www.vagrantup.com/

仮想化ソフトは、 を使用します。
Windowsには、Hiper-Vが入っていますが、VirtualBoxを使用します。
Hiper-Vでもできるけど、VirtualBoxを使用する場合は、Hiper-Vは無効化してください。
Hiper-Vが有効になっていると、VirtualBoxで仮想環境を作成するときに64bitOSが選択できなくなります。

VirtualBoxのインストール

VirtualBox のサイトからダウンロード
https://www.virtualbox.org/wiki/Downloads
ダウンロードしたexeファイルを実行しインストール

Vagrantのインストール

https://www.vagrantup.com/downloads.html
ダウンロードページからインストールするOSのものをダウンロード。
ダウンロードしたmsiファイルを実行しインストール。

Vagrantを使うための準備

はじめに、Vagrantを使って仮想環境を作るためのもとになるフォルダを作成します。
D:\ とか

仮想環境のBOXはすでに作成済みのものが http://www.vagrantbox.es/https://atlas.hashicorp.com/boxes/search で公開されている。
会社で開発環境を作る場合には、自分で作ったほうがいいかもしれない。信頼できると思うけど、なんとなくね。

Vagrantfileを作成

コマンドプロンプトを起動(PowerShellでもどちらでも)
先ほど作成したフォルダへ移動

vagrant init コマンドで vagrant ファイルが作成される。

Vagrantfileを編集

作成された vagrant ファイルをテキストエディタで開きます。
15行目あたりに

というのがあります。
ここの「base」部分をこれから作る環境のわかり易い名前などにする。または自分で作成したbox名にする。
ここでは、CentOS7環境を作るので下記のようにしました。

次にCentOS7のboxファイルをダウンロードするために上記の作成済みBOXファイルのあるサイトから任意のBOXファイルのダウンロードURLを追加します。

vagrant ファイルの変更は、とりあえずこれだけなのでこれで保存します。

自前でBOXを作成している場合は、上記の追記は不要です。
自前でBOXファイルを作成する方法は別に記載します。
自分では、BOXファイルは自前で作成してます。

仮想環境の起動

コマンドで仮想環境を起動させます。

初回の up コマンドでは、vagrant ファイルに記述しているBOXファイルをダウンロードし、仮想環境を構築していきます。
ここで VirtualBox を起動すると新しい仮想環境が作成されるのがわかります。

コマンドラインSSHクライアントの準備(Windowsの場合)

BOXファイルを公開サイトからダウンロードして仮想環境を作った場合、ログインアカウントが不明ですよね。
しかし、Vagrantの仮想環境へは基本的にSSHでログインできるように「vagrant」アカウントが作られているはずです。

Windowsのデフォルト状態では、sshコマンドは存在しないので、接続ができないのでSSHクライアントソフトをインストールする必要があります。
ここでは、Git for Windows をインストールすることにします。
https://git-for-windows.github.io/

下記のサイトにインストールについて詳細がありますので参考に
http://d.hatena.ne.jp/m-hiyama/20140203/1391381365

sshでログイン

インストールした、「Git Bash」ショートカットからsshクライアントを起動する。
vagrantfileのあるディレクトリに「cd」で移動。

これで専用のユーザーを作成すればよいです。
そうすれば、TeraTermやputtyなどでログインできます。

Vagrantの基本コマンド

バーチャルマシンを起動してない場合は、起動する。(コマンドプロンプトで実行)
vagrant up

バーチャルマシンのシャットダウンコマンド
vagrant halt

バーチャルマシン再起動
vagrant reload

バーチャルマシン現状確認
vagrant status

Pluginの確認
vagrant plugin list

Pluginのインストール
vagrant plugin install [プラグイン名]

Vagrant Pluginのインストール

Chefを使う場合に必要なプラグインをインストール

自分の環境ではこの3点をインストールしました。