เป€เบฅเบฑเปˆเบ‡ Ansible เบเบฑเบš Mitogen

เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆ เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ” เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฅเบฐเบšเบปเบš. เบซเบผเบฑเบ‡เบˆเบฒเบ เบ–เบทเบเบŠเบทเป‰เป‚เบ”เบ Red Hat เปƒเบ™เบ›เบต 2015 เบˆเปเบฒเบ™เบงเบ™ เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเป‚เบ„เบ‡เบเบฒเบ™ เป€เบเบตเบ™เบซเบผเบฒเบเบžเบฑเบ™เบ„เบปเบ™ เปเบฅเบฐ Ansible เบญเบฒเบ”เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡ เปเบฅเบฐ เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบ—เบตเปˆเปƒเบŠเป‰เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”. เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบเป‰เบงเบฒเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบ›เบฐเบ—เบฑเบšเปƒเบˆเบซเบผเบฒเบ.

Ansible เป€เบฎเบฑเบ”เบงเบฝเบเบœเปˆเบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ SSH เบเบฑเบšเป‚เบฎเบชเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ. เบกเบฑเบ™เป€เบ›เบตเบ”เบเบญเบ‡เบ›เบฐเบŠเบธเบก SSH, เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš, เบ„เบฑเบ”เบฅเบญเบเบฅเบฐเบซเบฑเบ” Python เบœเปˆเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเบ‚เบฝเบ™เบกเบฑเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒเบŠเบปเปˆเบงเบ„เบฒเบงเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบŸเบฅเปŒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ. เบฅเปเบฒเบ”เบฑเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบเบฒเบงเปเบฅเบฐเบซเบ™เป‰เบฒเป€เบšเบทเปˆเบญ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบตเบงเบดเบ—เบตเบ•เปˆเบฒเบ‡เป†เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบกเบฑเบ™.

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ เบ—เปเปˆ SSH เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡ SSH session เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ” session เปƒเบซเบกเปˆเปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ›เบฐเบซเบเบฑเบ”เป€เบงเบฅเบฒเบซเบผเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. (เบžเบฝเบ‡เปเบ•เปˆเบˆเบทเปˆเบˆเปเบฒเบ—เบตเปˆเบˆเบฐเบ›เบดเบ” requiretty เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ sudo เปƒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™ /etc/sudoers เป„เบŸเบฅโ€‹เปŒโ€‹เปƒเบ™โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบซเปˆเบฒเบ‡โ€‹เป„เบโ€‹เบชเบญเบโ€‹เบซเบผเบตเบโ€‹)

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบซเบกเปˆเป€เบžเบทเปˆเบญ overclock Ansible เปเบกเปˆเบ™เบซเปเบชเบฐเบซเบกเบธเบ” python เป€เบญเบตเป‰เบ™เบงเปˆเบฒ Mitogen. เบ–เป‰เบฒเปƒเบœเบเบฑเบ‡เบšเปเปˆเป€เบ„เบตเบเป„เบ”เป‰เบเบดเบ™, เบ‚เป‰เบญเบเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบกเบฑเบ™เบชเบฑเป‰เบ™เป†. เบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” python เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ, เปเบฅเบฐ Ansible เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰. Mitogen เปƒเบŠเป‰เบ—เปเปˆ UNIX เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเปเบฅเบฐเป‚เบญเบ™เบฅเบฐเบซเบฑเบ” python compressed เบเบฑเบš zlib เปเบฅเบฐ serialized เบเบฑเบš pickle. เบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบชเปเบฒเป€เบฅเบฑเบ”เบกเบฑเบ™เป„เบงเบ‚เบถเป‰เบ™เปเบฅเบฐเบ›เบฐเบซเบเบฑเบ”เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเบปเบ™เปƒเบˆเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบกเบฑเบ™เบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒ "เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบ™เบงเปƒเบ”". เปเบ•เปˆเบกเบทเป‰เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบธเบกเปƒเบชเปˆเบžเบฝเบ‡เปเบ•เปˆเบงเบดเบ—เบตเบเบฒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Ansible.

Mitogen เปƒเบ™เบšเบฒเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบฑเปˆเบ‡เบฅเบฐเบซเบฑเบ” Ansible เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบซเบผเบฒเบเบ„เบฑเป‰เบ‡เปเบฅเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ. เปƒเบซเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบฑเบ™เบŠเปˆเบงเบเบžเบงเบเป€เบฎเบปเบฒเบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”.

