** chef-solo で Hello をだしてみよか [#xbd804ad]
- 簡単に実行できるはずが、windows環境だとはまってしまうというオチに遭遇したのでメモしときます。
*** knife-soloがすんなりインストールできないw [#y5f58eba]
- rubyとdevkitをインストールしたあと、knife-solo(下記のコマンド)を叩くとエラーがでますw
C:\gem install knife-solo
- そんなときは
C:\gem update
*** chef-soloが動かない [#u1167d51]
- chef-client を実行するとエラーが沢山でます…涙。
C:\RubyDevKit>chef-client
C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require':
cannot load such file -- ruby-wmi (LoadError)
- 解決の糸口
-- ruby, DevKit を入れなおしてみる。
--- [[「はじめてのRuby on Rails3」サポートページ「DevKitの使い方」>http://supportdoc.net/support-ror3/devkit.html]]
-- gem を updateしてみる
C:\>gem update
-- ここを見てみる(英語) / [[cannot load such file — ruby-wmi (LoadError) & cannot load such file — win32/service (LoadError)>http://stackoverflow.com/questions/12868121/cannot-load-such-file-ruby-wmi-loaderror-cannot-load-such-file-win32-s]]
-- win32-service をインストールしてみる
C:\>gem install win32-service
- chef-client を実行すると…正常w
*** "Hello, Chef!"ってやってみる [#t9dd686b]
- ちゃんと「入門chef solo」とおりにやってみるのが一番だと思うのでメモ
- chef-repo 作る
C:\Users\hoge> gem install knife-solo
C:\Users\hoge> knife solo init chef-repo
C:\Users\hoge> cd chef-repo
- hello のクックブックを作成する
C:\Users\hoge\chef-repo> knife cookbook create hello -o cookbooks
** Creating cookbook hello
** Creating README for cookbook: hello
** Creating CHANGELOG for cookbook: hello
** Creating metadata for cookbook: hello
- レシピを編集する(C:\Users\hoge\chef-repo\cookbooks\hello\recipes\default.rb)
C:\Users\hoge\chef-repo> notepad cookbooks\hello\recipes\default.rb
-- 内容をへんしゅう
#
# Cookbook Name:: hello
# Recipe:: default
#
# Copyright 2013, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
log "Hello, Chef!"
- chef-solo レシピを記述するjsonを用意する、\chef-repo の直下でいいらしい
C:\Users\hoge\chef-repo> notepad localhost.json
-- 内容をへんしゅう
{
"run_list" : [
"recipe[hello]"
]
}
- 環境変数っぽい定義ファイルを作成しとく
C:\Users\hoge\chef-repo> notepad solo.rb
-- 内容をへんしゅう
# solo.rb
# -*- encoding: utf-8 -*-
file_cache_path File.join(Dir.pwd, 'cache')
cookbook_path File.join(Dir.pwd, 'cookbooks')
- さて実行してみる
C:\Users\hoge\chef-repo> chef-solo -c solo.rb -j localhost.json
Starting Chef Client, version 11.6.0
[2013-08-15T23:28:27+09:00] WARN: chef-client doesn't have administrator privile
ges on node hage. This might cause unexpected resource failures.
Compiling Cookbooks...
Converging 1 resources
Recipe: hello::default
* log[Hello, Chef!] action write
Chef Client finished, 1 resources updated
- 実は、[0mとか表示されるけど、とりあえずの目的 "Hello, Chef!" がでてればok
Starting Chef Client, version 11.6.0[0m
[2013-08-15T23:28:27+09:00] WARN: chef-client doesn't have administrator privile
ges on node hage. This might cause unexpected resource failures.
Compiling Cookbooks...[0m
Converging 1 resources[0m
Recipe: hello::default[0m
* log[Hello, Chef!] action write[0m
[0m
Chef Client finished, 1 resources updated[0m