Vagrant?
簡単に言うとインフラ構築の自動化。
例えば 手動でやろうとすると、OS入れる度に VMでディスクイメージ読み込ませて あれやこれやと細かい初期設定しないといけないけど、Vagrantを使えばたった3つのコマンドで上に書いた事を勝手にやってくれる。
Vagrantは chefのようなツールと合わせて使えば超強力と巷では言われていて、要するにソフトウェアのインストールまで自動化してくれる。
これはどういうことかというと…
インフラ構築にいちいち時間かける必要もなくなるし、ミスも防げるし、チーム開発の場合は 新しく入ってきた人でもすぐに環境構築できるし、何より「俺の環境では動いたよ」も減る。
個人で勉強用に開発環境立てては壊しまくったりする場合にもかなり便利だけど、チーム開発でも圧倒的な力を発揮。
とりあえず 今回に関しては Chef を使用せずに VagrantでOSだけ入れてもらって、動作確認の意味合いを込めてWebサーバの立ち上げをやってみる。
因みにVMを動作させる環境はフリーで落とせる VirtualBox を使用。
CentOS導入編
最新のVirtualBox と Vagrant をインストール。
あとはコマンドラインで以下の3つのコマンドを叩くだけ。
vagrant box add centos https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box vagrant init centos vagrant up
※各OSとboxURLに関しては こちら に掲載されているものを参考にさせていただきました。
Webサーバ編
VagrantでOS立てる時に Vagrantfile という設定ファイルがローカルにできているのでそれを編集。
# config.vm.network :private_network, ip: "192.168.33.10"
の行のコメントアウト部分(#)を消す。
( 因みに192.168.33.10 は vagrant で設定されているデフォルトのipアドレス )
続いてvagrantのサーバにアクセス。
( Macとかなら「vagrant ssh」 ってコマンドで打てば良いけど、Windows環境とかで怒られる場合はPuttyとか別のSSHクライアントを使用すること。なお、Windowsの場合もユーザ名とかホストとかポートとか諸々の情報は「vagrant ssh」で出てきます )
インストールとか httpdの編集とかするんで、最初に su で root になっておくと良いかも( Vagrantの場合、デフォのルートパスワードは vagrant )。
とりあえず細かい設定とか抜きにして単純にWebサーバ立てるだけなら まずは httpd くらいで十分なので
yum install -y httpd
みたいな感じで httpd を入れてみる。
インストールしたら
/etc/httpd/conf/httpd.conf
をvi か何かで編集。
( 敢えて vim ではなく vi と書いたのは、vagrant経由でcentosをそのままインストールした時に vim がインストールされていなかったため。vimを使う場合は yum -y install vim とかで入れる )
ServerName の部分を 192.168.33.10 に。
続いて
/var/www/html/ の下のindex.html( 無ければ作成 )
を vi か何かで起動して一行目に お決まりの「Hello World」を。
service httpd start
( 次からhttpdが自動起動されるように chkconfig httpd on にしておくと良いかも )
ブラウザで
http://192.168.33.10/
にアクセス。
「Hello World」が表示されればOK。
今回はWebサーバ構築だけだったけど、念のためにポート変更とかルートログイン禁止とかパスワードログインから公開鍵認証に切り替えたりとか ServerTokensを Prod にしたりとか ServerSignatureをoffにしたりとか、最低限のセキュリティ設定はしてあげると良いかも。
( トップのロゴはVagrantの公式ホームページ http://www.vagrantup.com/ からお借りしています )
Written by Nisei Kimura ( 木村 仁星 )