Ansibleが複数ホストに対して並列に走らない

More than 1 year has passed since last update.

最近の Ansible は複数のホストに対してタスクを実行する際に並列で実行するようになっていて、並列数は forks で指定することができる。
しかし、並列に実行するよう設定しているにも関わらず、並列に動作しない場合があるので注意。

How do I drive Ansible programmatically and concurrently?

Ansibleが ~/.ssh/known_hosts にホストを見つけられない場合に、各タスクの実行毎にグローバルロックを取るようになっているため、このような現象が起こるらしい。
とりあえずの解決策としては、~/.ansible.cfg 等にknown hostsのチェックを無効化する設定を書いておけば良い。

host_key_checking = False