เบ‚เป‰เบญเบเปƒเบŠเป‰ Ansible เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบš: เบเบฒเบ™เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ, เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบžเบฑเบเป€เบเบฑเบ”, เบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเป„เบŸเบฅเปŒเป„เบ›เบซเบฒเปเบฅเบฐเบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ. เบšเบฒเบ‡เบ—เบตเป€เบˆเบปเป‰เบฒเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เบญเบทเปˆเบ™ - เบ‚เบฝเบ™เปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™.

เปƒเบซเป‰เป„เบ›!

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Mitogen เบชเปเบฒเบฅเบฑเบš Ansible เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ:
เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” Mitogen:

pip install mitogen

เบ•เบญเบ™เบ™เบตเป‰เบกเบตเบชเบญเบ‡เบงเบดเบ—เบตเบ—เบฝเบšเป€เบ—เบปเปˆเบฒ - เบšเปเปˆเบงเปˆเบฒเบˆเบฐเบเปเบฒเบ™เบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ ansible.cfg, เบซเบผเบทเบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆ Mitogen เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบˆเบฐเป€เบ›เบฑเบ™ /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. เบˆเบฒเบเบ™เบฑเป‰เบ™:

export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linear

เบซเบผเบท

[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy

เปƒเบซเป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Ansible เปƒเบ™ virtualenv, เบกเบตเปเบฅเบฐเบšเปเปˆเบกเบต Mitogen:

virtualenv mitogen_ansible
./mitogen_ansible/bin/pip install ansible==2.7.10 mitogen
virtualenv pure_ansible
./pure_ansible/bin/pip install ansible==2.7.10

เบเบฐเบฅเบธเบ™เบฒเบฎเบฑเบšเบŠเบฒเบšเบงเปˆเบฒ Mitogen 0.2.7 เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Ansible 2.8 (เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบ”เบทเบญเบ™เบžเบถเบ”เบชเบฐเบžเบฒ 2019)

เบชเป‰เบฒเบ‡เบ™เบฒเบกเปเบเบ‡:

alias pure-ansible-playbook='$(pwd)/pure_ansible/bin/ansible-playbook'
alias mitogen-ansible-playbook='ANSIBLE_STRATEGY_PLUGINS=$(pwd)/mitogen_ansible/lib/python3.7/site-packages/ansible_mitogen/plugins/strategy ANSIBLE_STRATEGY=mitogen_linear $(pwd)/mitogen_ansible/bin/ansible-playbook'

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบฅเบญเบ‡เปเบฅเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบซเบผเบดเป‰เบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ—เบฒเบ‡เป„เบ:

---
- hosts: all
  gather_facts: false
  tasks:
    - name: Create files with copy content module
      copy:
        content: |
          test file {{ item }}
        dest: ~/file_{{ item }}
      with_sequence: start=1 end={{ n }}

เปเบฅเบฐเปƒเบซเป‰เปเบฅเปˆเบ™เบกเบฑเบ™เบ”เป‰เบงเบ เปเบฅเบฐเบšเปเปˆเบกเบต Mitogen เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ 10 เป„เบŸเบฅเปŒ:

time mitogen-ansible-playbook file_creation.yml -i hosts -e n=10 &>/dev/null

real    0m2.603s
user    0m1.152s
sys     0m0.096s

time pure-ansible-playbook file_creation.yml -i hosts -e n=10 &>/dev/null

real    0m5.908s
user    0m1.745s
sys     0m0.643s

เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ 2 เป€เบ—เบปเปˆเบฒ. เปƒเบซเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบชเปเบฒเบฅเบฑเบš 20, 30, ..., 100 เป„เบŸเบฅเปŒ:

time pure-ansible-playbook file_creation.yml -i hosts -e n=100 &>/dev/null

real    0m51.775s
user    0m8.039s
sys     0m6.305s

time mitogen-ansible-playbook file_creation.yml -i hosts -e n=100 &>/dev/null

real    0m4.331s
user    0m1.903s
sys     0m0.197s

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฒเบเบเบงเปˆเบฒ 10 เป€เบ—เบทเปˆเบญ!
เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบฅเบญเบ‡เปƒเบŠเป‰เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ•เปˆเบฒเบ‡เป† เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เป„เบงเป€เบ—เบปเปˆเบฒเปƒเบ”เบชเบณเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ:

  • Script เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเป„เบŸเบฅเปŒเป„เบ›เบเบฑเบ‡เป‚เบฎเบ”เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเบˆเบฒเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบซเบ™เบถเปˆเบ‡ (เบเบฑเบšเป‚เบกเบ”เบนเบ™ copy):
    เป€เบฅเบฑเปˆเบ‡ Ansible เบเบฑเบš Mitogen

  • Script เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบขเบนเปˆเปƒเบ™เป‚เบฎเบ”เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเบ—เบตเปˆเบกเบต copy เป‚เบกเบ”เบนเบ™:
    เป€เบฅเบฑเปˆเบ‡ Ansible เบเบฑเบš Mitogen

  • เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ”เบฒเบงเป‚เบซเบผเบ”เป„เบŸเบฅเปŒเบˆเบฒเบเป‚เบฎเบชเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบเป„เบ›เบซเบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™:
    เป€เบฅเบฑเปˆเบ‡ Ansible เบเบฑเบš Mitogen

เบกเบฒเบฅเบญเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบเบฑเบšเบซเบผเบฒเบเป†เป€เบ„เบทเปˆเบญเบ‡เบ—เบฒเบ‡เป„เบ (3) เป€เบ„เบทเปˆเบญเบ‡, เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™: เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบเบฒเบ™เบชเบณเป€เบ™เบปเบฒเป„เบŸเบฅเปŒเป„เบ›เบซเบฒเป‚เบฎเบชเบ—เบฒเบ‡เป„เบ:
เป€เบฅเบฑเปˆเบ‡ Ansible เบเบฑเบš Mitogen

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, Mitogen เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ‡เป€เบงเบฅเบฒเปเบฅเบฐเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เปเบ•เปˆเบ–เป‰เบฒเบ„เปเบ‚เบงเบ”เบšเปเปˆเบขเบนเปˆเปƒเบ™ Ansible, เปเบ•เปˆเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ I/O เบ‚เบญเบ‡เปเบœเปˆเบ™เบซเบผเบทเป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เบซเบผเบทเบšเปˆเบญเบ™เบญเบทเปˆเบ™, เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒ Mitogen เบˆเบฐเบŠเปˆเบงเบเบžเบงเบเป€เบฎเบปเบฒ.

เบฅเบญเบ‡เปƒเบŠเป‰เบชเบฐเบ„เบฃเบดเบšเบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบกเบตเป‚เบกเบ”เบนเบ™ yum/dnf เปเบฅเบฐ python เป‚เบ”เบเปƒเบŠเป‰ pip. เปเบžเบฑเบเป€เบเบ”เป„เบ”เป‰เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบ‚เบถเป‰เบ™เบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ:

---
- hosts: all
  gather_facts: false
  tasks:
    - name: Install packages
      become: true
      package:
        name:
          - samba
          - httpd
          - nano
          - ruby
        state: present

    - name: Install pip modules
      become: true
      pip:
        name:
          - pytest-split-tests
          - bottle
          - pep8
          - flask
        state: present

เบ”เป‰เบงเบ Mitogen เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒ 12 เบงเบดเบ™เบฒเบ—เบต, เบ„เบทเบเบฑเบ™เบเบฑเบšเบšเปเปˆเบกเบตเบกเบฑเบ™.
เปƒเบ™ เปœเป‰เบฒ Mitogen เบชเปเบฒเบฅเบฑเบšเบซเบ™เป‰เบฒ Ansible เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบญเบทเปˆเบ™เป†. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเป€เบงเบฑเบšเบเปˆเบฒเบงเบงเปˆเบฒ:

Mitogen เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฅเบฑเปˆเบ‡เป‚เบกเบ”เบนเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เปเบฅเปˆเบ™. เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เบ™เบตเป‰เป„เบงเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบ–เป‰เบฒเบžเบงเบเบกเบฑเบ™เป€เบ›เบฑเบ™เบเป‰เบญเบ™ Ansible, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ Mitogen เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เปเบเป‰เป„เบ‚เบžเบงเบเบกเบฑเบ™เปเบฅเบฐเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ›เบทเป‰เบกเบซเบผเบดเป‰เบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster