新しい日記

新しい日記

vagrantのつかいかたチュートリアル

vagrantを覚えたので忘れないようにメモ
※私サーバの人じゃないし全然その辺のことよくわからないから間違ってることもいっぱい書いてあるかも!一応この手順で使えるというメモ程度の感覚で…

これを使うと何が出来るの?
簡単に仮想サーバ環境が構築できるよ.作った環境をテンプレートみたいに保存しておいて,使わないときはコマンド1行で一時停止できて,また使うときもコマンド1行ですぐ同じ環境が立ち上がるよ.

必要な物

さっそくやってみよう
まずは上記のvagrantVirtualBoxを両方インストールしておきます(どっちも無料)

次に,box(仮想OSのテンプレート的なもの)をインストールします.
centOSとかubuntuとかいっぱいあるみたい.とりあえずcentOSをインストールしてみます.

$vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

他のboxの例は例えばこのへんとかでたくさん見つかります.
Discover Vagrant Boxes | Atlas by HashiCorp

そして,適当にテスト用のディレクトリを作って,ここを仮想環境と同期させることにしましょう.

$mkdir vagrantTest && cd vagrantTest

次に

$vagrant init

とコマンドを実行しますと,先ほど作ったディレクトリがvagrant用に初期化されて,vagrantfileという設定ファイルのようなものが生成されます.
vagrantfileを見てみると,テンプレートがずらずら並んでます.
とりあえず最初の方に

config.vm.box = "base"

というような文字列があると思うので,ここを

config.vm.box = "centos64"

に書き換え,DL済みのcentOS64のbox用にしましょう.

ちなみに,初期化するときに

$vagrant init centos64

としますと,先ほどインストールしたcentos64のboxに合わせた状態で初期化されるので,vagrantfileも最初からそれに合わせて生成されます.なのでこのコマンドで最初っからboxを指定して初期化するのが楽かも.

そして,

$vagrant up

と打ちますと,もう仮想マシンが立ち上がっています!
次に,

$vagrant ssh

を実行しますと,この仮想マシンSSHで接続できます.

それではさっそく仮想サーバを立てるとしましょう.
まずはapacheをいれましょう

$sudo yum -y install httpd

PHPもいれましょう

$sudo yum -y install php

そして,サーバを立ち上げましょう.

$sudo service httpd start

OKと言われたらサーバ立ち上がってます.

このままだとvirtualBoxを実行しているPCから接続できるように,ファイヤウォールなどの設定をしておきます.
まずcongfig設定をonにし,

$sudo chkconfig httpd on

次にiptablesを止めます

$sudo service iptables stop
$sudo chkconfig iptables off

ここまでで,サーバ自体の設定はできたのでexitしてssh接続から抜けます.

次にvagrantfileをいじって,ブラウザからプライベートネットワークで接続出来るように設定しましょう

# config.vm.network "private_network", ip: "192.168.33.10"

という部分があるので,最初の#を外して保存します.
なお,ip: "192.168.33.10"のところは任意のアドレスに変更できるので,適当に…….
そして,

$vagrant reload

vagrantを再起動したのち,
ブラウザで192.168.33.10にアクセスすると,apacheの画面がでていれば成功!

あとは使いやすいように,ローカルのディレクトリと,仮想サーバのディレクトリを同期させるために,またssh接続してサーバ設定をいじりましょう.
まずは今あるものを削除し,

$sudo rm -rf /var/www/html

次にシンボリックリンクwindowsのショートカットみたいなの)を作ります.

$sudo ln -fs /vagrant /var/www/html

あと,httpd.confも設定しましょう.(これ設定しないとCSSとかの外部リンクが効かなかったりするらしい)

httpd.confは
/etc/httpd/conf/httpd.conf
にあります.

$vi httpd.conf

で編集しましょう.

viの使い方

/

で文字列の検索

i

で編集モード

:wq

で保存して終了

今回は
EnableMMAP off
EnableSendfile off
の行頭の#を消してあげるだけなので上記のだけで十分
もし間違えちゃったら

:q!

で保存せずに終了.

ここまでうまく出来たら,あとは自分のお好きなテキストエディタとかで編集して,同期されるよ〜
仮想マシンをスリープさせたいときは

$vagrant suspend

再開したいときは

$vagrant resume

終わりにしたいときは

$vagrant halt

破壊するときは

$vagrant destroy

あと自分の環境を他のマシンでも使えるようにする(?)vagrant share,仮想マシン設定などのテンプレート化ができる(?)らしいchef,環境の違う仮想マシンを管理出来る(?)dockerとか,色々あるらしいけどまだそのへんは調べてないよ!

以下,参考リンク.
web帳 | VirtualBoxとVagrantで開発環境を構築
Vagrant日本語ドキュメント