nigoblog

技術系会社のCEOブログ~私的編~

Vagrantとchefで簡単お手軽ローカル環境構築

以前からちょくちょくやっているVagrantですが、今回はapacheを動かし、
実際にローカル環境として動作するまでを書いていこうと思います。

  1. 目標~何が出来るようになるのか~
  2. 作業ディレクトリの作成
  3. cookbookをダウンロード
  4. Vagrantfileにcookbookを反映
  5. hostsファイルの設定
  6. 確認

以上のような流れで説明します。

目標~何が出来るようになるのか~

今回の概要を説明します。
ローカルでの開発環境の作成。

  • apacheのインストール
  • PHPのインストール
  • MySQLのインストール

以上をすることで、基本的なwebアプリケーションを作るセッティングを行います。
MAMPのようなものを自分で作るというような感じです。

作業ディレクトリの作成

コマンドで次のように入力

mkdir project
cd project

projectディレクトリを作成、移動。

vagrant init

Vagrant環境を設定
ここで前回VagrantでCI環境を作る ~その後~ - nigoblogまでできていると仮定します。

vim Vagrantfile

Vagrantfileの編集

Vagrant::Config.run do |config|
  config.vm.box = "CentOS-5.8"
  config.vm.network :hostonly, "192.168.33.10"
end

ここまでは前回と同じです。ここからapache, php, mysqlをインストールしていきます。
ちなみにネットワークの設定もついでに行なっています。

cookbookをダウンロード

通常サーバーの環境構築はsshコマンドでサーバーに入り、
yumなどでアプリケーションをインストールしていきます。
しかし、chefを使えばVagrantfileを書きなおすだけでインストールやセットアップを自動化してくれます。
そこでまずはcookbookというものをインストールします。この段階では内容を知らなくても大丈夫です。
次のコマンドを入力します。

git clone git@github.com:opscode/cookbooks.git

するとcookbookが一気にダウンロードされます。
このcookbookから使いたいもののみを残します。
とりあえず

cookbooks/
    apache2/
    php/
    mysql/

という状態にします。
これでcookbookの準備は完了。
次はVagrantfileで設定をします。

Vagrantfileにcookbookを反映

Vagrantfileを書き換え、cookbookを反映させます。

Vagrant::Config.run do |config|
  config.vm.box = "CentOS-5.8"
  config.vm.network :hostonly, "192.168.33.10"
  config.vm.provision :chef_solo do |chef|
    chef.cookbook_path = "cookbooks"
    chef.add_recipe("apache2")
    chef.add_recipe("php")
    chef.add_recipe("mysql")
  end
end

これで

vagrant up

とすると、webサーバーが立ち上がります。

hostsファイルの設定

最後にhostsファイルを設定します。
これはmac本体の設定です。

cd 

でユーザーのホームディレクトリへ

vim ../../etc/hosts

でhostsファイルを開きます。
そこで

192.168.33.10 vagrant.project.jp

と1行追加します。
以上簡単でしたがお手軽にローカル環境を構築しました。

確認

chromefirefoxのURLに

vagrant.project.jp

と入力します。
すると
以下のような画面が表示されます。
f:id:nigohiroki:20121224151344p:plain

このようになればひとまずローカル環境は構築完了

詳しいapacheの設定などはまた別の機会で!!

今回の関連記事
VagrantでCI環境を作る ~その後~ - nigoblog
VagrantとかjenkinsとかchefとかでCI環境を構築する - nigoblog