Vagrant環境をWindowsに構築してみた結果あれこれ

##ここで書いていること
ざっくり言うと単なる備忘録です。
Windows上にVagrantで立てた仮想マシン触れるまで、疑問やらコケたとこやらちょこちょこあったので、その記録です。
なので時系列的に書いていて感想とかもごちゃごちゃ書いていて、整理された技術情報にはなってません。

LinuxかMacだかのには情報結構あるけど、Windowsだとたくさんはないっぽいので、トライ＆エラーの記録書くだけでも役に立つかなと思って書いてます。
（色々と素人臭い感じでコケてると思うので、恥ずかしい限りですが。。。）

VM環境は、

* Vagrant 1.7.2
* VirtualBox 4.3.24
* VMのOS（box)：CentOS7.0 x86_64

で作りました。

インストールの方法とか、その他諸々の手順的な情報などは他の方に委ねます。

あと、この記事作りながらも調べ物してたら、Windowsでのスタートガイドとして良いのがあったので、リンク貼っておきます。
これからWindows環境にVagrantやってみたい人は、全体の流れとかを理解しやすくてとても参考になると思います。

http://qiita.com/hiroyasu55/items/11a4c996b0c62450940f


##背景（ほぼ自分の状況整理のための内容）
ローカルPCが、色々ツールをインストールしたり何に使ってたかわからないデータがあちこちに散在してたりムダがいっぱい。環境のメンテナンスが面倒極まりない。（使わなくなったものを消して、要るものを作ってというのをシークエンシャルにできれば良いが、それができなくて前に何入れてたとか作ったものとかぐちゃぐちゃになってきてる）
そろそろお試し環境と、ちゃんと利用する環境とを区別したい。
でも現状は、試行環境を用意するのに時間かかったり、スペックの問題で大量にはVM作って置いとけない。人に依頼して、別にサーバーとかを用意してもらったりもしてるけど、それだとちょっと試したいだけとか、トラブルあって調べ物するときとか、いちいち依頼するのがタイムラグとか説明とかが面倒。
必要な環境を必要な分だけ必要なときに作れるようにしたい。それができると今よりずっとスッキリする。はず。あとChefとかも触ってみたいし。
で、Vagrant環境を作ってみよう、という流れ。


##私 VS コケさせたなにか(Painと対応内容)
__その1 : VS Windows server 2008 R2 on VMware ESX in LAN__

ローカルPC（Windows7）からリモートデスクトップでサーバーにつないでたんだけど、試しに作ったVMのネットワーク設定を、NATからブリッジに変更したら、リモート接続できなくなった。
ESXの運用管理してる人にヘルプ投げたら、仮想環境の上に仮想環境入れるのサポートしてない事多いけど大丈夫かと脅された。それとわりとクリティカルなシステムと絡んでややこしいので、ネットワーク関係は安易に変更しないでくれ、と。。。

VM上にVM立てるのをNested VMとか言うらしいんだけど、ネットワークやらマシンリソースやら色々ややこしいらしい。
自分で簡単にいじれてトータルでの管理の手間を減らしたかったのに、これだと余計な手間が増えそうなので止める。

ローカルPCにVagrant+VirtualBox入れることにした。


__その2 : VS Unknown SSL protocol error__

VirtualBoxとVagrantのインストールが終わって、Vagrantのboxを追加しようと、コマンドプロンプトで下記コマンドを実行するも、エラー発生。

~~~~
vagrant box add centos7 https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box

~~~~

出てきたエラー：
Unknown SSL protocol error in connection to [hostnema]:443

コマンドプロンプトでSSL通信できない？アクセス時の認証ができてない？

addの際にHTTPSもサポートしてると言っているけど、、、わからん！
http://lab.raqda.com/vagrant/cli/box.html

Boxファイルがあれば良いはずなのでこのエラーはひとまず放っといて、ブラウザからアクセスしてダウンロードしてから、ローカルファイルを指定してaddしたら成功した。

~~~~
vagrant box add centos7 file:///E:\vagrant\vagrantBox\centos7.box
~~~~


__その3 : VS BitLocker__

Windowsのそもそもの設定で仮想環境を使用できるように、「仮想化支援機構(Virtualization Technology)」をオンにしておかないといけない。

BIOSで設定どうなっているか見に行って、オンになっていたのでBIOSの設定変更キャンセルで終了したら、決まりで入れてないといけないBitLockerが、BIOS終了の選択後に動いて、ドライブ暗号化の回復キーを入れろと言ってきた。
設定変えてないのに。
そして別の人が回復キーを管理してるので自分ではわからない。
キーの入力をしない方の選択肢で進めると修復がだらだらと走って、途方に暮れる。
しばらくしたら再起動がかかって、普通にWindowsが起動できたので放置することに。（なにこのムダな時間。と、床に転がりたくなったのはこの時）


__その4 : VS Failed to mount folders in Linux guest エラー__

ゲスト/ホストの共有フォルダの設定がうまくできなかったみたいで、ちょっと調べたら色々対処方法でてきてどれを試そうか考えるのだいぶしんどくなってきていたので、無視して先に進めた。

参考記事
http://befool.co.jp/blog/jiska/first-aid-for-vagrant-and-virtualbox-4-dot-3-10/
http://www.utano.jp/entry/2014/11/vagrant_guest_additions_update_error


__その5 : VS SSH__

VMができてるはずなので、sshでアクセスしようとするも、使えるSSHクライアントが見つからんとかなんとかで怒られる。どうやらWindowsのコマンドプロンプトだと、デフォルトではSSHでアクセスできない。（Linux系だと問題ない！！）

TeraTermとかのクライアント入れようかとも思ったけど、Git Shellが入れてあったのでやってみたら、繋がった。

でもこれだと、なぜかvimが起動できない。
なぜなのか。もう考えるのだいぶめんどくさい。
ここもほっておく。


__その6 : VS Vagrant initもしくはCentOSというかLinux__ 

ようやく”vagrant SSH”で、作ったVMにアクセスできた。
で、VirtualBox側からも触ろうと思って、VM起動させたんだけどもログイン確認が出てきた。
まぁそれはそうなんだけど、Vagrant up→Vagrant SSHでつなげると自動でログインされたので気にしてなかった。「俺は誰なんだ!?」状態になって止まる。
どうもデフォルトはvagrantでユーザーを作るらしい（パスワードも一緒）ので、それでVMにログインした。


##検討課題

__Vagrantで生じた疑問とか当初の目的のために不足していること__

* ESXとかのハイパーバイザー型VMにVagrant利用したいときの取り回し
* boxダウンロードの際に出たSSLエラーの原因は何か、対処策は何か
* Boxはどんな情報をもっているのか、どうやって作るのか（ミドルウェアとかのインストールを自動化するにはどうすればよいか）
* ホストOSとゲストOSの共有フォルダのマウント（できたほうが便利）
* vagrantfileで設定可能な事は何か
* 利用した各種vagrantコマンドの詳細（addしたboxはどこで管理されてるのか、など）
* お試しで利用してきた/これから利用したいアプリとかツールの整理
* WindowsのVM作る

##コメント

すごい雑で、しかも自分のショボさを晒すだけの記事では、と陰鬱な気分になってしまった。
頑張ろ。。。