2014年3月13日木曜日

vagrant centOS6.4 rails環境構築 chef導入まで2 nginx環境構築

環境

  • vagrant 1.2.2 @centOS6.4
  • ruby2.1.0&rbenv

前回の続き。chefを導入します。

gem listでbundlerの有無を確認。ない場合はinstall


// install
gem install bundler

// 再読み込み(絶対やること)
rbenv rehash

Gemfileを作成


source 'http://rubygems.org'

gem 'chef'
gem 'knife-solo', '~> 0.3.0.pre3'

bundle install


bundle install

リポジトリを作る


// envフォルダ作成
mkdir env

// envフォルダに移動
cd env

// リポジトリ作成
bundle exec knife solo init chef-repo

-rw-rw-r-- 1 vagrant vagrant   75 Mar 12 14:56 Gemfile
-rw-rw-r-- 1 vagrant vagrant 1777 Mar 12 15:06 Gemfile.lock
drwxrwxr-x 8 vagrant vagrant 4096 Mar 12 15:10 chef-repo

nginxのクックブック作成


// 移動
$ cd chef-repo

knife cookbook create nginx -o cookbooks

** Creating cookbook nginx
** Creating README for cookbook: nginx
** Creating CHANGELOG for cookbook: nginx
** Creating metadata for cookbook: nginx

install用のレシピを作成


# /env/chef-repo/cookbooks/nginx/recipes/default.rb

package "nginx" do
  action :install
end

/chef-repo配下に実行solo.rbとlocalhost.jsonを用意


# localhost.json

{
  "run_list":[
    "recipe[nginx]"
  ]
}

# solo.rb

file_cache_path "/tmp/chef-solo"

cookbook_path ["/home/vagrant/env/chef-repo/cookbooks"]

chef-soloを実行


sudo env PATH=$PATH chef-solo -c solo.rb -j ./localhost.json

Starting Chef Client, version 11.10.4
Compiling Cookbooks...
Converging 1 resources
Recipe: nginx::default
  * package[nginx] action install (up to date)

Running handlers:
Running handlers complete

Chef Client finished, 0/1 resources updated in 7.002227939 seconds

ここのsudoコマンドがポイント。rbenvを使用してる場合、envを付加しないと、sudo: chef-solo: command not foundになる。/etc/環境を汚したくない場合は、こう使う。

結局覚えるコツは何回も色々やってみて、ビルド&スクラップで試してみることですね。


参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...