Vagrantはじめました。

  • Pocket
  • このエントリーをはてなブックマークに追加
  • 162 follow us in feedly

まえがき

Vargrantを色々触ってみたので導入メモを残しておきます。

今回は、VirtualBoxのインストール、Vagrantのインストール、仮想マシンの作成、WEBサーバー、ファイル共有などを進めていき、簡単にWEBサイト作成、閲覧できる環境まで持って行こうと思います

開発環境

  • ホストOS MacOSX
  • Vagrant 1.2.7
  • 仮想マシン VirtualBoxを利用

Vagrantについて

あらかじめVagrantについて簡単にまとめておく

  • VirtualBox VMWareなど仮想マシンの実行環境をさらにラップし、簡単に仮想マシンの作成・起動・停止・削除などを行うことができる
  • 仮想マシンをラップするメリットとしては、複数の仮想環境の構築が用意にでき、誰のマシン(OSとかも関係なしに)同じ環境の仮想環境の構築を用意にできる点。これによって、『俺の環境では動いてたのに!』みたいなケースを回避できる
  • Vagrantで構築できる開発環境はLinux,WindowsServerなど色々
  • BOX(仮想マシンの雛形)がネット上にたくさんあり、豊富なリソースから、容易に仮想マシンを作成できるようになっている
  • 基本的にCUI環境でコマンドを実行していく。

では、そろそろ始めていきましょうかね

VirtualBoxのインストール

今回は、MacのVirtualBoxを使用していく、VMWareでもできるようになったようだが、VMware用のプラグインの導入が必要らしくかつ有料(7,000円?)らしいので今回は断念

VirtualBox自体は公式のホームページからダウンロードし、インストールする

https://www.virtualbox.org/

https://www.virtualbox.org/

今回は最新版の4.2.16を使用

Vagrantのインストール

Vagrantも公式のHPからダウンロードしてインストール。あとで調べるとgemを利用してインストールもできるようなのでそのへんは好みで。

http://www.vagrantup.com/

http://www.vagrantup.com/

これも最新版を入れておいた、バージョンは1.2.7

インストールをターミナルでコマンドを実行して確認しておくといいでしょう。

vagrant -v

BOX(テンプレート・雛形)を追加する

まずBOXの追加をしてみる。BOXをネット上で探すにはvagrantbox.esとゆうサイトを利用するといいであろう。いろんなディストリビューションの様々な構成のテンプレートを見つけることができる

では、実際に追加してみる。今回はCentOS 64bit 6.4で試す。centos64とゆう名前で管理することにします

実際にhttpでダウンロードしているので結構時間はかかるので気長に待ちましょう

# vagrant box add {BOX名} {URL}
vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

BOXの確認

追加したBOXを確認するコマンド


vagrant box list

centos64  (virtualbox)

仮想マシンを作成する

では、BOXを追加したので仮想マシンを作って見たいと思います。今までVirtualBoxやVMWareだったら、GUIでホスト名決めて、インストールのメディア選んでとかでやっていたが、Vagrantを利用するとターミナルのコマンドのみでばしっと出来上がってしまう。

# 任意の場所に仮想マシン用のディレクトリを作成し、中に入る
mkdir centos64vm
cd centos64vm

# っで以下のコマンドを
# vagrant init BOX(テンプレート)名 
vagrant init centos64

# これでVagrantfileというものが作成される、そして以下のコマンドを実行
vagrant up

これでVirtualBox内に仮想マシンが作成されたと思います。VirtualBOXを起動してみてみましょう。以上、これだけです

VirtualBox_1

仮想マシンを操作するコマンド

Vagrantを用いることで仮想マシンの起動、停止などを操作をホストから行うことができます。基本的なものをメモ

==仮想マシンの状態を操作するコマンド=
#状態の確認
vagrant status

#サスペンド&再開
vagrant suspends
vagrant resume

#終了&起動
vagrant halt
vagrant up

#再起動
vagrant reload

#削除
vagrant destroy
デストロイしてもVagrantfileは残るのでupしてすぐにもどすことはできる

仮想マシンにログイン

では、実際に仮想マシン内に入ってみましょう。sshでログインするようになっています。

vagrant ssh

すると、vagrantとゆうユーザーでログインできたと思います。終了したいときは仮想マシン内でexit としましょう。

ここまでで実際にVagrantで構築した仮想環境を操作することが出来ました。次は、仮想マシン内にWEBサーバーを構築してみようとおもいます

WEBサーバー(Apache)をインストール

vagrantにログインしている状態で


sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on
sudo service iptables stop
sudo chkconfig iptables off 
#iptablesが邪魔なのでオフにしておく


==表示させるhtmlを用意==
vi /var/www/html/index.html
# 中は適当に

これでWEBサーバー側の設定は終了。exitしてホストマシンに戻っておきましょう。

IPアドレスを設定する

