# Serial playbook control is now a core feature!

**URL:** <https://forum.ansible.com/t/serial-playbook-control-is-now-a-core-feature/11809>\
**Category:** Ansible Project\
**Created:** [August 18, 2012, 2:29pm UTC](https://forum.ansible.com/t/serial-playbook-control-is-now-a-core-feature/11809 "2012-08-18T14:29:18Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michael\_DeHaan](https://avatars.discourse-cdn.com/v4/letter/m/c4cdca/32.png) [@Michael\_DeHaan](https://forum.ansible.com/u/Michael_DeHaan)\
**Post date:** [August 18, 2012, 2:29pm UTC](https://forum.ansible.com/t/serial-playbook-control-is-now-a-core-feature/11809/1 "2012-08-18T14:29:18Z")

</div>

In previous editions of Ansible, for each play that is being executed,  
all hosts in the play start on their journey at the exact same time.

This means that if you had a batch of 50 servers, you are upgrading  
all of them at once. This is potentially suboptimal (to say the  
least), but could be controlled manually using the "--limit" keyword,  
which was recently implemented, but ... you still had to do that  
manually.

It's much more awesome now.

Starting with \*now\*, each play now has a a "serial: " keyword, which  
is optional -- which controls the size of the playbook batch. If not  
set, the default is to run all hosts in the play in parallel.

However, you can now decide how many you want to run at once, whether  
one at a time, or 3 at a time, etc. This is independent  
of the levels of SSH parallelism you use.
