เชœเชตเชพเชฌเซ€เชฌเชฒเชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเซเช‚

เชœเชตเชพเชฌเซ€เชฌเชฒเชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเซเช‚
เชคเซ‡ เช•เซ‹เชˆ เชฐเชนเชธเซเชฏ เชจเชฅเซ€ เช•เซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเชพเชฅเซ‡ Ansible เชคเซ‡เชจเซเช‚ เช•เชพเชฎ เช–เซ‚เชฌ เชเชกเชชเชฅเซ€ เช•เชฐเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€. เชฒเซ‡เช–เชฎเชพเช‚ เชนเซเช‚ เช†เชจเชพ เชฎเชพเชŸเซ‡ เช˜เชฃเชพ เช•เชพเชฐเชฃเซ‹ เชฆเชฐเซเชถเชพเชตเซ€เชถ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เชจเซเชฏเซ‚เชจเชคเชฎ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ€เชถ เชœเซ‡, เชคเชฆเซเชฆเชจ เชธเช‚เชญเชตเชคเชƒ, เชคเชฎเชพเชฐเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ€ เช—เชคเชฟเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เช•เชฐเชถเซ‡.

เช…เชนเซ€เช‚ เช…เชจเซ‡ เชจเซ€เชšเซ‡ เช…เชฎเซ‡ Ansible 2.9.x เชชเชฐ เชšเชฐเซเชšเชพ เช•เชฐเซ€เช เช›เซ€เช, เชœเซ‡ เชคเชฎเชพเชฐเซ€ เชฎเชจเชชเชธเช‚เชฆ เชฐเซ€เชคเซ‡ เชคเชพเชœเซ€ เชฌเชจเชพเชตเซ‡เชฒ เชตเชฐเซเชšเซเชฏเซเช…เชฒเซ‡เชจเชตเชฎเชพเช‚ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚.

เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชชเช›เซ€, เชคเชฎเชพเชฐเซ€ เชชเซเชฒเซ‡เชฌเซเช•เชจเซ€ เชฌเชพเชœเซเชฎเชพเช‚ เชเช• "ansible.cfg" เชซเชพเช‡เชฒ เชฌเชจเชพเชตเซ‹ - เช† เชธเซเชฅเชพเชจ เชคเชฎเชจเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเชพเชฅเซ‡ เช† เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ‡ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡, เช‰เชชเชฐเชพเช‚เชค เชคเซ‡ เชคเชฆเซเชฆเชจ เช†เชชเชฎเซ‡เชณเซ‡ เชฒเซ‹เชก เชฅเชถเซ‡.

เชชเชพเช‡เชชเชฒเชพเช‡เชจเชฟเช‚เช—

เช•เซ‡เชŸเชฒเชพเช• เชฒเซ‹เช•เซ‹เช เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชชเชพเช‡เชชเชฒเชพเช‡เชจเชฟเช‚เช—เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชตเชฟเชถเซ‡ เชธเชพเช‚เชญเชณเซเชฏเซเช‚ เชนเชถเซ‡, เชเชŸเชฒเซ‡ เช•เซ‡, เชฒเช•เซเชทเซเชฏ เชธเชฟเชธเซเชŸเชฎเชจเซ€ เชซเชพเช‡เชฒ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซ€ เชจเช•เชฒ เชจ เช•เชฐเชตเซ€, เชชเชฐเช‚เชคเซ เชฌเซ‡เช 64 เชฎเชพเช‚ เช†เชตเชฐเชฟเชค เชเชฟเชช เช†เชฐเซเช•เชพเช‡เชตเชจเซ‡ เชธเซ€เชงเชพ เชœ เชชเชพเชฏเชฅเซ‹เชจ เช‡เชจเซเชŸเชฐเชชเซเชฐเชฟเชŸเชฐเชจเชพ stdin เชชเชฐ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเซเช‚, เชชเชฐเช‚เชคเซ เช…เชจเซเชฏ เช•เชฆเชพเชš เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชนเช•เซ€เช•เชค. เชเช• เชนเช•เซ€เช•เชค เชฐเชนเซ‡ เช›เซ‡: เช† เชธเซ‡เชŸเชฟเช‚เช— เชนเชœเซ เชชเชฃ เช“เช›เซ‹ เช…เช‚เชฆเชพเชœ เชฐเชนเซ‡ เช›เซ‡. เช•เชฎเชจเชธเซ€เชฌเซ‡, เชธเซเชกเซ‹เชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เช•เซ‡เชŸเชฒเชพเช• เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ Linux เชตเชฟเชคเชฐเชฃเซ‹ เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เช–เซ‚เชฌ เชœ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชจเชฅเซ€ - เชœเซ‡เชฅเซ€ เช† เช†เชฆเซ‡เชถเชจเซ‡ tty (เชŸเชฐเซเชฎเชฟเชจเชฒ) เชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ, เชคเซ‡เชฅเซ€ Ansible เช เช† เช–เซ‚เชฌ เชœ เช‰เชชเชฏเซ‹เช—เซ€ เชธเซ‡เชŸเชฟเช‚เช— เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเซ€ เชฆเซ€เชงเซเช‚.

