--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"}'
みたいな感じ。