最近のchefとかknifeとか
ネット上にはいろいろな情報が流れているが、現在のchef
$ chef --version Chef Development Kit Version: 0.7.0 chef-client version: 12.4.1 berks version: 3.2.4 kitchen version: 1.4.2
の場合、cookbookを作る際は
$ chef generate cookbook <NAME>
で始めたほうが良さそう。
knife-zero
knife-soloを使ってたのに、お亡くなりになったのでknife-zeroを使い始める。
www.creationline.com
www.creationline.com
cookbook内でシェルの設定
このコマンドでchefdkのもつrubyを使うように設定できる。
$ eval "$(chef shell-init bash)" $ chef gem install knife-zero
'''knife solo prepare''' にあたるのがこのコマンド
$ knife zero bootstrap {target_server_ip} -x root
リストを出す
$ knife client list -z $ knife node list -z $ knife role list -z
レシピやRoleの追加・削除
このようにレシピを追加・削除しないと、レシピ実行時にJSONの設定を消される、クソっぽいhelloworldはレシピ名
$ knife node run_list add -z Node名 helloworld $ knife node run_list remove -z Node名 helloworld
でもEDITORを環境変数で指定するとレシピを編集できる、意味あるの?それ
$ EDITOR=emacs knife node edit -z Node名
所感
・○ rubyとgemをchefdk内部で管理するようになって、バージョン違いによる動作不良が少なくなると思われる
・○ cookbook実行時にいちいちパスワード or 公開鍵認証のパスを入力しなくてよくなった
・× recipeの編集時に謎のロックがかかるようになって、意図がわからないし嫌だと思った
*1:そのうちchef製のOSが登場するはずなので括目しておくべきだ(嘘)。