Accelerare Ansible cum Mitogen

Ansible unus de popularibus factus est Ratio configurationis Management. Post Red Hat emptus in MMXV numerum project participantium milia exceditur et Ansible factus est probabiliter probabilior ratio instruere et orchestrationis. Amplis applicationibus valde gravis est.

Ansibilia opera super SSH hospites ad exercitum remotum. sessionem SSH aperit, acta in, Python codicem in retiaculis imitatur et eam scribit ad tempus separatum fasciculi. Post haec fasciculus in machina remota currit. Tota haec series operationum est admodum longa et taediosa, ita variae sunt modi ad optimize.

Quarum una via est SSH pipelines quae permittit ut una sessione SSH utatur ad instructiones faciendas, quam ad novam sessionem singulis diebus aperiendam, quae nos multum temporis salvare potest. (Sicut memento declinemus requiretty sudo in occasum /etc/sudoers lima in remotis machina)

Novus modus ad overclock Ansible est pythonis bibliotheca appellata Mitogen. Quod si quis non audierit, officiati- tatem eius breviter exponam. In machina remota pythonis codicis exsecutionem celeriter permittit, et Ansible unum tantum exemplum usus est. Mitogen in machina remota UNIX fistula utitur et pythonem codicem zlib et cum muria compressum transfert. Hoc adiuvat ut citius eam perficiat et negotiatio salvet. Si accuratiorem explicationem interest, optime de ea in pagina legere est "Quomodo facitur". Sed hodie tantum intendunt quomodo bibliotheca apud Ansible operatur.

Mitogen in quibusdam adiunctis codicem tuum Ansible pluries accelerare potest et signanter consummationem negotiationis minuere. Perspiciamus maxime in causis popularibus uti et vide quantum nos adiuvet.

Plurimum utor Ansible pro: lima in machinatione remota machinam creandi, fasciculos inaugurari, tabellas ad et e machina remota imitari. Alia exempla fortasse habes - scribe in comment.

Eamus!

Mitogen configuratio Ansible valde simplex est;
Instrue bibliothecam Mitogen:

pip install mitogen

Nunc duae modi sunt aequivalentes - aut configurare optiones in ansible.cfg file configurationis, vel necessarias variabiles ambitus collocare.

Demus iter ad Mitogen inauguratum erit /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. deinde:

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

aut

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

Inaugurare Ansible in virtualenv, cum Mitogen et sine:

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

Quaeso nota quod Mitogen 0.2.7 non laborat cum Ansible 2.8 (ut Maii 2019)

Aliases faciens:

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'

Nunc scriptor experiri currere playbook qui files in machina remota gignit:

---
- 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 }}

Et curramus illud cum Mitogen et sine 10 files creare:

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

Videmus triplicem emendationem 2 . Let's check for 20, 30, ..., 100 files:

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

Quam ob rem supplicium plusquam X temporibus acceleravimus!
Nunc diversos missiones conemur et vide quanto citius omnia nobis operantur;

  • Scriptor exscribend testatem lima ut hospes localis ab uno remoto (cum modulo copy):
    Accelerare Ansible cum Mitogen

  • Scriptor lima in remotis exercitum faciendi copy modulus:
    Accelerare Ansible cum Mitogen

  • Sem cum files downloading a remota multitudine ad localem unum:
    Accelerare Ansible cum Mitogen

Conemur missionem cum pluribus (3) machinis remotis, exempli gratia missionem cum scapis effingendis ad exercitum remotum;
Accelerare Ansible cum Mitogen

Ut videre potes, Mitogen nos tum tempus ac mercaturam in his missionibus servat. Quod si bottleneck in Ansible, sed exempli gratia in I/O orbis vel retis vel in alio, difficile est sperare Mitogen nos adiuvaturum.

Experiamur scriptionem cum insertis fasciculis yum/dnf et pythonis modulorum pituitam utentibus. Fasciculi conditi sunt ut glitches reticuli non penderet:

---
- 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

Mitogene secundas 12 tulit, eadem sine qua.
on page Mitogen for Ansible page spectare potes ad alias benchmarks et probat. Prout pagina dicit:

Mitogen modulum cum currit accelerare non potest. Huius moduli exsecutionem facere tantum potest quam celerrime.

Ideo interest ut tua lagunculas in instruere et si Ansible debentur, Mitogen adiuvabit eas solvendas et signanter exsecutionem fabularum tuarum accelerare.

Source: www.habr.com