Cinnamonのタスク並列実行を正式にリリースしました。インストールするとデフォルトでは全ホスト同時に実行されるようになります。
参考
またconcurrencyという項目でタスクごとに最大並列ホスト数を制限することが出来ます。例えば以下のように設定すると、
use Cinnamon::DSL; set concurrency => { restart => 1, 'server:setup' => 2, }; role production => [qw(server1 server2 server3)]; task update => sub { my ($host, @args) = @_; # ... }; task restart => sub { my ($host, @args) = @_; # ... }; task server => { setup => sub { my ($host, @args) = @_; # ... }, };
- updateは3ホスト同時に動く
- restartは1ホストずつ実行される
- server:setupは2ホストずつ実行される
のようになります。