Hyper-VをVagrantで動かすメモ
Vagrantが1.5からHyper-Vをproviderとして利用できるようになりました。
ちょうどDockerに触ってみたかったり、Hyper-Vのためだけに家のPCをWindows 8.1 Proにアップグレードしたりしていたので、これ幸いと触ってみました。
Vagrantのドキュメントにも簡単に書いてありますが、自分向けの作業ログを残します。
What's todo ?
今回は
ことを目的とします。
setup
1. Ubuntu ServerのページからUbuntu 14.04 LTS(Trusty)のisoをダウンロードします 2. Hyper-Vで新しい仮想マシンを作成し、ダウンロードしたUbuntu Serverをインストールします。今回は言語を日本語に設定し、インストール時にOpenSSLサーバーを追加しました 3. アップデートをします
$ apt-get update
4. rootを有効化して、パスワードをvagrantに変更
$ sudo passwd root vagrant
5. bashの日本語が文字化けしていたので .bashrc を編集して対応
$ vim ~/.bashrc # 末尾に以下を追加 # case $TERM in # linux) LANG=C ;; # *) LANG=ja_JP.UTF-8 ;; # esac $ soruce ~/.bashrc
6. sudo をパスワードレスで実行可能に
$ visudo # Defaults:vagrant !requiretty # loginするさいにttyを不要にする # vagrant ALL=(ALL) NOPASSWD:ALL # sudoのパスワード入力を不要にする。末尾に追加すること
$ mkdir .ssh $ chmod 0700 .ssh & cd .ssh $ curl -Lo authorized_keys https://raw.github.com/mitchellh/vagrant/master/keys/v$ agrant.pub $ chmod 0600 authorized_keys
8. SSH接続を高速化
$ sudo vim /etc/ssh/sshd_config # UseDNS no # 末尾に追加
9. 作成した仮想マシンをExport
シャットダウン後にHyper-Vマネージャーから「エクスポート」でエクスポート
10. 仮想マシンのパッケージング
> cd path/to/exported-virtual-machine > rmdir .\Snapshots /r/s # 作成されたディレクトリに移動して Snapshots ディレクトリを削除 > vim metadata.json { "name" : "fumitoito/trusty64jp", "description" : "This box contains Ubuntu 14.04 LTS 64-bit (Japanese locale)", "provider: "hyperv" }
tar でパッケージしようとするとなぜか失敗するので 7zip でパッケージした
> ls trusty64jp.box
11. vagrantに登録してテスト起動
# 管理者権限で実行する必要があります > vagrant box add fumitoito/trusty64jp .\trusty64jp.box > vagrant init trusty64jp > vagrant up --provider hyperv > vagrant ssh # SSHで接続ができればOK!
少々手番は多いですが、そんなに詰まることなくVagrantでHyper-Vにデプロイすることができました。 素敵ですね:)