áá¯á¶áá±áááºáááºáá»á¬ážááŒáá·áº Ansible ááẠáááºážáá¡áá¯ááºááᯠá¡ááœááºáá»ááºááŒááºá
áœá¬ ááá¯ááºáá±á¬ááºááá¯ááºáááºááŸá¬ áá»áŸáá¯á·ááŸááºáá»ááºááá¯ááºáá«á áá±á¬ááºážáá«ážááœáẠá€á¡ááœáẠá¡ááŒá±á¬ááºážáááºážáá»á¬ážá
áœá¬ááᯠáá±á¬ááºááŒááŒá®áž ááá·áºááá±á¬áá»ááºá á¡ááŸáááºááᯠá¡ááŸááºáááẠááá¯ážá
á±ááá·áº á¡áá¯á¶ážáááºáá±á¬ á¡áááºážáá¯á¶áž áááºáááºáá»á¬ážááᯠáá±ážáá«áááºá
á€áá±áá¬ááŸáá·áº á¡á±á¬ááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠáááºááŸá
áºáááºááá·áºáááºážáááºážááŒáá·áº á¡áá
áºáááºáá®ážáá¬ážáá±á¬ virtualenv ááœáẠááá·áºááœááºážáá¬ážááá·áº Ansible 2.9.x ááᯠááœá±ážááœá±ážáá¬ážáááºá
áááºáááºááŒá®ážáá±á¬ááºá ááá·áºááá±áá¬á á¬á¡á¯ááºáá±ážááŸá âansible.cfgâ ááá¯ááºááᯠáááºáá®ážáá« - á€áááºáá±áá¬ááẠááá·áºá¡á¬áž ááá±á¬áá»ááºááŸáá·áºá¡áá° á€áááºáááºáá»á¬ážááᯠááœáŸá²ááŒá±á¬ááºážááá¯ááºá á±áááºááŒá áºááŒá®áž áááºážááá¯á·ááẠá¡ááá¯á¡áá»á±á¬ááºáááºááá¯ááºáááºááŒá áºáááºá
ááá¯ááºááá¯ááºáž
á¡áá»áá¯á·áá±á¬áá°áá»á¬ážááẠáá
áºááŸááºá
áá
áºá ááá¯ááºá
áá
áºááá¯á· module áá»á¬ážááᯠáá°ážáá°ááŒááºážáááŒá¯áá²á Base64 ááœáẠáááºáá¬ážáá±á¬ zip archive ááᯠPython á
áá¬ážááŒááºá stdin ááá¯á· ááá¯ááºááá¯ááºááœáŸá²ááŒá±á¬ááºážááẠááá¯á¡ááºááŒá±á¬ááºáž á¡áá»áá¯á·á ááŒá¬ážáááá¬ážááŒá®ážááŒá
áºáá±á¬áºáááºážá á¡áá»áá¯á·ááŸá¬áá° áááŒá
áºááá¯ááºáá±á¬áºáááºážá á¡ááŒá
áºááŸááºáá
áºáá¯áá»ááºáááº
pipelining = True
á¡áá»ááºá¡áááºááœá± á á¯áá±á¬ááºážáááºá
áá°áááºážáááºáááºáá»á¬ážááŒáá·áº Ansible ááẠáá
á¬ážááŸá¯áá
áºáá¯á
á®á¡ááœáẠáááºážááœááºáá« á ááºááá·áºá¡áááºááŸááºá¡á¬ážáá¯á¶ážá¡ááœááºá¡áá»ááºá¡áááºá
á¯áá±á¬ááºážááŸá¯ááá¯á
áááºáá¯ááºáá±á¬ááºáááºááá¯áááºáááá«ááá¬ážá áá±áá°áá»á¡á¬ážááŒáá·áº áááááẠá¡áá¯ááááŒá®á ááá¯ááá¯á·áááŒá
áºááœá¬ážá
á±ááẠáá¬ááœááºáááºá á¡áá»ááºá¡áááºá
á¯áá±á¬ááºážááŒááºáž (ááŸááºážáááºážááŒááºáá¬ážáá±á¬) ááá¯á·ááá¯áẠá
áááºáá¯ááºááᯠááœáá·áºááẠááá¯á¡ááºáááºá áááºážááœááºá ááááºááŒáá¬ááºáá»á¬ážááœáẠáááŒá¯á¶ááœá±á·áá²á·áááá·áº á¡áááºááŸááºáá»á¬ážáá¶á០á¡áá»ááºá¡áááºáá»á¬ážááá¯áᬠá
á¯áá±á¬ááºážáááºááŒá
áºáááºá
UPDá áá°ážáá°áá±á¬á¡áá«á áááºááẠá€áááºáááºáá»á¬ážáá²á០áá
áºáá¯ááᯠááœá±ážááááá·áºáááºá
gathering = smart|explicit
ssh áá»áááºáááºááŸá¯áá»á¬ážááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯ááŒááºážá
á¡áááºá áááºááẠAnsible ááᯠá¡ááŸá¬ážááŸá¬ááŒááºááŒááºážáá¯ááºááœáẠ("v" ááœá±ážáá»ááºááŸá¯á áá áºááŒáááºá០ááá¯ážááŒáááºá¡áá áááºáá«ááá²áá² áá¯ááºáá±á¬ááºáá°ážáá«á) ssh áá»áááºáááºááŸá¯áá»á¬ážááᯠá¡áááºáááŒáẠááŒá¯áá¯ááºáá±ááŒá®áž áá»ááºááœá¬ážáááºááᯠáááááŒá¯áááá±áááºá áá®áá±á¬á· áá®áá±áá¬ááŸá¬ ááááºáááºá ááẠááŸá áºáá¯ááŸááááºá
á¡ááá·áºááŸá
áºááá·áºááœáẠssh áá»áááºáááºááŸá¯ááᯠáá
áºááŒáá¯ááºááẠááŒááºáááºáá°áá±á¬ááºááŒááºážá¡ááá·áºááᯠááŸá±á¬ááºááŸá¬ážááá¯ááºáááº- ssh áááá¯ááºážááá·áºááœáẠááá¯ááºááá¯ááºááŸáá·áº áááºáá±áá»á¬áá¶á០á
á®áá¶ááá·áºááœá²áá¬ážáá±á¬ host ááá¯á· ááá¯ááºáá»á¬ážááᯠááœáŸá²ááŒá±á¬ááºážááá·áºá¡áá«ááœáẠááŸá±á¬ááºááŸá¬ážááá¯ááºáááºá
ááœáá·áºáá¬ážáá±á¬ ssh áá»áááºáááºááŸá¯ááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯áááºá ááá¯á¡ááºáá±á¬áá±á¬á·áá»á¬ážááᯠssh áááá¯ááºážááá·áºáá¶ááá¯á· áá±ážááá¯á·áá«á ááá¯á·áá±á¬áẠá¡á±á¬ááºáá«ááá¯á·ááᯠá
áááºáá¯ááºáá±á¬ááºááááá·áºáááº- áááá¡ááŒááẠssh áá»áááºáááºááŸá¯áá
áºáá¯ááᯠá
áááºáá±á¬á¡áá«á áááºážááẠáá±á¬ááºáááºááœá²áááºáááºááŸá¯áá»á¬ážááœáẠáááºážáá¯áá±á«áºáá±á¬ control socket ááᯠáááºáá¶áááºáá®ážáá±ážáááºááŒá
áºááŒá®ážá áááºážááẠá¡ááá¯áá« socket áááºááŸáááŸá¯ááᯠá
á
áºáá±ážáááºááŒá
áºááŒá®áž á¡á±á¬ááºááŒááºáá«á áááºážááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯áá«á ááŸáááŒá®ážáá¬áž ssh áá»áááºáááºááŸá¯á á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá¬ážáááºááá±á¬áá±á«ááºá
á±áááºá á¡áá¯ááºááá¯ááºááá·áºá¡áá« áá»áááºáááºááŸá¯ááᯠááááºážááááºážááẠá¡áá»áááºáááºááŸááºááá¯ááºááŒáá«á
áá¯á·á ááœááºááá¯ááá¯áááºááŸá¯ááá¯ááºáá«áááºá
ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"
ááá¯ááºáá»á¬ážááᯠá
á®áá¶ááá·áºááœá²ááá·áºáá±áá¬ááá¯á· ááœáŸá²ááŒá±á¬ááºážáá¬ááœáẠááœáá·áºáá¬ážááŒá®ážááŒá
áºáá±á¬ ssh áá»áááºáááºááŸá¯ááᯠááŒááºáááºá¡áá¯á¶ážááŒá¯áááºá á¡ááŒá¬ážá¡áááºááá áááºááẠssh_tranfer_method ááᯠáááºááŸááºáá«á á€á¡ááŒá±á¬ááºážá¡áá¬ááŸáá·áºáááºáááºáá±á¬ á
á¬ááœááºá
á¬áááºážáá»á¬ážááẠá¡ááœááºááᬠááŒá®ážáá¬ážáá«áááºá
transfer_method = piped
á
áá¬ážáá
ááºá "develop" áá¬áááœá²ááœáẠá€áááºáááºáááºážááŸááá«áááºá
áá¬ážááá¯áááŒá±á¬ááºáá²á· áááºážááœá²ááá¯áááŒá±á¬ááºáá«áá²á·á
áá±á¬ááºáááºá¡áá¯á¶ážáááºáá±á¬ setting ááŸá¬ forks ááŒá
áºáááºá áááºážááẠhost áá»á¬ážááŸáá·áºáá
áºááŒáá¯ááºáááºáá»áááºáááºááŒá®ážá¡áá¯ááºáá»á¬ážááá¯áá¯ááºáá±á¬ááºááá·áºá¡áá¯ááºááá¬ážáá¯ááºáááºážá
ááºá¡áá±á¡ááœááºááá¯áá¯á¶ážááŒááºáááºá Python ááá°ážááŒá¬ážáá»ááºáá»á¬ážááŒá±á¬áá·áº Ansible ááẠPython 2.7 ááá¯áááºáááºáá¶á·ááá¯ážáá±ážáá±á¬ááŒá±á¬áá·áºá áá¯ááºáááºážá
ááºáá»á¬ážááᯠáá¯ááºáááºážá
ááºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒáááºá Python XNUMX ááẠááá·áºá¡ááœáẠasyncio áááŸááá±á¬ááŒá±á¬áá·áºá á€áá±áá¬ááœáẠasynchronous á¡ááŒá¯á¡áá°ááᯠááááºáááºáá±ážááẠá¡ááŒá±á¬ááºážáááŸááá«á áá¯á¶áá±á¡á¬ážááŒáá·áº Ansible áááºáááºáááºá
forks = 20
ááááºážáá»á¯ááºá ááºááœáẠáááá¯ááºáá±á¬ memory ááá¬áááŸáá·áº áááºáááºáá±á¬ á€áá±áá¬ááœáẠá¡áááºá¡áá²á¡áá»áá¯á·ááŸáááá¯ááºáááºááᯠáá»áœááºá¯áẠáá»ááºáá»ááºážááááá±ážáá«áááºá áá áºáááºážááá¯ááá±á¬áº áááºááẠforks=100500 ááᯠáááºááŸááºááá¯ááºáááºá ááá¯á·áá±á¬áº áááºážááẠá¡áá¯ááºááŒá áºáááºáᯠáááºáá°á ááŒá±á¬ááááºážá
á¡á¬ážáá¯á¶ážááᯠáá±á«ááºážááá·áºááá¯ááºáá«á
ááááºá¡áá±ááŒáá·áº ansible.cfg (ini áá±á¬áºáááºá¡ááœááº) ááá¯á¡ááºáá±á¬áááºáááºáá»á¬ážááẠá€áá²á·ááá¯á·ááŒá áºááá¯ááºáááº-
[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped
áá»ááºážáá¬áá±á¬áá°áá áºáŠážá áá¬áá¬áẠYaML-á á¬áááºážáá²ááœáẠá¡áá¬á¡á¬ážáá¯á¶ážááᯠááŸááºáá¬ážááá¯áá«áá áááºážááẠá€áá²á·ááá¯á· ááŒááºááœá±á·ááá¯ááºáááº-
---
all:
vars:
ansible_ssh_pipelining: true
ansible_ssh_transfer_method: piped
ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m
áá¶ááá±á¬ááºážá áœá¬ááŒáá·áºá áááºážááẠ"á á¯áá±á¬ááºážááŒááºáž = á áááº/ááŸááºážáááºážááŒááºáá¬ážá áœá¬" ááŸáá·áº "forks = 20" áááºáááºáá»á¬ážááŸáá·áº á¡áá¯ááºááá¯ááºáá«- áááºážááá¯á·á YaML ááŸáá·áº áá®áá»áŸáá±á¬ áá á¹á ááºážáá»á¬áž áááŸááá«á áááºážááá¯á·ááᯠansible.cfg ááœáẠáááºááŸááºáá±á¬áºáááºážáá±á¬ááºážá ááá¯á·ááá¯áẠáááºážááá¯á·á¡á¬áž áááºáááºážáá»áẠááŒá±á¬ááºážáá²ááá¯ááºáá±á¬ ANSIBLE_GATHERING ááŸáá·áº ANSIBLE_FORKS ááŸáááá·áº ááŒááºáááºážáá«áááºá
Mitogen á¡ááŒá±á¬ááºáž
- áá«á Mitogen áááºááŸá¬áá² - áá»á
áºááŸá
áœá¬áá±á¬á
á¬áááºáá°áá±ážááá¯ááºááœáá·áºááŸááááºá áá®áá±á¬ááºážáá«ážááŸá¬ áááºááŸá¬ááŸáááŸááá«áá°ážá ááá¯á·áá±á¬áº á¡áááºá áááºááẠáááºážááá¯ááºááá¯áááºááŒá®áž á¡áááºááŒá±á¬áá·áº Mitogen ááŸáá·áº ááá·áº playbook áá»ááºááœá¬ážáááºááᯠá¡ááŒá±ááŸá¬ááẠá¡áááºááá·áºááŒá
áºáá±áá«áá ááá¯á·áá±á¬áº vanilla Ansible ááŸáá·áº áá±á¬ááºážá
áœá¬á¡áá¯ááºáá¯ááºáááºá ááá¯á·ááá¯áẠáá°áá®áá±á¬ playbook ááẠááááºá áá±á¬ááºážááœááºá
áœá¬á¡áá¯ááºáá¯ááºáá±ááááºážá ááá¯á·áá±á¬áº á¡ááºááááºáá
áºáá¯ááŒá®ážáá±á¬áẠáá°ážáááºážáá±á¬á¡áá¬áá»á¬ážááᯠá
áááºáá¯ááºáá±á¬ááºáááºááá¯áá»áŸáẠMitogená áááºážáá²á· tool ááŒá
áºááá¯ááºáááºá á¡áá¯á¶ážáá»áá«á áá¬ážáááºáá«á áá±á¬ááºážáá«ážáá»á¬ážáá±ážáá« - á
áááºáááºáá
á¬ážáááºáááºá
á¡áááºááŒá±á¬áá·áº áá»áœááºá¯ááºááẠMitogen ááᯠáá¯áá¹ááá¯ááºáá±ážá¡á á¡áá¯á¶ážáááŒá¯áááááºážá áá á¹á á¬áááºážááẠá¡áá¯ááºáá»á¬áž ááááºááá¯ážááŸááºážááŒá®áž á¡áá¬á¡á¬ážáá¯á¶áž á¡áááºááŒá±áá±ááá»áŸ áá¬ááááºáá¯á¶áž áá á¹á á¬áááºážááᬠá¡áá¯ááºáá¯ááºáá±á¬ááŒá±á¬áá·áº ááŒá áºáááºá áá«áá±ááá·áº áááºááẠáá«ááŸááá¯áẠáá¬áááºááᯠáááºážáááºážááŸáá·áºááẠáá«áá²á áá«ááá¯á·áá±á¬ááºáá¬áá«ááŒá®- áá¯á¶á·ááŒááºááŸá¯á¡áá±áá²á· áááºáá áºáá¯ááºá ᬠááááºááŸááºáá¬ážáá²á· ááŒáœááºážáá»ááºáááºáá áºáá¯ááºá á¬á áááºážáá®ááᯠáá»á¶áááºážáá¬ááŒá®áž áá¯á¶ááŒá®ážá¡á±á¬ááºáá¯ááºááá¯á·á ááœá²ááŸá¬ážáá±áá²á·á¡áá¬á¡á¬ážáá¯á¶ážá âá¡á¬ážáá¯á¶ážááá¯áá»á±ážáá°ážáááºáá«áááºá áá°ááá¯ááºážá ááœááºááœááºáááºáááºáá«áá²áâ áá±áá°áá»á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááẠáá±á¬ááºááẠâááŒá±á¡á±á¬áẠáá±á«ááºááŒááºážâ á¡ááœáẠá¡ááŒá±á¬ááºážáááºážáá»á¬ážááᯠááŸá¬ááœá±ááẠá¡áá»áááºáááŒá¯ááºážáá»ááºáá«á
á
á¬áááºááŒááºážáá¯ááºáááºážá
ááºá¡ááœááºáž á€áááºáááºá¡áá»áá¯á·ááᯠááŸá¬ááœá±ááœá±á·ááŸááá²á·áááºá
á
á¬áááºážááœááºážá¡áá¯á¶ážááŒá¯áá°áá»á¬ážáᬠá
á
áºáááºážááœáẠáá«áááºááá¯ááºáá«áááºá
ááá·áºááá±á¬áá»ááºáá»á¬ážááᯠá¡ááŸáááºááŒáŸáá·áºááẠá¡á±á¬ááºáá« Ansible áááºáááºáá»á¬ážáá²á០áááºááá·áºá¡áá¬ááᯠáááºá¡áá¯á¶ážááŒá¯ááááºážá
-
69,6%pipelining=true32
-
34,8%á á¯á ááºážááŸá¯ = áááºááŒááº/ ááŒááºáá¬ážá áœá¬ áá
-
52,2%ssh_args = "-o ControlMaster= á¡ááá¯á¡áá»á±á¬áẠ-o ControlPersist=..." 24
-
17,4%transfer_method = piped8
-
63,0%áááºáááºáž = XXX29
-
6,5%áá«ááœá±á¡á¬ážáá¯á¶ážá Mitogen3 áá²á
-
8,7%Mitogen + áá«ááẠá€áááºáááºáá»á¬ážáá²á០áááºááá·áºá¡áá¬ááᯠááŸááºáá¬ážáááºáááºážá
á¡áá¯á¶ážááŒá¯áá° áá áŠáž áá²áá±ážáá²á·áááºá á¡áá¯á¶ážááŒá¯áá° 46 áŠáž ááŸá±á¬ááºáá²á·áááºá
Ansible á áá±á¬ááºáááºá¡ááŒá±á¬ááºážá¡áá¬áá»á¬áž ááá¯áá»ááºáá«ááá¬ážá
-
78,3%áá¯ááºáá«ááẠá á
-
21,7%áá¯ááºáááºá áá«ááá¯ááŒá®áž á¡áá¬áá¶á¡áá¬ááœá±áá² ááá¯áá»ááºáááºááá
-
0,0%ááá¯ááºáá°ážá áá¬á០áááºá áᬠáááá¯áá«áá°ážá
-
0,0%ááá¯ááºáá°ážá ááŸá¯ááºááœá±ážáááº!!!0
á¡áá¯á¶ážááŒá¯áá° 69 áŠáž áá²áá±ážáá²á·áááºá á¡áá¯á¶ážááŒá¯áá° 7 ááŸá±á¬ááºáá±áá²á·áá«áááºá
source: www.habr.com