Vagrant+VirtualBoxを使ったローカル開発環境の構築【実践記録2】

実践記録2

実践記録1でVirtualBoxを使ってローカル開発環境を構築してみましたが、
今回はVagrantという仮想環境構築ツールを使ってVirtualBox上に仮想マシンを構築してみようと思います。

前提

使用する環境にVirtualBoxがインストールされていること。
インストール方法は以下の記事を参照ください。

関連記事

実践記録1VirtualBoxをインストールしてローカル開発環境を構築してみたいと思います。AWSなどのクラウドサービスを使った方が最近は簡単に環境を準備できますが、まずは自分のPCに仮想環境を構築してみようと思います。[…]

Vagrantのインストール

まずは以下からVagrantをインストールしていきます。

Vagrantのインストール

以下の画面が表示されるので、「Download X.X.X」をクリックします。
※「X.X.X」はその時の最新のバージョンが表示されるはずです。

以下の画面でお使いの端末に合ったものを選択してmsiファイルをダウンロードします。
今回はWindowsの64bit版をダウンロードしました。

ダウンロードしてきたmsiファイルをダブルクリックで実行し、
規定値のままインストールを行います。

以下の画面が出てくればインストール完了です。

Finishをクリックすると以下のポップアップが出てきます。
セットアップを完了させるためには再起動が必要です的なことが書いてあるので「Yes」をクリックして再起動を行います。

PCが立ち上がってきたら、早速使っていこうと思いますが、
特にアイコンなどは追加されないようです。

コマンドプロンプトを立ち上げて以下の通りコマンドを入力して、Vagrantがインストールされていることを確認します。

vagrant –version

問題なくインストールされているようです。

Vagrantを使った開発環境の構築

VirtualBoxでは仮想マシンを作成するためにisoファイルを使用しましたが、
VagrantではBoxという独自のファイル?というか機能を使って仮想マシンを作成するようです。

以下からBoxの検索を行うことができます。
自分で作ることもできるようなのでいつかチャレンジしてみようと思います。

VagrantのBox

と、ここまで調べたところで
以前は以下のコマンドでBoxを追加する作業を行っていたようですが、
現在はBoxを追加する手順を省略しても、標準的なBoxであれば自動的に進めるようです。

vagrant box add <ボックスの名前> <BoxイメージのURLかパス>

そのため、以下の様に対応しました。
環境はcentOS7を構築してみます。

mkdir フォルダ名 ⇒ワークスペースの作成
cd ./作成したフォルダ ⇒ワークスペースへ移動
vagrant init centos/7 ⇒vagrantの初期化

vagrantで初期化を行うことでワークスペースに「Vagrantfile」が作成されます。

Vagrantfileの中身は以下です。
※コメントアウトされている箇所は省略しています。

その後以下のコマンドを実行することで、Vagrantfileの内容が実行されて、仮想環境が構築されます。

vagrant up

上記の様に表示されれば、うまくいっています。

といってもこれ読めないですよね(笑)
「Machine booted and ready!」と表示されていればうまくいっていると言えると思います。

いくつか確認してみます。

vagrant box list ⇒Boxを一覧で確認
vagrant ssh ⇒作成した仮想マシンにアクセス

Boxは明示的にダウンロードしていませんが、vagrant upコマンド実行時にダウンロードが行われたようです。
vargrant sshで仮想マシンにアクセスもできました。

またこの状態でVirtualBoxを確認すると
作成した仮想マシン「centos7_demo」が実行されている事が分かります。

Vagrantで使用するコマンド

Qiitaでまとめてくれている方がいらっしゃったのでこちらを参考にしてください。

Qiita記事

ちなみに以下のコマンドでも分かる通り、
仮想マシンの管理とBoxの管理は別物なので注意が必要です。

vagrant destroy = 仮想マシン削除
vagrant box remove = Box削除

つまずいたこと

OpenSSL SSL_read: Connection was reset, errno 10054

Vagrantで「vagrant up」コマンドを実行した際に以下のエラーが発生してコマンドが実行できませんでした。

検索しても「SSL_ERROR_SYSCALL, errno 10054」ばかり、ヒットして若干エラー内容が違う。。。

けどエラーコード一緒だし、原因は似ていると仮定して、
調べてみると、重いファイルをダウンロードしようとしているのに回線が弱いことが原因の模様。

確かに100k/sとかしか出てなかった。。。

しかし、コマンドを再実行すると続きからダウンロードしてくれるので
連続して実行すれば体当たり的ですが、成功するようです。

私の場合は2回実行したらうまくできました。

Chromで対象ファイルをダウンロードしようとしても遅かったので、
vagrantを使用しているからということではなく、Boxを管理している側の帯域の問題なのかもしれません。

.vagrant.d/tmp配下のファイルを削除

ちなみにエラー後に再実行しない場合は「C:/Usrs/ユーザー名/.vagrant.d/tmp」配下に
ダウンロードに失敗したBoxの一時ファイルが残っているようなので、削除してください。

ごみはゴミ箱へ!

長くなってきたので今回はここまでにします。

続きは以下の記事です!

関連記事

実践記録3実践記録2でVirtualBoxとVagrantを使って仮想マシンを作成してみましたが、空っぽな仮想マシンで少し味気なかったのでVagrantfileを編集してもう少し遊んでみようと思います。さほど複雑なことはまだ[…]