george's ぶろぐ

Linux環境(CentOS)をWindows上につくる

1台WindowsPCがあったので、そこにRedmineみたいなWebアプリが稼働する環境を作りたくてLinux環境(CentOS)を構築しました。
今回はその時の手順メモとして、以下の通りWindows上に仮想環境としてLinux環境を構築させたいと思います。

環境

Windows 8.1 (ホストOS)  ※Windows7でも確認済みです
CentOS 6.7 (ゲストOS)
vagrant 1.8.4
VirtualBox 5.0.14

VirtualBoxのインストール

まず仮想環境です。以下からVirtualBoxを落としてきてインストールしましょう。
https://www.virtualbox.org/wiki/Downloads

Vagrantのインストール

次はVagrantです。上記のVirtualBoxなどの仮想マシンの立ち上げや操作を行います。
https://www.vagrantup.com/downloads.html

Vagrant Boxファイルのダウンロード

※注意: 今回は後述の通りChef社のリポジトリからBoxファイルをダウンロードするのでこの手順は不要です。
Boxファイルとは仮想マシンのイメージファイルのことです。
Boxファイルは自分で作ることもできますが、この例では以下の既に用意されているファイルを使用します。
http://www.vagrantbox.es/

以下のコマンドでBoxファイルを追加できます。
vagrant box add ボックス名 URL

URLのところで取得するパスを指定します。
コマンドプロンプトから以下を実行すると、Boxファイルが追加されます。

vagrant box add centos-6.7 https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box

Vagrantfileの作成

C:\Users\user> mkdir mycentos
C:\Users\user> cd mycentos
C:\Users\user\mycentos> vagrant init bento/centos-6.7

initコマンドでVagrantfileを作成されます。 bentoでChef社のhttps://atlas.hashicorp.com/bento/ というリポジトリからBoxファイルを指定しています。
また、今回はmycentosというディレクトリを作成し、そこにVagrantfileを作成しました。
ここが作業ディレクトリになるので、今後vagrantコマンドを実行する際はmycentosに移動する必要があります。

Vagrantファイルの編集

initコマンドを実行したディレクトリに移動し、そこにあるVagrantfileを編集します。

IPの設定(ホストオンリーネットワーク)

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
   config.vm.network "private_network", ip: "192.168.33.10"

“config.vm ~” 行のコメントを外します。
ホストとゲスト間のみ通信可能なネットワークになります。今回の例では、ゲスト側にIPアドレス:192.168.33.10を割り当てています。
これでホスト側からこのIPを使用したPingがゲスト側に届くようになっているハズです。

ポートフォワードの設定
会社の環境の制約上、あれこれ面倒なので外部からのアクセスはポートフォワードするようにしました。

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
   config.vm.network "forwarded_port", guest: 80, host: 8080

外部ネットワークからホストIP+ポート番号(8080)でアクセスすると、ホスト側はそのアクセスをゲストに転送します。 それによって、外部ネットワークから実質的なゲストOSへのアクセスを可能とします。

※詳細は以下を参照してください。
vagrantのネットワークについて - Qiita

仮想マシンの起動

C:\Users\user\mycentos> vagrant up

作業ディレクトリに移動後、vagrant upCentOSを起動します。

仮想マシンへのログイン

1.コマンドプロンプトからそのままログインする方法

vagrant sshでログイン可能ですが、Windowsの場合には通常、SSHクライアントがインストールされていないので以下のようなメッセージが出力され、接続できません。

C:\Users\user>mycentos> vagrant ssh
`ssh` executable not found in any directories in the %PATH% variable. Is an SSH client installed?

2.ターミナルからログインする方法

Windowsの場合はTeraTermPuTTY等のSSHクライアントをインストールしましょう。

PuTTYのインストール

今回はPuTTYよりアクセスすることにしましたので、以下からPuTTYごった煮版をダウンロードします。
http://yebisuya.dip.jp/Software/PuTTY/

PuTTYからの接続

f:id:whippet_818:20170116223226j:plain:w450

  • ホスト名:192.168.33.10
  • ポート:22
  • 接続タイプ:SSH

f:id:whippet_818:20170116223228j:plain:w450

上記にて仮想マシンへのログインが可能になります。

仮想マシンのシャットダウン

C:\Users\user\mycentos> vagrant halt

一旦、ここままで仮想マシンの設定~CentOSの起動・シャットダウンまで出来たことになります。