УскорявамС Ansible с Mitogen

Ansible стана Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-популярнитС систСми Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ бСшС ΠΊΡƒΠΏΠ΅Π½ ΠΎΡ‚ Red Hat ΠΏΡ€Π΅Π· 2015 Π³ΠΎΠ΄ΠΈΠ½Π° броят Π½Π° участницитС Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π°Π΄Ρ…Π²ΡŠΡ€Π»ΠΈ хиляди ΠΈ Ansible стана вСроятно Π½Π°ΠΉ-ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° систСма Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ ΠΈ оркСстрация. НСговитС ΡˆΠΈΡ€ΠΎΠΊΠΈ области Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ са наистина впСчатляващи.

Ansible Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‡Ρ€Π΅Π· SSH Π²Ρ€ΡŠΠ·ΠΊΠΈ към ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ хостовС. Π’ΠΎΠΉ отваря SSH сСсия, ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π²Π»ΠΈΠ·Π°Π½Π΅, ΠΊΠΎΠΏΠΈΡ€Π° Python ΠΊΠΎΠ΄ ΠΏΠΎ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΈ Π³ΠΎ записва Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ Ρ„Π°ΠΉΠ». Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠΉ изпълнява Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½Π°Ρ‚Π° машина. Цялата Ρ‚Π°Π·ΠΈ послСдоватСлност ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π΅ сравнитСлно дълга ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠ°, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π·Π° оптимизация.

Π•Π΄ΠΈΠ½ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π΅ SSH ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈ , ΠΊΠΎΠΉΡ‚ΠΎ позволява Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄Π½Π° SSH сСсия Π·Π° изпълнСниС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, вмСсто Π΄Π° сС отваря Π½ΠΎΠ²Π° сСсия всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° спСсти ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅. (Π‘Π°ΠΌΠΎ Π½Π΅ забравяйтС Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ requiretty настройката Π·Π° sudo във вашия /etc/sudoers Ρ„Π°ΠΉΠ» Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½Π°Ρ‚Π° машина)

Новият Π½Π°Ρ‡ΠΈΠ½ Π΄Π° 'Ρ€Π°Π·Π³ΡŠΡ€Π½Π΅ΠΌ' Ansible Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π½Π° Python Π½Π° ΠΈΠΌΠ΅ Mitogen. Ако някой Π½Π΅ Π΅ Ρ‡ΡƒΠ²Π°Π» Π·Π° нСя - Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ Ρ‰Π΅ опиша функционалността ΠΉ. Вя позволява Π±ΡŠΡ€Π·ΠΎ изпълнСниС Π½Π° Python ΠΊΠΎΠ΄ Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½Π° машина, Π° Ansible Π΅ само Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π·Π° Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. Mitogen ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° UNIX pipe Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½Π°Ρ‚Π° машина ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π° Python ΠΊΠΎΠ΄ компрСсиран с zlib ΠΈ сСриализиран с 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-и:

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'

Π‘Π΅Π³Π° Ρ‰Π΅ ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° стартирамС playbook, ΠΊΠΎΠΉΡ‚ΠΎ създава Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ хост:

---
- hosts: all
  gather_facts: false
  tasks:
    - name: БъздаванС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с ΠΌΠΎΠ΄ΡƒΠ»Π° copy
      copy:
        content: |
          тСстов Ρ„Π°ΠΉΠ» {{ 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 ΠΏΡŠΡ‚ΠΈ!
Π‘Π΅Π³Π° Ρ‰Π΅ ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ сцСнарии ΠΈ Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ всичко:

  • Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π·Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»Π΅Π½ хост Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½: copy):
    УскорявамС Ansible с Mitogen

  • Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π·Π° създаванС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ хост с copy ΠΌΠΎΠ΄ΡƒΠ»Π°:
    УскорявамС Ansible с Mitogen

  • Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π·Π° изтСглянС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ хост Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½:
    УскорявамС Ansible с Mitogen

НСка ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ сцСнарий с няколко (3) ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ машини, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сцСнарий Π·Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ хост:
УскорявамС Ansible с Mitogen

ΠšΠ°ΠΊΡ‚ΠΎ Π²ΠΈΠΆΠ΄Π°Ρ‚Π΅, Mitogen Π½ΠΈ спСстява ΠΊΠ°ΠΊΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Ρ‚Π°ΠΊΠ° ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² Ρ‚Π΅Π·ΠΈ сцСнарии. Но Π°ΠΊΠΎ β€žΠ±ΡƒΡ‚ΠΈΠ»Ρ‡Π½ΠΎΡ‚ΠΎ Π³ΡŠΡ€Π»ΠΎβ€œ Π½Π΅ Π΅ Π² Ansible, Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² I/O Π½Π° диска ΠΈΠ»ΠΈ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, ΠΈΠ»ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎ място, Ρ‚ΠΎΠ³Π°Π²Π° Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС ΠΎΡ‡Π°ΠΊΠ²Π°, Ρ‡Π΅ Mitogen Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅.

НСка ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ сцСнарий с инсталиранС Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с yum/dnf ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° python с pip. ΠŸΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ бяха ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ, Π·Π° Π΄Π° Π½Π΅ зависим ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°:

---
- hosts: all
  gather_facts: false
  tasks:
    - name: Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ
      become: true
      package:
        name:
          - samba
          - httpd
          - nano
          - ruby
        state: present

    - name: Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° pip ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
      become: true
      pip:
        name:
          - pytest-split-tests
          - bottle
          - pep8
          - flask
        state: present

Π‘ Mitogen Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½Π΅ 12 сСкунди, Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ.
На страницата Mitogen for Ansible page ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ ΠΈ тСстовС. ΠšΠ°ΠΊΡ‚ΠΎ сС Ρ‚Π²ΡŠΡ€Π΄ΠΈ Π½Π° страницата:

Mitogen Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ускори ΠΌΠΎΠ΄ΡƒΠ»Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚ΠΎΠΉ сС изпълнява. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ само Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠ΄ΡƒΠ» ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π΅ възмоТно ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ.

Π—Π°Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅Ρ‚Π΅ Π²Π°ΡˆΠΈΡ‚Π΅ тСсни мСста Π² Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π°ΠΊΠΎ Ρ‚Π΅ са ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΈ ΠΎΡ‚ Ansible, Mitogen Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° Π³ΠΈ Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° ускоритС ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ playbooks.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster