複数ノードに itamae レシピを実行する方法
調べたんですが capistorano と連携する記事はでてきたけど単独で行う記事がでてきません
itamae 自体に機能がないなら
パラメーターで台数を与えたらその台数分ホスト名だけ連番にして
レシピを適用するようなレシピをかきたいと思っています
そこで itamae コマンドラインでパラメータを与える方法はないでしょうか
for i in 1..node[n_api_servers]
execute 'bundle exec itamae ssh -h api#{i}.local roles/api/default.rb -y nodes/api.#{env}.yml'
end
イメージではこういうレシピを書いて実行したいんですが
ここに レシピ内で(たとえば node['host_name']) で取得できる値に api#{i} という連番ホスト名のパラメーターを渡したいです
できそうなのに調べてもなかなか記事がでてこなくて…
できないなら nodes/ の設定ファイルに host_name だけ変えたものを台数分かいて
for i in 1..node[n_api_servers]
execute 'bundle exec itamae ssh -h api#{i}.local roles/api/default.rb -y nodes/api#{i}.#{env}.yml'
end
という感じでよぶしかないでしょうか…
あるいはもっといい複数台に同一レシピを適用する方法があれば教えていただけるとありがたいです
追記:
kondate を試してみたのですが
hosts.yml に台数分の設定を用意する必要がある気がします
十分な数の設定を用意しておけば実現はできそうですがきれいじゃないので
可変個数に対応した書き方はできないでしょうか
hosts.yml に
api1: [api]
api2: [api]
:
のようにかくかわりに ssh/config みたいに
api*: [api]
のようなことができたりしないでしょうか