pipelining = True

เชนเช•เซ€เช•เชคเซ‹ เชญเซ‡เช—เซ€ เช•เชฐเชตเซ€

เชถเซเช‚ เชคเชฎเซ‡ เชœเชพเชฃเซ‹ เช›เซ‹ เช•เซ‡ เชกเชฟเชซเซ‰เชฒเซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเชพเชฅเซ‡, เชฆเชฐเซ‡เช• เชจเชพเชŸเช• เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเซ€ เช เชคเซ‡เชฎเชพเช‚ เชญเชพเช— เชฒเซ‡เชจเชพเชฐเชพ เชคเชฎเชพเชฎ เชฏเชœเชฎเชพเชจเซ‹ เชฎเชพเชŸเซ‡ เชนเช•เซ€เช•เชคเซ‹เชจเซ‹ เชธเช‚เช—เซเชฐเชน เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡? เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชœเซ‹ เชคเชฎเชจเซ‡ เช–เชฌเชฐ เชจ เชนเชคเซ€, เชคเซ‹ เชนเชตเซ‡ เชคเชฎเซ‡ เชœเชพเชฃเซ‹ เช›เซ‹. เช†เชจเซ‡ เชฅเชคเซเช‚ เช…เชŸเช•เชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชคเชฅเซเชฏเซ‹ (เชธเซเชชเชทเซเชŸ) เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชชเชทเซเชŸ เชตเชฟเชจเช‚เชคเซ€ เชฎเซ‹เชก เช…เชฅเชตเชพ เชธเซเชฎเชพเชฐเซเชŸ เชฎเซ‹เชกเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชคเซ‡เชฎเชพเช‚, เช…เช—เชพเช‰เชจเชพ เชจเชพเชŸเช•เซ‹เชฎเชพเช‚ เชจ เช†เชตเซ€ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชฏเชœเชฎเชพเชจเซ‹เชจเซ€ เชœ เชนเช•เซ€เช•เชคเซ‹ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.
เชฏเซเชชเซ€เชกเซ€. เชจเช•เชฒ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชคเชฎเชพเชฐเซ‡ เช† เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชฎเชพเช‚เชฅเซ€ เชเช• เชชเชธเช‚เชฆ เช•เชฐเชตเซ€ เชชเชกเชถเซ‡.

gathering = smart|explicit

ssh เชœเซ‹เชกเชพเชฃเซ‹เชจเซ‹ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช—

เชœเซ‹ เชคเชฎเซ‡ เช•เซเชฏเชพเชฐเซ‡เชฏ เชกเชฟเชฌเช—เซ€เช‚เช— เชฎเซ‹เชกเชฎเชพเช‚ Ansible เชšเชฒเชพเชตเซเชฏเซเช‚ เชนเซ‹เชฏ ("v" เชตเชฟเช•เชฒเซเชช, เชเช• เชฅเซ€ เชจเชต เชตเช–เชค เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค), เชคเซ‹ เชคเชฎเซ‡ เชจเซ‹เช‚เชงเซเชฏเซเช‚ เชนเชถเซ‡ เช•เซ‡ ssh เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชธเชคเชค เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‚เชŸเซ€ เชœเชพเชฏ เช›เซ‡. เชคเซ‡เชฅเซ€, เช…เชนเซ€เช‚ เชชเชฃ เช•เซ‡เชŸเชฒเซ€เช• เชธเซ‚เช•เซเชทเซเชฎเชคเชพ เช›เซ‡.

เชคเชฎเซ‡ เชเช• เชœ เชธเชฎเชฏเซ‡ เชฌเซ‡ เชธเซเชคเชฐเซ‹ เชชเชฐ ssh เช•เชจเซ‡เช•เซเชถเชจ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพเชจเชพ เชชเช—เชฒเชพเชจเซ‡ เชŸเชพเชณเซ€ เชถเช•เซ‹ เช›เซ‹: เชฌเช‚เชจเซ‡ เชธเซ€เชงเชพ ssh เช•เซเชฒเชพเชฏเช‚เชŸเชฎเชพเช‚, เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชฎเซ‡เชจเซ‡เชœเชฐ เชชเชพเชธเซ‡เชฅเซ€ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เชฏเชœเชฎเชพเชจเชจเซ‡ เชซเชพเช‡เชฒเซ‹ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เชนเซ‹เชฏ.
เช–เซเชฒเซเชฒเชพ ssh เช•เชจเซ‡เช•เซเชถเชจเชจเซ‹ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชซเช•เซเชค ssh เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เช•เซ€เช“ เชชเชธเชพเชฐ เช•เชฐเซ‹. เชชเช›เซ€ เชคเซ‡ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชถเซ‡: เชชเซเชฐเชฅเชฎ เชตเช–เชค ssh เช•เชจเซ‡เช•เซเชถเชจ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชคเซ‡ เชตเชงเซเชฎเชพเช‚ เช•เชนเซ‡เชตเชพเชคเชพ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชธเซ‹เช•เซ‡เชŸ เชฌเชจเชพเชตเชถเซ‡, เช…เชจเซเช—เชพเชฎเซ€ เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชชเชฐ, เชคเซ‡ เช† เชœ เชธเซ‹เช•เซ‡เชŸเชจเซเช‚ เช…เชธเซเชคเชฟเชคเซเชต เชคเชชเชพเชธเชถเซ‡, เช…เชจเซ‡ เชœเซ‹ เชธเชซเชณ เชฅเชพเชฏ, เชคเซ‹ เชคเซ‡เชจเซ‹ เชซเชฐเซ€เชฅเซ€ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹. เชนเชพเชฒเชจเซเช‚ ssh เชœเซ‹เชกเชพเชฃ. เช…เชจเซ‡ เช† เชฌเชงเซเช‚ เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชœเซเชฏเชพเชฐเซ‡ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เช•เชจเซ‡เช•เซเชถเชจ เชœเชพเชณเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เชธเชฎเชฏ เชธเซ‡เชŸ เช•เชฐเซ€เช. เชคเชฎเซ‡ เชตเชงเซ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹ ssh เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ, เช…เชจเซ‡ Ansible เชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เช…เชฎเซ‡ เชซเช•เซเชค ssh เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เชตเชฟเช•เชฒเซเชชเซ‹ "เชซเซ‹เชฐเชตเชฐเซเชกเชฟเช‚เช—" เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช.

ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"

เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เชฏเชœเชฎเชพเชจ เชชเชฐ เชซเชพเช‡เชฒเซ‹ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช–เซเชฒเซเชฒเชพ ssh เช•เชจเซ‡เช•เซเชถเชจเชจเซ‹ เชชเซเชจเชƒเช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชซเช•เซเชค เช…เชจเซเชฏ เช…เชœเชพเชฃเซ€ เชธเซ‡เชŸเชฟเช‚เช— ssh_tranfer_method เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ‹. เช† เชตเชฟเชทเชฏ เชชเชฐ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชคเซเชฏเช‚เชค เช›เซ‡ เช•เช‚เชœเซเชธ เช…เชจเซ‡ เชญเซเชฐเชพเชฎเช•, เช•เชพเชฐเชฃ เช•เซ‡ เช† เชตเชฟเช•เชฒเซเชช เช–เซ‚เชฌ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡! เชชเชฃ เชตเชพเช‚เชšเชจ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชก เชคเชฎเชจเซ‡ เชฌเชฐเชพเชฌเชฐ เชถเซเช‚ เชฅเชถเซ‡ เชคเซ‡ เชธเชฎเชœเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡: dd เช†เชฆเซ‡เชถ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เชนเซ‹เชธเซเชŸ เชชเชฐ เชถเชฐเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เชœเซ‡ เช‡เชšเซเช›เชฟเชค เชซเชพเช‡เชฒ เชธเชพเชฅเซ‡ เชธเซ€เชงเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเชถเซ‡.

transfer_method = piped

เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, "เชตเชฟเช•เชพเชธ" เชถเชพเช–เชพเชฎเชพเช‚ เช† เชธเซ‡เชŸเชฟเช‚เช— เชชเชฃ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡ เช•เซเชฏเชพเช‚เชฏ เชœเชตเชพเชจเซเช‚ เชจเชฅเซ€.

เช›เชฐเซ€เชฅเซ€ เชกเชฐเชถเซ‹ เชจเชนเซ€เช‚, เช•เชพเช‚เชŸเชพเชฅเซ€ เชกเชฐเชถเซ‹

เช…เชจเซเชฏ เช‰เชชเชฏเซ‹เช—เซ€ เชธเซ‡เชŸเชฟเช‚เช— เชซเซ‹เชฐเซเช•เชธ เช›เซ‡. เชคเซ‡ เช•เชพเชฐเซเชฏเช•เชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชเช• เชธเชพเชฅเซ‡ เชฏเชœเชฎเชพเชจเซ‹ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชถเซ‡ เช…เชจเซ‡ เช•เชพเชฐเซเชฏเซ‹ เช•เชฐเชถเซ‡. เชญเชพเชทเชพ เชคเชฐเซ€เช•เซ‡ เชชเชพเชฏเชฅเซ‹เชจเชจเซ€ เชตเชฟเชถเชฟเชทเซเชŸเชคเชพเช“เชจเซ‡ เชฒเซ€เชงเซ‡, เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡, เชฅเซเชฐเซ‡เชกเซ‹เชจเซ‹ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡ 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เชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เช•เชฐเซ€เช เช›เซ€เช.

Mitogen เชตเชฟเชถเซ‡
- เช† Mitogen เชตเชฟเชถเซ‡ เช•เซเชฏเชพเช‚ เช›เซ‡? - เชคเชฎเชจเซ‡ เชชเซ‚เช›เชตเชพเชจเซ‹ เช…เชงเชฟเช•เชพเชฐ เช›เซ‡, เชชเซเชฐเชฟเชฏ เชตเชพเชšเช•. เช† เชฒเซ‡เช–เชฎเชพเช‚ เช•เซเชฏเชพเช‚เชฏ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเซ‡ เช–เชฐเซ‡เช–เชฐ เชคเซ‡เชจเซ‹ เช•เซ‹เชก เชตเชพเช‚เชšเชตเชพ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชชเซเชฒเซ‡เชฌเซเช• เชถเชพ เชฎเชพเชŸเซ‡ เชฎเชฟเชŸเซ‹เชœเซ‡เชจ เชธเชพเชฅเซ‡ เช•เซเชฐเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช›เซ‹, เชชเชฐเช‚เชคเซ เชตเซ‡เชจเซ€เชฒเชพ เชเชจเซเชธเชฟเชฌเชฒ เชธเชพเชฅเซ‡ เชธเชพเชฐเซเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เช…เชฅเชตเชพ เชคเซ‡ เชœ เชชเซเชฒเซ‡เชฌเซเช• เชชเชนเซ‡เชฒเชพ เชถเชพ เชฎเชพเชŸเซ‡ เชธเชพเชฐเซเช‚ เช•เชพเชฎ เช•เชฐเชคเซ€ เชนเชคเซ€, เชชเชฐเช‚เชคเซ เช…เชชเชกเซ‡เชŸ เชชเช›เซ€ เชตเชฟเชšเชฟเชคเซเชฐ เชตเชธเซเชคเซเช“ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚ - เชธเชพเชฐเซเช‚, เชฎเชฟเชŸเซ‹เชœเซ‡เชจ เชธเช‚เชญเชตเชคเชƒ เชคเชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡. เชคเซ‡เชจเซ‡ เชฒเชพเช—เซ เช•เชฐเซ‹, เชคเซ‡เชจเซ‡ เชธเชฎเชœเซ‹, เชฒเซ‡เช–เซ‹ เชฒเช–เซ‹ - เชนเซเช‚ เชคเซ‡เชจเซ‡ เชฐเชธ เชธเชพเชฅเซ‡ เชตเชพเช‚เชšเซ€เชถ.

เชถเชพ เชฎเชพเชŸเซ‡ เชนเซเช‚ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฐเซ€เชคเซ‡ Mitogen เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ‹ เชจเชฅเซ€? เช•เชพเชฐเชฃ เช•เซ‡ เช—เซเชฒเซ‡เชกเซ€เชฏเซ‹เชฒเชธ เชคเซ‡ เชฎเชพเชคเซเชฐ เชคเซเชฏเชพเชฐเซ‡ เชœ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เช•เชพเชฐเซเชฏเซ‹ เช–เชฐเซ‡เช–เชฐ เชธเชฐเชณ เชนเซ‹เชฏ เช…เชจเซ‡ เชฌเชงเซเช‚ เชธเชพเชฐเซเช‚ เชนเซ‹เชฏ. เชคเซ‡เชฎ เช›เชคเชพเช‚, เชœเซ‹ เชคเชฎเซ‡ เชกเชพเชฌเซ€ เช•เซ‡ เชœเชฎเชฃเซ€ เชคเชฐเชซ เชฅเซ‹เชกเซเช‚ เชตเชณเซ‹ เช›เซ‹ - เชฌเชธ, เช…เชฎเซ‡ เช†เชตเซ€ เช—เชฏเชพ เช›เซ€เช: เชœเชตเชพเชฌเชฎเชพเช‚, เชฅเซ‹เชกเชพ เช…เชธเซเชชเชทเซเชŸ เช…เชชเชตเชพเชฆเซ‹ เชคเชฎเชพเชฐเซ€ เชคเชฐเชซ เช‰เชกเซ‡ เช›เซ‡, เช…เชจเซ‡ เชšเชฟเชคเซเชฐเชจเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชœเซ‡ เช–เซ‚เชŸเซ‡ เช›เซ‡ เชคเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชตเชพเช•เซเชฏ เช›เซ‡ "เชคเชฎเชพเชฐเชพ เชฌเชงเชพเชจเซ‹ เช†เชญเชพเชฐ , เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟ เชฎเซเช•เซเชค เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชนเซเช‚ เชซเช•เซเชค เช†เช—เชพเชฎเซ€ "เช…เช‚เชกเชฐเช—เซเชฐเชพเช‰เชจเซเชก เชจเซ‹เช•" เชจเชพ เช•เชพเชฐเชฃเซ‹ เชถเซ‹เชงเชตเชพเชฎเชพเช‚ เชธเชฎเชฏ เชฌเช—เชพเชกเชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชจเชฅเซ€.

เช†เชฎเชพเช‚เชจเซ€ เช•เซ‡เชŸเชฒเซ€เช• เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชตเชพเช‚เชšเชจ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฎเชณเซ€ เช†เชตเซ€ เชนเชคเซ€ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชก เชธเซเชต-เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃ เชจเชพเชฎ เชนเซ‡เช เชณ เช•เชจเซ‡เช•เซเชถเชจ เชชเซเชฒเช—เช‡เชจ โ€œssh.pyโ€. เชนเซเช‚ เช†เชถเชพ เชธเชพเชฅเซ‡ เชตเชพเช‚เชšเชจเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชถเซ‡เชฐ เช•เชฐเซเช‚ เช›เซเช‚ เช•เซ‡ เชคเซ‡ เช•เซ‹เชˆ เชฌเซ€เชœเชพเชจเซ‡ เชธเซเชคเซเชฐเซ‹เชคเซ‹ เชœเซ‹เชตเชพ, เชคเซ‡เชฎเชจเซ‡ เชตเชพเช‚เชšเชตเชพ, เช…เชฎเชฒเซ€เช•เชฐเชฃ เชคเชชเชพเชธเชตเชพ, เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชธเชพเชฅเซ‡ เชคเซเชฒเชจเชพ เช•เชฐเชตเชพ เชชเซเชฐเซ‡เชฐเชฃเชพ เช†เชชเชถเซ‡ - เช›เซ‡เชตเชŸเซ‡, เชตเชนเซ‡เชฒเชพ เช…เชฅเชตเชพ เชชเช›เซ€เชจเชพ เช† เชฌเชงเชพ เชคเชฎเชจเซ‡ เชนเช•เชพเชฐเชพเชคเซเชฎเช• เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชฒเชพเชตเชถเซ‡. เชธเชพเชฐเชพ เชจเชธเซ€เชฌ!

เชซเช•เซเชค เชจเซ‹เช‚เชงเชพเชฏเซ‡เชฒเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชœ เชธเชฐเซเชตเซ‡เชฎเชพเช‚ เชญเชพเช— เชฒเชˆ เชถเช•เซ‡ เช›เซ‡. เชธเชพเช‡เชจ เช‡เชจ เช•เชฐเซ‹, เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡.

เชคเชฎเชพเชฐเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพเชฎเชพเช‚เชฅเซ€ เช•เชˆ เชœเชตเชพเชฌเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช›เซ‹?

  • 69,6%เชชเชพเช‡เชชเชฒเชพเช‡เชจเชฟเช‚เช—=true32

  • 34,8%เช—เซ‡เชงเชฐเซ€เช‚เช— = เชธเซเชฎเชพเชฐเซเชŸ/เชธเซเชชเชทเซเชŸ16

  • 52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=..."24

  • 17,4%เชŸเซเชฐเชพเชจเซเชธเชซเชฐ_เชฎเซ‡เชฅเซ‹เชก = เชชเชพเช‡เชชเซเชก8

  • 63,0%เชซเซ‹เชฐเซเช•เชธ = XXX29

  • 6,5%เช†เชฎเชพเช‚เชฅเซ€ เช•เช‚เชˆ เชจเชนเซ€เช‚, เชฎเชพเชคเซเชฐ Mitogen3

  • 8,7%Mitogen + เชนเซเช‚ เชจเซ‹เช‚เชง เช•เชฐเซ€เชถ เช•เซ‡ เช†เชฎเชพเช‚เชฅเซ€ เช•เชˆ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ4

46 เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เช เชฎเชค โ€‹โ€‹เช†เชชเซเชฏเซ‹. 21 เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฆเซ‚เชฐ เชฐเชนเซเชฏเซ‹.

Ansible เชตเชฟเชถเซ‡ เชตเชงเซ เชธเชพเชฎเช—เซเชฐเซ€ เชœเซ‹เชˆเช เช›เซ‡?

  • 78,3%เชนเชพ, เช…เชฒเชฌเชคเซเชค54

  • 21,7%เชนเชพ, เชฎเชพเชฐเซ‡ เชซเช•เซเชค เชตเชงเซ เชนเชพเชฐเซเชกเช•เซ‹เชฐ เชธเชพเชฎเช—เซเชฐเซ€ เชœเซ‹เชˆเช เช›เซ‡!15

  • 0,0%เชจเชพ, เช…เชจเซ‡ เชคเซ‡ เช•เช‚เชˆเชชเชฃ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€0

  • 0,0%เชจเชพ, เชคเซ‡ เชœเชŸเชฟเชฒ เช›เซ‡!!!0

69 เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เช เชฎเชคเชฆเชพเชจ เช•เชฐเซเชฏเซเช‚. 7 เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฆเซ‚เชฐ เชฐเชนเซเชฏเชพ.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