トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

knife-zero

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

[Linux]

chef-soloを使ってたのに、お亡くなりになったのでchef-zeroを使い始める。

  • Rubyはバージョン間の互換性ゼロなので、chefは内部にRubyとRubygemを持つようになった。なのでchefのサブコマンドでシェルとgemの管理をするようになった。
  • そのうちchef製のOSが登場するはずなので括目しておくべきだ。すべてはRubyのせい。
$ eval "$(chef shell-init bash)"
$ chef gem install knife-zero
  • knife solo prepare にあたるのがこのコマンド
$ knife zero bootstrap {target_server_ip} -x root
  • やたらknifeのサブコマンドが増えている。nodeはおなじみのnode以下にあるサーバの設定が書かれたjsonの情報を出力する。
  • nodeは実態をもったレシピの引数指定、roleがある一定の役割をもったサーバを使いまわすためのレシピの引数指定、みたいな感じ
  • 使いまわしたいものはroleに設定すればいいっぽいが、role以下のjsonに指定したデータはレシピの中で参照できない(参照する方法はあるが作法ではない)

リストを出す

$ 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名
お名前: コメント: