WindowsでVirtualBox

仮想環境とは

ホストOS上にゲストOSを動かすことができます。 例えばWindows上にCentOSの開発環境を作るといった感じです

仮想環境の代表例

仮想環境の代表的なものにVMVirtualBox、Dockerがあります。 VMは商用、VirtualBoxOSSでスナップショットが取れるという特徴があるようです。 Dockerは最近でてきたものですがWindowsにはHyper-vがないと使えないようです。 ここではVirtualBoxを使ってWindows上でLinux環境を作ってみたいと思います。

Vagrantについて

仮想環境とは別にVagrantというのがありますが、これはVirtualBoxのフロントエンドみたいなものって感じですかね 例えばVirtualBoxだけだとISOを落としてとかネットワーク設定とかしないとダメですが、Vagrantはそういうのをコマンド一発でやってくれます。 ここにあるboxファイルを実行するだけで環境をセットアップできますがセキュリティの心配があるのでここでは使いません。 http://www.vagrantbox.es/

インストール

ここからVirtualBoxインストーラーをダウンロードしてWindowsにインストールします https://www.virtualbox.org/

CentOSイメージ

CentOSのISOイメージをダウンロードしておきます https://www.centos.org/

仮想環境を起動

VirtualBoxマネージャーから新規作成をクリック f:id:yonishiy:20161126205306p:plain

名前に「centos」って入れたところタイプとバージョンに適切なものを選んでくれました f:id:yonishiy:20161126205557p:plain

あとは適当に進み、インスタンスを作成します。 f:id:yonishiy:20161127123803p:plain

インスタンス起動時に先ほどダウンロードしたISOイメージを指定します f:id:yonishiy:20161127123817p:plain

ネットワーク設定

構成

ネットワークは少し時間がかかりました。 なのでここでいったんやりたいことを整理します。

  1. Windowsで仮想環境(CentOS)を動かしてます。
  2. WindowsCentOSもそれぞれ独立して外部ネットワークにつなぎたい
  3. WindowsからSSHを介してCentOSにつなぎたい

ここまでで出来ているのは1,2です。 仮想環境をこのような形にすれば1,2,3が実現します。 アダプターの構成は最終的にこうなります。

  • NAT,DHCPを介して外部とやりとりをおこなう口
  • ホストオンリーアダプター。sshの受け口。

GUI

3を対応するためにVirtualBoxGUI上から新しいアダプター(ホストオンリーアダプター)を追加しましょう eth0はすでにGUI上では出来ています。

CentOS

次に仮想環境側の設定をしましょう

  • eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
HWADDR=<macaddress>
GATEWAY="192.168.56.1"
  • eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
HWADDR=<macaddress>
NETWORK="192.168.56.0"
NETMASK="255.255.255.0"
IPADDR="192.168.56.2"

ホストオンリーアダプターのIPアドレスは以下の方法で確認できます。 ファイル→環境設定→ネットワーク→ホストオンリーネットワーク→アイテムをダブルクリック ここでは192.168.56.1でした。 これはGatewayに設定し、IPアドレスは192.168.56.2で設定します。

設定を反映し再起動します

$ ifup eth0
$ ifup eth1
$ shutdown -r now

sshでつなげてみましょう

$ ssh -A 192.168.56.2

参考

仮想環境VirtualBoxでのネットワークの設定 : アシアルブログ 密かなITエンジニアの備忘録:VirtualBoxのCentOS6.5にSSH接続できるようにする Virtualbox上のUbuntuにSSHで接続するための設定手順 | youria blog Vagrantって流行ってるらしいけど何が便利なの? | Developers.IO 11.1 ネットワーク・インタフェースについて 【Windows7(64bit)】VirtualBox+VagrantでCentOSの仮想環境構築 - Qiita VirtualBoxでNAT + Host-Only Network環境を構築する - Qiita Vagrant + VirtualBoxでWindows上に開発環境をサクッと構築する - Qiita CentOS6/CentOS7にPHP5.6/PHP7をyumでインストール - Qiita