[Windows] Vagrantでざっくりと仮想環境構築

Vagrantを使う方法をざっくりと説明する。

Windows7 か Windows8.1での環境を想定。 (例はWindows7を使うが、Windows8.1でも大きくは変わらない。)
構築する環境のOSはCentOS。
ターミナルアプリには、PutTTYを使用する。 (PuTTYのインストールや使い方は省く。)

VirtualBoxのインストール

まずは、BIOS画面からVT-X (Intel Virtualization Technology )、もしくはAMD-V がEnableになっているかを確認。
仮想化支援機能といって、これがEnableになっていないと、そもそもVirtualBoxは使えない。

BIOS画面は各PC環境によって、起動方法や画面や項目が違うので、詳しくは説明できないが、要は、VirtulaizationどうのこうのがEnableなっているかを見ればよい。

次に、Windows版VirtualBoxをダウンロード。
2014/11/23で、最新は VirtualBox4.3.20 for Windows hosts 。
今(2014/11/15)だと、最新は、VirtualBox 4.3.18 for Windows hosts となっている。
しかし、VirtualBox4.3.18では、Vagrantで上手くいかない!
色々と試したが、どうも上手くいかない。
ということで、ココから、4.3.16のWindows hostsを落とすか、Windows8.1では4.3.20の動作を確認できているので、最新でもいいかも。

あと、ひたすらYesと答えてインストール。
v_1

これで、VirtualBox単品が入る。
v_2
これだけでも、仮想環境は作れるが、自分でOSをインストールして、もろもろの設定作業などが発生する。
それでもいいのだが、めんどくさい。めんどくさいからVagrantを使うのだ。

Vagrantのインストール

さて、次は、Windows版Vagrantをココからダウンロードする。
今(2014/11/15)だと、1.6.5が最新ですね。(*なんか、今日はやけにダウンロードに時間がかかった・・・。)

そして、これをインストール。
v_3

最後に、再起動が必要となる。
v_4

PowerShellを立ち上げる。(コマンドプロンプトでもいいんだけろけど、こっちのが個人的に好きなので。)

vagrant -v

と入力する。

バージョンが表示されればOK。

次に、Vagrantに、仮想環境(VM)のベースとなるboxを追加する。

Boxの追加

ネット上にあるboxをURLから拾う方法

ココ等に様々なボックスが上がっている。
今回はProviderがVirtualBoxとなっているもので、欲しい物のURLをコピーして使う。
vagrant box add 名前 URL と下記のようにコマンドとなる。

vagrant box add opscode-centos7.0 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box

vagrantがネット上に用意しているboxを拾う方法

vagrant 自身もBoxを探せるサイトをココに用意している。ここも右側にvirtualboxタグが付いている名前を選ぶ。
ここはvagrantが公式にサポートしている(?)っぽいので、vagrant box add 名前 で下記のようなコマンドでいける。

vagrant box add chef/centos-6.5

もし、タグが複数付いている場合は、virtualboxか別のどっちにするかと聞かれる。
v_5

 

さて、boxの追加が済んだら、下記のコマンドを実行して追加されたボックスの一覧をみてみる。

vagrant box list

追加されたBoxが見れるはず。
v_6

 

仮想環境の初期化と設定

仮想環境を構築するフォルダを作成する。
もしくは、仮想化したいプロジェクトフォルダがあれば、それでもよい。
今回は、下記のフォルダがあるとする。
(ex. C:\Project\gomocool \)

cdで移動。

cd C:\Project\gomocool
そして、ここで初期化コマンドを実行する。

vagrant init

すると、Vagrantfileというファイルができる。

このVagrantfileが、どのような感じで、どう環境を立ち上げるかなどを書いた設定ファイルとなる。

とりあえず、このファイルをメモ帳等のテキストエディタで開いてみる。

色々ありすぎて、m9(^Д^)プギャーって感じだが、ざっくりと見とけばOK。
知りたくなったら後で調べよう。

