forks lesson completed
This commit is contained in:
59
README.md
59
README.md
@@ -1668,3 +1668,62 @@ Found 487 roles matching your search:
|
|||||||
|
|
||||||
## Managing Parallelism
|
## Managing Parallelism
|
||||||
### Parallelism in Ansible
|
### Parallelism in Ansible
|
||||||
|
This lecture covers how to configure Ansible for higher performance using Ansible Forks. There is also a demonstration on how to use the serial keyword to batch host operations.
|
||||||
|
|
||||||
|
- It's posssible to control the number of hosts acted upon at once time by Ansible
|
||||||
|
- The Ansible process will create forks to execute actions in parallel.
|
||||||
|
- By default, the process will only for 5 times
|
||||||
|
- The number of forks can be set for a single command using **-f** flag with either the ansible or ansible-playbook commands.
|
||||||
|
- The default may be changed in **ansible.cfg**
|
||||||
|
- The serial keyword may also confine the number of simultaneous updates within a playbook
|
||||||
|
|
||||||
|
For number:
|
||||||
|
- best practice recommends do not increase it more than 50
|
||||||
|
- 5 is pretty small number
|
||||||
|
- you can increase your fork number up to 10 or 15 without risk
|
||||||
|
|
||||||
|
- `serial` - used to speficy on how many hosts playbook will be executed simultaneously
|
||||||
|
```
|
||||||
|
---
|
||||||
|
- hosts: labservers
|
||||||
|
become: yes
|
||||||
|
serial:
|
||||||
|
- 1 #run on one hosts
|
||||||
|
- 2 #run on two hosts
|
||||||
|
- 50% #run on 50% of hosts
|
||||||
|
tasks:
|
||||||
|
- name: add host entry
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/hosts
|
||||||
|
line: "webserver mywebserver.labs.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
- From run it can be seen that playbook first run on **one** host, then **two** and finally the rest
|
||||||
|
```
|
||||||
|
[cloud_user@innaghiyev2c ~]$ ansible-playbook serial.yml
|
||||||
|
|
||||||
|
PLAY [labservers] **********************************************************************************************************************************************************
|
||||||
|
|
||||||
|
TASK [Gathering Facts] *****************************************************************************************************************************************************
|
||||||
|
ok: [innaghiyev1c.mylabserver.com]
|
||||||
|
|
||||||
|
TASK [add host entry] ******************************************************************************************************************************************************
|
||||||
|
changed: [innaghiyev1c.mylabserver.com]
|
||||||
|
|
||||||
|
PLAY [labservers] **********************************************************************************************************************************************************
|
||||||
|
|
||||||
|
TASK [Gathering Facts] *****************************************************************************************************************************************************
|
||||||
|
ok: [innaghiyev2c.mylabserver.com]
|
||||||
|
ok: [innaghiyev3c.mylabserver.com]
|
||||||
|
|
||||||
|
TASK [add host entry] ******************************************************************************************************************************************************
|
||||||
|
changed: [innaghiyev2c.mylabserver.com]
|
||||||
|
changed: [innaghiyev3c.mylabserver.com]
|
||||||
|
|
||||||
|
PLAY RECAP *****************************************************************************************************************************************************************
|
||||||
|
innaghiyev1c.mylabserver.com : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
|
||||||
|
innaghiyev2c.mylabserver.com : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
|
||||||
|
innaghiyev3c.mylabserver.com : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
|
||||||
|
```
|
||||||
|
|
||||||
|
- `max_fail_percentage: 30` - we can use this key to provide percentage of failure during cookbook run. If 1/3 of our cookbook run will fail, then whole playbook gonna stop and concidered as **failed**
|
||||||
Reference in New Issue
Block a user