次にホストマシンから仮想マシンにIPアドレスを設定してみます。

仮想マシンを作成したディレクトリに『Vagrantfile』とゆうファイルができていると重います。こいつに色々設定を書いてあげることで仮想マシンに反映することができます。

ちなみにVagrantfileはRubyで書かれているようです。

==IPアドレスを設定する==
$ vim Vagrantfile

# config.vm.network :private_network, ip: "192.168.33.10" とゆう項目を探してみる。
# これが初期ではコメントになっているのでコメントを外してあげて保存

↑でIPアドレスを振ってあげて仮想マシンの再起動をします

vagrant reload

ブラウザでみてみる

では割り振ったIPアドレスを利用して、WEBサイトを表示してみます。

“http://192.168.33.10/” にブラウザでアクセスしてみます

HelloVagrant_1

キタ――(゚∀゚)――!!

仮想マシン内でIPアドレスを確認

さて、仮想マシン内にsysconfig/network-script/~が作成されたのか気になったので、見に行ってきました。

# 仮想マシンにログイン
vagrant ssh

# IPアドレス調べる
ifconfig

# どうやらeth1に上で設定したIPアドレスが割り振られているのが確認できる

#ifcfg-eth1もしっかり生成されているみたい
vi /etc/sysconfig/network-scripts/ifcfg-eth1 


#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
BOOTPROTO=none
IPADDR=192.168.33.10
NETMASK=255.255.255.0
DEVICE=eth1
PEERDNS=no
#VAGRANT-END


んーベリーグッド

ファイルの共有

ファイル共有に関して

最後に、ローカルマシンと仮想マシンのファイル共有に関して触れておこうと思う。

ファイル共有を利用することで、ローカルマシンでいろんなツール使ったりしてファイルを作って、それを仮想マシンで簡単にテスト!なんてことができて非常に便利です。

今回はWEBサーバーのドキュメントルートを共有化してみようと思います。

ファイル共有の仕組み

仕組みとしては、ローカルマシンには仮想マシン用のディレクトリ、今回だと centos64vm(Vagrantfileが作られたフォルダ)内と仮想マシンの『/vagrant』とゆうディレクトリがあるのだが、この2つが共有されているのだ。

ためしに仮想マシンで ls /vagrant としてみるとVagrantfileがいるはずだ

これを利用して/var/www/htmlにシンボリックリンクを貼ってみようと思う

共有フォルダにリンクを貼る

仮想マシンにログインして、コマンド実行

sudo rm -rf /var/www/html
sudo ln -fs /vagrant /var/www/html

このあとローカルマシンでファイルを作成する

vim index.html
# 中は適当に

これでもう一度ブラウザで仮想マシンのアドレスを見にいくと、ちゃんと表示されているのが確認できる

HelloVagrant_2

あとがき

とりあえず、今回はこんなもので、他にも便利な使い方がいっぱいあるはずなので、遊んでみようと思います(^_^)/

関連記事

new-relic-1new-relic-1.png

無料で使えるサーバー監視サービス『New Relic』を使ってみる

NewRelicに関して [browser-shot url="htt...

記事を読む

Vagrantの仮想マシン内のRubyバージョンを2.0にした時のメモ

まえがき 結構久しぶりのめも。ここ1周間モンハン4で忙しかったためブ...

記事を読む

keitarou_keitarou__Users_keitarou_Dropbox_memo_—_vim_—_178×70-8

Vimの検索・置換コマンドに関するメモ

まえがき 前回の移動系のコマンドのメモに引き続き、今回は検索・置換の...

記事を読む

LinuxのiptablesとSELinuxを停止・無効化する

まえがき LinuxでVMなり、新しいホスト立てた時、自分はまずipt...

記事を読む

owncloud-1owncloud-1.png

ownCloudで自分だけのDropboxのような容量無制限オンラインストレージサービスを作る!!

まえがき [browser-shot url="http://ownc...

記事を読む

新着記事

no image

PHPでRubyのirbっぽいインタラクティブなスクリプトが実行できる「boris」

まえがき PHPでもRubyのirbみたいなことがしたくて探してみたと...

記事を読む

2015年の抱負と去年の振り返り〜よちよちWEB業界1年経験して〜

まえがき あけましておめでとうございます。今年もどうぞよろしくお願いし...

記事を読む

Java SE 7 Bronze試験(1Z0-802)を受けてきました

まえがき 以前から少し受けてみたかった試験『Java SE 7 Bro...

記事を読む

HubotでJenkinsのジョブを実行する

まえがき HubotをつかってJenkinsのジョブをじっこうしてみた...

記事を読む

no image

Hubotをforeverでデーモン化する

まえがき 今回はHubotをforeverを使ってデーモン化してみた時...

記事を読む

スポンサーリンク

  • Sorry. No data so far.

PAGE TOP ↑