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の動作を確認できているので、最新でもいいかも。
これで、VirtualBox単品が入る。
これだけでも、仮想環境は作れるが、自分でOSをインストールして、もろもろの設定作業などが発生する。
それでもいいのだが、めんどくさい。めんどくさいからVagrantを使うのだ。
Vagrantのインストール
さて、次は、Windows版Vagrantをココからダウンロードする。
今(2014/11/15)だと、1.6.5が最新ですね。(*なんか、今日はやけにダウンロードに時間がかかった・・・。)
PowerShellを立ち上げる。(コマンドプロンプトでもいいんだけろけど、こっちのが個人的に好きなので。)
vagrant -v
と入力する。
バージョンが表示されればOK。
次に、Vagrantに、仮想環境(VM)のベースとなるboxを追加する。
Boxの追加
ネット上にあるboxをURLから拾う方法
ココ等に様々なボックスが上がっている。
今回はProviderがVirtualBoxとなっているもので、欲しい物のURLをコピーして使う。
vagrant box add 名前 URL と下記のようにコマンドとなる。
1 |
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 名前 で下記のようなコマンドでいける。
1 |
vagrant box add chef/centos-6.5 |
もし、タグが複数付いている場合は、virtualboxか別のどっちにするかと聞かれる。
さて、boxの追加が済んだら、下記のコマンドを実行して追加されたボックスの一覧をみてみる。
vagrant box list
仮想環境の初期化と設定
仮想環境を構築するフォルダを作成する。
もしくは、仮想化したいプロジェクトフォルダがあれば、それでもよい。
今回は、下記のフォルダがあるとする。
(ex. C:\Project\gomocool \)
cdで移動。
cd C:\Project\gomocool
そして、ここで初期化コマンドを実行する。
vagrant init
すると、Vagrantfileというファイルができる。
このVagrantfileが、どのような感じで、どう環境を立ち上げるかなどを書いた設定ファイルとなる。
とりあえず、このファイルをメモ帳等のテキストエディタで開いてみる。
色々ありすぎて、m9(^Д^)プギャーって感じだが、ざっくりと見とけばOK。
知りたくなったら後で調べよう。
今回重要な点は、以下の2つ。
まず、使用するboxを指定する部分。デフォルトはbaseと入力されている.。
1 |
config.vm.box = "base" |
これを先ほどの boxl list コマンドで、表示されたboxで使用したい物に書き換える。
こんな感じ。
1 |
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
立ち上がったかどうかは、下記のコマンドで確認できる。
1 |
vagrant status |
SSHによる接続
んで、上手く立ち上がったら、下記コマンドを実行する。
vagrant ssh
すると、下記のようなメッセージがでる。
1 2 3 4 5 6 7 8 9 |
`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で接続する方法は二つある。
- ユーザー:vagrant パスワード:vagrant で接続
- . 秘密鍵で接続
( 1の方法は上記メッセージに入っていなかったが、実は繋がることを後で知った・・・。)
1の場合
メッセージの通り、127.0.0.1の2222にsshで、ユーザー名vagrant、パスワードvagrantで接続。
以上。
2の場合
Loadを押して、Private key: で指定されたinsecure_private_keyを読み込む。
Save private key を押して、ppkタイプの秘密鍵を作る。(*この時、insecure_private_key.ppkという名前は避けたほうがよいかも)
後は、puttyに秘密鍵を登録して、127.0.0.1 へ ポート2222 のユーザー名vagrantでアクセスする。
接続すると、デフォルトでの共有ディレクトリは、Linxu側では/vagrant 、ホスト側では、Vagrantfileがある場所になる。
なので、ここをApacheのドキュメントルートにすると、開発が捗る。
また、suでルートになりた場合のパスワードもvagrant。
以上で、Windows7でのVagrantを使った仮想環境の構築は完了。
後は、yum等でApacheなどを入れる。
ちなみに、Apacheのドキュメントルートへは、http://192.168.30.10でつながる。
これは、先ほどVagrantfileで設定したアドレスになる。
しかし、このままでは、いくら簡単に仮想環境が作れたり、削除できたりするとはいえ、毎回、yum等でApacheを入れたりするのがしんどい.。
次はChefを使いVagrant up コマンドを打てば、ApacheもPHPもMySQLもインストールされる設定を行う。