[stable-2.7] Add an example to serial usage (#48669)
(cherry picked from commit b759862daa
)
Co-authored-by: Toshio Kuratomi <a.badger@gmail.com>
This commit is contained in:
parent
1dab508cd4
commit
cef08640a4
1 changed files with 39 additions and 4 deletions
|
@ -19,21 +19,55 @@ You'll also want to read up on :doc:`playbooks_reuse_roles`, as the 'pre_task' a
|
||||||
|
|
||||||
Be aware that certain tasks are impossible to delegate, i.e. `include`, `add_host`, `debug`, etc as they always execute on the controller.
|
Be aware that certain tasks are impossible to delegate, i.e. `include`, `add_host`, `debug`, etc as they always execute on the controller.
|
||||||
|
|
||||||
|
|
||||||
.. _rolling_update_batch_size:
|
.. _rolling_update_batch_size:
|
||||||
|
|
||||||
Rolling Update Batch Size
|
Rolling Update Batch Size
|
||||||
`````````````````````````
|
`````````````````````````
|
||||||
|
|
||||||
|
|
||||||
By default, Ansible will try to manage all of the machines referenced in a play in parallel. For a rolling update use case, you can define how many hosts Ansible should manage at a single time by using the ``serial`` keyword::
|
By default, Ansible will try to manage all of the machines referenced in a play in parallel. For a rolling update use case, you can define how many hosts Ansible should manage at a single time by using the ``serial`` keyword::
|
||||||
|
|
||||||
|
|
||||||
- name: test play
|
- name: test play
|
||||||
hosts: webservers
|
hosts: webservers
|
||||||
serial: 3
|
serial: 2
|
||||||
|
gather_facts: False
|
||||||
|
tasks:
|
||||||
|
- name: task one
|
||||||
|
comand: hostname
|
||||||
|
- name: task two
|
||||||
|
command: hostname
|
||||||
|
|
||||||
|
In the above example, if we had 4 hosts in the group 'webservers', 2
|
||||||
|
would complete the play completely before moving on to the next 2 hosts::
|
||||||
|
|
||||||
|
|
||||||
|
PLAY [webservers] ****************************************
|
||||||
|
|
||||||
|
TASK [task one] ******************************************
|
||||||
|
changed: [web2]
|
||||||
|
changed: [web1]
|
||||||
|
|
||||||
|
TASK [task two] ******************************************
|
||||||
|
changed: [web1]
|
||||||
|
changed: [web2]
|
||||||
|
|
||||||
|
PLAY [webservers] ****************************************
|
||||||
|
|
||||||
|
TASK [task one] ******************************************
|
||||||
|
changed: [web3]
|
||||||
|
changed: [web4]
|
||||||
|
|
||||||
|
TASK [task two] ******************************************
|
||||||
|
changed: [web3]
|
||||||
|
changed: [web4]
|
||||||
|
|
||||||
|
PLAY RECAP ***********************************************
|
||||||
|
web1 : ok=2 changed=2 unreachable=0 failed=0
|
||||||
|
web2 : ok=2 changed=2 unreachable=0 failed=0
|
||||||
|
web3 : ok=2 changed=2 unreachable=0 failed=0
|
||||||
|
web4 : ok=2 changed=2 unreachable=0 failed=0
|
||||||
|
|
||||||
In the above example, if we had 100 hosts, 3 hosts in the group 'webservers'
|
|
||||||
would complete the play completely before moving on to the next 3 hosts.
|
|
||||||
|
|
||||||
The ``serial`` keyword can also be specified as a percentage, which will be applied to the total number of hosts in a
|
The ``serial`` keyword can also be specified as a percentage, which will be applied to the total number of hosts in a
|
||||||
play, in order to determine the number of hosts per pass::
|
play, in order to determine the number of hosts per pass::
|
||||||
|
@ -77,6 +111,7 @@ You can also mix and match the values::
|
||||||
.. note::
|
.. note::
|
||||||
No matter how small the percentage, the number of hosts per pass will always be 1 or greater.
|
No matter how small the percentage, the number of hosts per pass will always be 1 or greater.
|
||||||
|
|
||||||
|
|
||||||
.. _maximum_failure_percentage:
|
.. _maximum_failure_percentage:
|
||||||
|
|
||||||
Maximum Failure Percentage
|
Maximum Failure Percentage
|
||||||
|
|
Loading…
Reference in a new issue