There's an echo in my head

日々のメモ。

knife-soloをJSONファイルを作らずに走らせる

--json-attributes <json>もしくは-j <json>オプションを使えばnodes/*.jsonを作らなくても走らせることができた。

$ knife solo cook myserver.01 -j '{"hostname":"myserver.01"}'

みたいな感じ。

さすがにJSONを長々と書くのは不便なので、基本となるロールをroles/*.rbに定義して、ノードごとに異なる値をJSONで渡す形式にしてやるとよさそう。

ロールは--override-runlist 'role[<role>]'もしくは-o 'role[<role>]'で指定できる。カンマ区切りで複数指定も可。

$ knife solo cook myserver.01 -o 'role[app]' -j '{"hostname":"myserver.01"}'

みたいな感じ。

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。