2012年8月27日月曜日

Vagrantを使って仮想環境を構築してみた

■環境
Windows 7 64bit
Vagrant 1.2.2

■Vagrantとは
バグラントやベイグラントと呼びます
※バグラントとは呼びません、失礼致しました。
Oracle製のVirtualBoxというOSSを使用している仮想化ツールです
VirtualBoxのインストールや設定に関しては過去の記事を参照ください
http://kakakikikeke.blogspot.com/2012/08/oraclewindows7virtualboxvm.html

基本はVirtualBoxで仮想化しローカル環境にVMを作成するツールなのですが
chefやpuppetなどのプロビジョニングツールと連携することでサーバを簡単に壊し、作り直すことができます
テストを流すときとかに何も設定されていない新品のサーバが必要なんてケース多々あると思いますがそんなときに新品のサーバを簡単に作成することができます
詳細はこちら
http://vagrantup.com/v1/docs/getting-started/why.html

Vagrantのバージョンアップに伴いドキュメントもバージョンアップしているようです
http://docs.vagrantup.com/v2/why-vagrant/index.html

■インストール
http://downloads.vagrantup.com/tags/v1.0.3
ダウンロードページも変更しているようなので更新しました
http://www.vagrantup.com/downloads
上記からwindows用のインストーラをダウンロードします

インストールすると自動で環境変数にパスが登録されます
コマンドプロンプトを開いてvagrant -vでバージョンが表示されることを確認します
※C:\HashiCorp\Vagrant\binにインストールされるようです

■Vagrant起動からSSHログインまで
cd C:\vagrant\vagrant

vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
ローカル環境にboxファイルを追加します
vagrantでVMを起動するにはこのboxファイルが必要になります
vagrant init lucid32
追加したboxファイルを初期化します
初期化するとVagrantfileというファイルが作成されます
VagrantでVMを起動するためのルールが記載されているファイルでVMを起動するためにVagrantfileが必要となります
vagrant up
ここでローカルPC上にVMが立ち上がります
初回はboxファイルをダウンロードするので時間がかかります
vagrant box list
登録しているVM(boxファイル)の一覧が表示されます
vagrant ssh
でログインするsshのホスト情報が確認できます
windowsからpoderosaやteraterm等でローカルPCにsshします
自分は以下でsshできました
---
IPアドレス:127.0.0.1
ポート:2222
ID/PW:vagrant/vagrant
---
vagrant halt
でVMをシャットダウンできます
vagrant destroy
でVMを削除します、haltは電源をOFFする動作でdestroyは削除するためサーバ等で操作した設定等はすべて失われます
vagrant -h
他のvagrantコマンドを見ることができます

■Vagrantのアップデート
アップデートしたいバージョンのインストーラをダウンロードサイトから持ってきてインストールすればアップデートできます
http://downloads.vagrantup.com/tags/v1.2.2
過去のバージョンをダウンロードするサイトも変わっていたので更新しました
http://www.vagrantup.com/downloads-archive.html

■Tips
上記に説明では「box add」->「init」->「up」という手順で実施しましたが
vagrant init hashicorp/precise64
vagrant up
の2つの手順でもVMを起動することができます
バージョン1.5(だと思うのですが、間違っていたらすいません)からVagrantCloudという機能ができてここでboxファイルを共有することができるようになりました
その機能のおかげで init の引数にVagrantCloudで公開されている box 名を「username/box_file_name」という形式で指定すると box add と init の処理を同時に実行してくれます
この段階でboxファイルをダウンロードするので、vagrant init hashicorp/precise64 の完了には時間がかかります

0 件のコメント:

コメントを投稿