Before Ansible 2, every task needed to be executed (and completed) on each machine before Ansible issued a new task to all machines. This meant that, if you were performing tasks on a hundred machines and one of them was under-performing, all of the machines would run at the under-performing machine's speed.
With Ansible 2, execution strategies have been made modular and pluggable; therefore, you can now choose which execution strategy you prefer for your playbooks. You can also write custom execution strategies, but this is beyond the scope of this book. At the moment (in Ansible 2.7), there are only three execution strategies, linear, serial, and free:
- Linear execution: This strategy behaves exactly as Ansible did prior to version 2. This is the default strategy.
- Serial execution: This strategy will take a subset of hosts (the default is five) and...