2013年9月15日日曜日

Windows8 Proにvargrantを入れてみる(その1)

Hyper-V環境でCentOS環境の構築を試行錯誤することがあるので、便利そうなvargrantを
入れてみることにした。環境は以下の通り。


  • ホストOSはWindows8 Pro 64bit
  • 仮想ソフトは、VirtualBox 4.2.18(Hyper-Vはサポートされていないらしい)
  • GestOSはCentOS6.4 x64でサーバ名はsvr11とする。
  • ついでに、chef solo + knife soloを使ってソフトウェア構築

で試してみる。


1.VirtualBoxをインストール


  https://www.virtualbox.org/wiki/Downloads

 
 からダウンロードして、インストールする。すでにHyper-Vが入っている環境でもあり、インストール時のオプション
 としては、こちらを参考にして、Networkのオプション(BridgeとHost-Only)のチェックを外してみた。

2.vagrantのインストール


 http://downloads.vagrantup.com/


 2013/9/14時点では、1.3.1が最新バージョンだった(Vagrant_1.3.1.msi)。

 今回は「D:\HashiCorp\Vagrant\」にインストールする。
 インストール後に再起動要求された。

3.作業用ターミナルをセットアップ


 vagrantには、mintty.exeが含まれている。ここを参考にして環境整備。

 mintty.exeのショートカットを作成し、リンクに
  D:\HashiCorp\Vagrant\embedded\bin\mintty.exe /bin/bash --login
 を設定。
 あと環境設定として、上記ショートカットから起動したターミナルの中で、以下を実施。

 mintty# cat << __EOF__ > ~/.minttyrc

 mintty# BoldAsFont=no
 mintty# Locale=ja_JP
 mintty# Charset=UTF-8
 mintty# FontHeight=12
 mintty# Columns=100
 mintty# Rows=34
 mintty# Transparency=medium
 mintty# Term=xterm-256color
 mintty# RightClickAction=paste
 mintty# OpaqueWhenFocused=no
 mintty# PgUpDnScroll=yes
 mintty# __EOF__

4.MinGW(MinimalistGnu for Windows)

 chef solo + knife soloのためには、sshとrsyncが必要になる。そのためにvagrantでインストールされる

 MinGWでは含まれないバージョン管理機能を追加でインストールする必要がある。
 ので結局MinGWをインストールする。今回インストールしたのは最新版の0.6.1-beta-20130910-1。 
 インストール先はd:\tools\mingwとした。
 今回vagrantで使うため、上記インストール後に、インストールモジュールをvagrant配下にコピーする。

 mintty# cp -r /d/tools/mingw/. /D/HashiCorp/Vagrant/embedded/


 次に上記ディレクトリを変えたので、mingw-getの動作設定の変更をする(参考にさせて
 もらったのはこのサイトです)。
 以下のファイル2つに対して、
   D:\Tools\MinGW\var\lib\mingw-get\data\defaults.xml
   D:\Tools\MinGW\var\lib\mingw-get\data\profile.xml
  以下の設定変更をする。

  <sysroot subsystem="MSYS" path="%R/msys/1.0" />

 こちらを
  <sysroot subsystem="MSYS" path="/HashiCorp/Vagrant/embedded" />

 に変更する。そのうえで、sshとrsyncをインストールする。minttyを起動し、以下実施


  mintty# mingw-get update

  mintty# mingw-get upgrade
  mintty# mingw-get install msys-openssl msys-openssh
  mintty# mingw-get install msys-rsync msys-tar

5.vagrantで仮想OSを構築する

  まずはテンプレートとなるboxをダウンロードする。boxはこちらにあります。
  今回はCentOS6.4 x86_64を作成する。

  mintty# vagrant box add centos64_x86_64  http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
  mintty# mkdir -p ~/vagrant/centos_svr11
  mintty# cd ~/vagrant/centos_svr11
  mintty# vagrant init centos64_x86_64
  mintty# vagrant up

  これで仮想環境が起動できているはず。。が、うまく動かず、ゲストOS起動時にCPUの仮想化
 機構が使えないので、64bitOSが起動できないという旨のエラーがでてしまう。BIOSを確認した
 が問題なく有効になっている(というかそもそもHyper-Vも使えていたわけだし)。
 ちなみにVirtualBoxのマネージャーで新規OSを構築しようとしても64bitOSが選択できない。
 やはり何か問題があるようで、いろいろ探し回ってみたがこれといった情報も見つからない。
 
 ということで、試しにHyper-Vの機能を無効化してみたところ、、うまくいった。やはりHyper-V
 との相性は今一つということでしょうかね(どちらか選べと)。Hyper-Vで作成した環境を移行
 するかどうか、悩みどころです。とりあえずいったんVirtualBoxで進める(NICもHostOnlyが使え
 たほうが楽、、)

6.ゲストOSに接続してみる

 MinGWで入れたsshで接続してみる。

  mintty# vagrant ssh-config --host svr11 >> ~/.ssh/config

 これでsshで接続するための設定ファイルが出来上がり。

  mintty# ssh svr11

  Last login: Sun Sep 15 13:57:27 2013 from 10.0.2.2
  Welcome to your Vagrant-built virtual machine.
  [vagrant@localhost ~]$

 でログインができた!ちなみにWindows8にインストールしていたteratermで接続してみると、、
    127.0.0.1:2222
  あてで、アカウントはvagrant/vagrantでログインができました。(パスワードは即変更で、、)

(2013/10/8追記)
proxy環境の場合は、、

  mintty#  export HTTP_PROXY=xx.xx.xx:8080

で設定すればOK。


(2013/10/9追記)
ネットワーク環境のせいか

#vagrant box add centos64_x86_64  http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

Downloading or copying the box...
An error occurred while downloading the remote file. The error9)
message, if any, is reproduced below. Please fix this error and try
again.

Recv failure: Connection was reset
  

というエラーが出てしまうことがあるので、その場合は別途BOXをブラウザなどでダウンロードし、ローカルのファイルからADDすることで解決した。

#vagrant box add centos64_x86_64  /d/hashicorp/vagrant/images/CentOS-6.4-x86_64-v20130427.box



0 件のコメント:

コメントを投稿