今回重要な点は、以下の2つ。

まず、使用するboxを指定する部分。デフォルトはbaseと入力されている.。

config.vm.box = "base"

これを先ほどの boxl list コマンドで、表示されたboxで使用したい物に書き換える。
こんな感じ。

config.vm.box = "chef/centos-6.5"

 

次に、下記のような項目があるので、頭の#のコメントアウトをとっておく。

config.vm.network “private_network”, ip: “192.168.33.10”

 

仮想環境作成

さて、次にうつる。

再びPowerShellで、先ほどのVagrantfileがあるフォルダで、下記のコマンドを実行する。

vagrant up

これで、上手く立ち上がる。はず・・・。

ここで、立ち上がらない場合は、いくつか問題が感がられる。

  • バージョンの互換性の問題
  • 設定ファイルの問題
  • 秘密鍵の問題
  • VT-X , AMD-V の問題 (BIOSで仮想環境機能がDisableになっている)

とにかく、BIOSの設定と、成功しているバージョンや環境の組み合わせが大事な気がする。

動作確認済環境:
  • Windows8.1 + VirtualBox4.3.28 + Vagrant1.6.5
  • Windows8.1 + VirtualBox4.3.20 + Vagrant1.6.5
  • Windwos8.1 + VirtualBox4.2.26 + Vagran1.6.5
  • Windows 7 + VirtualBox4.3.16 + Vagrant1.6.5

 

立ち上がったかどうかは、下記のコマンドで確認できる。

vagrant status

 

SSHによる接続

んで、上手く立ち上がったら、下記コマンドを実行する。

vagrant ssh

すると、下記のようなメッセージがでる。

`ssh` executable not found in any directories in the %PATH% variable. Is an
SSH client installed? Try installing Cygwin, MinGW or Git, all of which
contain an SSH client. Or use your favorite SSH client with the following
authentication information shown below:

Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: C:/Users/Gomokuro/.vagrant.d/insecure_private_key

WindowsにはSSHコマンドないから繋がらないよ!別方法をとって!とのこと。

なので、Puttyをインストールしている環境と想定してPuttyを使用する。

Puttyで接続する方法は二つある。

  1. ユーザー:vagrant パスワード:vagrant で接続
  2. . 秘密鍵で接続

( 1の方法は上記メッセージに入っていなかったが、実は繋がることを後で知った・・・。)

1の場合

メッセージの通り、127.0.0.1の2222にsshで、ユーザー名vagrant、パスワードvagrantで接続。
以上。

2の場合

PuTTygenが入っているので、そいつを立ち上げる。
v_8

Loadを押して、Private key: で指定されたinsecure_private_keyを読み込む。
v_9

Save private key を押して、ppkタイプの秘密鍵を作る。(*この時、insecure_private_key.ppkという名前は避けたほうがよいかも)

後は、puttyに秘密鍵を登録して、127.0.0.1 へ ポート2222 のユーザー名vagrantでアクセスする。
v_10 v_11

v_12

 

接続すると、デフォルトでの共有ディレクトリは、Linxu側では/vagrant 、ホスト側では、Vagrantfileがある場所になる。
v_13
なので、ここをApacheのドキュメントルートにすると、開発が捗る。

また、suでルートになりた場合のパスワードもvagrant。

 

以上で、Windows7でのVagrantを使った仮想環境の構築は完了。
後は、yum等でApacheなどを入れる。

ちなみに、Apacheのドキュメントルートへは、http://192.168.30.10でつながる。
これは、先ほどVagrantfileで設定したアドレスになる。

しかし、このままでは、いくら簡単に仮想環境が作れたり、削除できたりするとはいえ、毎回、yum等でApacheを入れたりするのがしんどい.。
はChefを使いVagrant up コマンドを打てば、ApacheもPHPもMySQLもインストールされる設定を行う。

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>