環境
- 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 件のコメント:
コメントを投稿