ืื ืื ืกืื ืฉืขื ืืืืจืืช ืืจืืจืช ืืืืื Ansible ืื ืืืืื ืืขืฉืืช ืืช ืืขืืืื ืฉืื ืืืจ ืืืื. ืืืืืจ ืืฆืืื ืืกืคืจ ืกืืืืช ืืื ืืืฆืืข ืืื ืืืื ืฉืืืืฉื ืฉื ืืืืจืืช, ืฉืืืชืื ืืืื ืฉืืืืืจื ืืช ืืืืจืืช ืืคืจืืืงื ืฉืืื.
ืืื ืืืืื ื ืืื ื-Ansible 2.9.x, ืฉืืืชืงื ื-virtualenv ืืจื ืฉื ืืฆืจ ืืืจื ืืืืขืืคืช ืขืืื.
ืืืืจ ืืืชืงื ื, ืฆืืจ ืงืืืฅ "ansible.cfg" ืืื ืกืคืจ ืืืคืขืื ืฉืื - ืืืงืื ืื ืืืคืฉืจ ืื ืืืขืืืจ ืืช ืืืืืจืืช ืืืื ืืื ืขื ืืคืจืืืงื, ืื ืืกืฃ ืื ืืืืขื ื ืืืืคื ืืืืืืื ืืืื.
ืฆื ืจืช
ืืืงื ืืืื ืืืจ ืฉืืขื ืขื ืืฆืืจื ืืืฉืชืืฉ ื-pipelining, ืืืืืจ, ืื ืืืขืชืืง ืืืืืืื ืืืขืจืืช ืืงืืฆืื ืฉื ืืขืจืืช ืืืขื, ืืื ืืืขืืืจ ืืจืืืื zip ืขืืืฃ ื-Base64 ืืฉืืจืืช ื-stdin ืฉื ืืชืืจืืื Python, ืืื ืืืจืื ืืืื ืื, ืืื ืืขืืืื ื ืฉืืจ ืขืืืื:
pipelining = True
ืืืกืืฃ ืขืืืืืช
ืืืืขืชื ืฉืขื ืืืืจืืช ืืจืืจืช ืืืืื, Ansible ืขืืืจ ืื ืืฆืื ืืืืืช ืืืกืืฃ ืฉื ืขืืืืืช ืขืืืจ ืื ืืืืจืืื ืืืฉืชืชืคืื ืื? ืืืืคื ืืืื, ืื ืื ืืืขืช, ืขืืฉืื ืืชื ืืืืข. ืืื ืืื ืืข ืืืช, ืขืืื ืืืคืขืื ืืช ืืฆื ืืืงืฉื ืืืคืืจืฉืช ืืืืกืืฃ ืขืืืืืช (ืืคืืจืฉ) ืื ืืช ืืืฆื ืืืื. ืื ืืืืกืคื ืขืืืืืช ืจืง ืืืืชื ืืืจืืื ืฉืื ื ืชืงืื ืืื ืืืฆืืืช ืงืืืืืช.
UPD. ืืขืช ืืขืชืงื, ืืืื ืขืืื ืืืืืจ ืืืช ืืืืืืจืืช ืืืื.
gathering = smart|explicit
ืฉืืืืฉ ืืืืจ ืืืืืืจื ssh
ืื ืื ืคืขื ืืคืขืืช ืืช Ansible ืืืฆื ื ืืคืื ืืืืื (ืืคืฉืจืืช ื-"v", ืฉืืืืจืช ืขื ืขืฆืื ืคืขื ืืืช ืขื ืชืฉืข ืคืขืืื), ืืืื ืฉืืชื ืื ืฉืืืืืจื ssh ื ืืฆืจืื ืื ืฉืืจืื ืื ืืืื. ืื ืื ืืื ืืฉ ืืื ืืงืืืืช.
ืืชื ืืืื ืืืืื ืข ืืืฉืื ืฉื ืืฆืืจืช ืืืืืจ ssh ืืืืฉ ืืฉืชื ืจืืืช ืื ืืื ืืช: ืื ืืฉืืจืืช ืืืงืื ssh, ืืื ืืขืช โโืืขืืจืช ืงืืฆืื ืืืืจื ืืื ืืื ืืืื ืื.
ืืื ืืขืฉืืช ืฉืืืืฉ ืืืืจ ืืืืืืจ ssh ืคืชืื, ืคืฉืื ืืขืืืจื ืืช ืืืคืชืืืช ืืืจืืฉืื ืืืงืื ssh. ืืืืจ ืืื ืืื ืืชืืื ืืืฆืข ืืช ืืคืขืืืืช ืืืืืช: ืืขืช ืืฆืืจืช ืืืืืจ ssh ืืคืขื ืืจืืฉืื ื, ืืื ืืฆืืจ ืื ืืกืฃ ืื ืฉื ืงืจื ืฉืงืข ืืงืจื, ืืืชืงื ืืช ืขืืงืืืช, ืืื ืืืืืง ืืช ืงืืืื ืฉื ืฉืงืข ืื, ืืื ืืฆืืื, ืืขืฉื ืฉืืืืฉ ืืืืจ ื- ืืืืืจ ssh ืงืืื. ืืืื ืฉืืื ืืืื ืืืืื ื, ืืืื ื ืงืืข ืืช ืืืื ืืฉืืืจืช ืืงืฉืจ ืืืฉืจ ืืื ืื ืคืขืื. ืืชื ืืืื ืืงืจืื ืขืื ื
ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"
ืืื ืืขืฉืืช ืฉืืืืฉ ืืืืจ ืืืืืืจ ssh ืฉืืืจ ืคืชืื ืืขืช ืืขืืจืช ืงืืฆืื ืืืืจื ืื ืืื, ืคืฉืื ืฆืืื ืืืืจื ืื ืืืืขื ืืืจืช ssh_tranfer_method. ืืชืืขืื ืื ืืฉื ืื ืืื ืืืื
transfer_method = piped
ืืื, ืืขื ืฃ "ืืคืชื" ืื ืืืืืจื ืืื ืงืืืืช
ืื ืชืคืืื ืืืกืืื, ืชืคืืื ืืืืืื
ืืืืจื ืฉืืืืฉืืช ื ืืกืคืช ืืื ืืืืืืช. ืืื ืงืืืข ืืช ืืกืคืจ ืชืืืืื ืืขืืืื ืฉืืชืืืจื ืื ืืื ืืช ืืืืจืืื ืืืืฆืขื ืืฉืืืืช. ืืฉื ืืืืืจืืืืช ืฉื Python ืืฉืคื, ื ืขืฉื ืฉืืืืฉ ืืชืืืืืื, ืื ืืฉืจืฉืืจืื, ืื Ansible ืขืืืื ืชืืืืช ื-Python 2.7 - ืืื ืืกืื ืฆืื ืืฉืืืื, ืืื ืืขื ืืืฆืื ืืื ืืชื ืืืืช ืืกืื ืืจืื ืืช! ืืืจืืจืช ืืืื, Ansible ืคืืขื
forks = 20
ืื ื ืจืง ืืืืืจ ืืืชื ืืื ืฉืืืชืื ื ืืื ืืื ืงืฉืืื ืืงืฉืืจืื ืืืืืช ืืืืืจืื ืืืืื ื ืืืืื ืช ืืืงืจื. ืืืืืื ืืืจืืช, ืืคืฉืจ ืืืืื ืืืืืืจ ืืืืืืช=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
ืืืจืื ืืฆืขืจ, ืื ืื ืืขืืื ืขื ืืืืืจืืช "ืืืกืืฃ = ืืื/ืืคืืจืฉ" ื"ืืืืืืช = 20": ืืืงืืืืืช ื-YaML ืฉืืื ืื ืงืืืืืช. ืื ืฉื ืงืืข ืืืชื ื-ansible.cfg, ืื ืฉื ืขืืืจ ืืืชื ืืจื ืืฉืชื ื ืืกืืืื ANSIBLE_GATHERING ื-ANSIBLE_FORKS.
ืืืื ืืืืืื
- ืืืคื ืื ืืืื ืืืืืื? - ืืืืชื ืืฉืืื, ืงืืจื ืืงืจ. ืืฉืื ืืงืื ืืืืืจ ืืื. ืืื ืื ืืชื ืืืืช ืืืื ืืงืจืื ืืช ืืงืื ืฉืื ืืืืืื ืืื ืกืคืจ ืืืคืขืื ืฉืื ืงืืจืก ืขื ืืืืืื, ืืื ืขืืื ืืฆืืื ืขื ืื ืื Ansible, ืื ืืื ืืืชื ืกืคืจ ืืคืขืื ืขืื ืืฆืืื ืืคื ื ืื, ืืื ืืืจื ืขืืืื ืืชืืื ืืขืฉืืช ืืืจืื ืืืืจืื - ืืืื, ืืืืืื ืืืื ืืืืืช ืืืื ืฉืื. ืืืืฉื ืืช ืื, ืืืืื ืืช ืื, ืืืชืื ืืืืจืื - ืื ื ืืงืจื ืืช ืื ืืขื ืืื.
ืืื ืื ื ืืืฉืืช ืื ืืฉืชืืฉ ืืืืืืื? ืืืื ืืืืืื ืื ืขืืื ืจืง ืื ืขืื ืืืฉืืืืช ืืืฉ ืคืฉืืืืช ืืืื ืืกืืจ. ืขื ืืืช, ืื ืชืคื ื ืงืฆืช ืฉืืืื ืื ืืืื ื - ืืื, ืืืขื ื: ืืชืืืื ืขืคืื ืขืืืื ืงืืืฅ ืืจืืืื ืื ืืจืืจืื, ืืืืฉืืืช ืืชืืื ื, ืื ืื ืฉืืกืจ ืืื ืืืฉืคื ืื ืคืืฅ "ืชืืื ืืืืื , ืืืื ืืืคืฉืืื." ืืืืคื ืืืื, ืื ื ืคืฉืื ืื ืจืืฆื ืืืืื ืืื ืืืืจืจ ืืช ืืกืืืืช ื"ืืคืืงื ืืืืชืจืชืืช" ืืืื.
ืืืง ืืืืืืจืืช ืืืื ืืชืืื ืืืืื ืชืืืื ืืงืจืืื
ืจืง ืืฉืชืืฉืื ืจืฉืืืื ืืืืืื ืืืฉืชืชืฃ ืืกืงืจ.
ืืืืื ืืืืืจืืช Ansible ืืืืืช ืืชื ืืฉืชืืฉ ืืื ืืืืืฅ ืืช ืืคืจืืืงืืื ืฉืื?
-
69,6%pipelining=true32
-
34,8%ืืืกืืฃ = ืืื/ืืคืืจืฉ16
-
52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=..."24
-
17,4%transfer_method = piped8
-
63,0%ืืืืืืช = XXX29
-
6,5%ืฉืื ืืืจ ืืื, ืจืง ืืืืืื3
-
8,7%Mitogen + ืื ื ืืฆืืื ืืืื ืืืืืืจืืช ืืืื4
46 ืืฉืชืืฉืื ืืฆืืืขื. ืืฉืชืืฉ ืืื ื ืื ืข.
ืจืืฆื ืขืื ืืืจืื ืขื Ansible?
-
78,3%ืื, ืืืืื54
-
21,7%ืื, ืื ื ืจืง ืจืืฆื ืขืื ืืืจืื ืืืจืืงืืจ!15
-
0,0%ืื, ืืื ืื ื ืืืฅ ืืืื ื0
-
0,0%ืื, ืื ืืกืืื!!!0
69 ืืฉืชืืฉืื ืืฆืืืขื. 7 ืืฉืชืืฉืื ื ืื ืขื.
ืืงืืจ: www.habr.com