Windows 10 Technical Preview を Vagrant で起動させる

先日公開され、早速インストールしてみた Windows 10 Technical Preview ですが、
あれこれと試してみた後で手軽に元に戻したいです。

もちろん、仮想化環境で作業を行っているので、そんな時はスナップショットをとればいいのですが、
それでは少し面白みに欠けるので、Vagrant で立ち上げられるような状態にしてみたいと考えて試みました。
というか、それが目的で Virtual Box を利用しました。

1.事前準備

    • Virual Box のインストール
    • Vagrant のインストール(1.6系)

当初、私のPCにインストールされていた Vagrant は 1.5.4 でした。
1.5系までは Vagrant そのままでは Windows をゲストとして扱うことは出来ず、Vagrant-windows というPluginを使う必要があります。
ただ、何度かやってみたのですがうまくこれがインストールできませんでした。

Vagrant としては、1.6系になって Windows を正式に対応しているので、今回はこれを用いることにしました。

Windows Guests – Windows is now a first-class officially supported guest OS for Vagrant, meaning you can now vagrant up development environments running on Windows.
https://www.vagrantup.com/blog/vagrant-1-6.html#features 

2.Windows10 Technical Preview インストール

基本的なインストール方法は前回のエントリーを参照。

2.1 vagrant が操作可能なように、”vagrant”ユーザーを作成する

パスワードも”vagrant”。
OSインストール時のユーザーをそうしてしまってもいいし、後から追加してもいい。
後から追加した場合は、Administrators グループへ追加する

2.2  UACをOFFにする。

msconfig を起動し、 “tools” から “Change UAC settings”を選んで Launch するとOn/Offまでの時間を少し楽できる
Win10x64-10

2.3 WinRM に関する設定を行う

コマンドプロンプトで以下のコマンドを実行する

 

2.4 Virtual Box Guest Additions  のインストール

Virtual BoxのゲストOSウィンドウから 「デバイス」→「Guest Additions のCDイメージを挿入」を選び、
ゲストOS側でインストーラーを起動する。

ただ、Guest Additions のインストールは Windows 10 Technical Preview ではうまくいかなかった。

Win10x64-02

単純にインストーラーを実行すると上記のようにエラーが発生してしまい、そもそもインストーラーがまともに動かない。
こちらへの対策は互換性設定を行うことになる

Win10x64-03

一応、上記のように Windows8 互換で動作するようにしておけばインストーラーは動くには動いた。
ただ、最後の最後までは正しくセットアップされてないように感じる。
この理由は後述。

とりあえず、ゲストOS側の設定は以上となるので、Windows10 をシャットダウンします。
お好みでリモートデスクトップ設定をしておいてもいい。

3. Box の作成と追加

早速作った仮想環境を、Vagrant で扱えるようにパッケージングします

vagrant package で、 base として指定している”Win10x64″は仮想環境の名前になりますが、エラーが発生しました。

このエラーが発生する場合、Vagrant へのパス設定がうまくいっていないので”Vagrant\embedded\mingw\bin”をPATH環境変数に追加します

今度はうまくいったようです。
ちなみに、Package する際に Vagrantfile.txt を指定していますが、これは必ずしも必要ではないと思います。

続いて、作成した”package.box”を Vagrant へ追加するため、 Vagrant box add を実行します

同じ名前でも構わないのですが、なんとなく Box の名前は Win10x64TP としてみました。特に深い意味はありません。

これで一通りの準備が整いました。

4. Vagrant UP へ

適当なフォルダを作って、起動のための下準備を行います。

いつも通り init して、出来上がった Vagrantfile を編集します。

最初の場所で、OS周辺の指定を行います。
また、通常は SSH でやり取りしますが、Windows の場合は WinRM を利用するのでこちらも記述します。
現状ではポート周りの設定もついでに書いておきます。

ちなみに、このvm.communicator の指定を winrm としなかった場合、立ち上がるには立ち上がりますが、応答がないために延々とリトライしてしまいます。

また、通常 Vagrant の場合は SSH で操作を行うために GUI は切られていますが、ここでは Vagrant up した際に Virtual Box の画面を出すようにしてあります。
これは、基本的に最初に作られた Vagrantfile でコメントされているところを戻しただけです。

ようやく準備が出来たので Vagrant up である

見て分かる通り、 Guest Additions 関係のエラーが出ていて、うまく認識できていないことがうかがえる。
ちなみに、当然かもしれないがリモートデスクトップではうまく接続できなかった。

とはいえ、 GUI をONにすればリモートデスクトップはそれほど必要がないのであまり気にしないでいいだろう。
簡単ではあるけれど、 vagrant halt しての停止。 vagrant destroy。そして vagrant up と一通り動いているように見える。

5. 失敗例

実は、Guest Additions を互換性設定せずにインストール。つまり、インストールに失敗したままで進めた場合に、Box のパッケージングや Add までは成功するが、いざ Vagrant up するとエラーになった。

正直、うまくいかなくてまっさらから作り直したので必ずしも Guest Additions が関係しているかは不明だけど、一応参考まで。

うまくいったケースでも、 Guest Additions のインストールは最後までうまくいかなかったので、やりようによってはもう少しちゃんと出来るのかもしれない。

 ※参考サイト

 

実践 Vagrant
実践 Vagrant

posted with amazlet at 14.10.04
Mitchell Hashimoto
オライリージャパン
売り上げランキング: 274,281

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です