Kumhanyisa Ansible neMitogen

Anable yakava imwe yevakakurumbira System Configuration Management. Mushure yakatengwa neRed Hat muna 2015 nhamba vatori vechikamu yakapfuura zviuru uye Ansible yakave ingangove yakanyanya kushandiswa kutumira uye orchestration system. Kuwanda kwayo kwakasiyana-siyana kwekushandisa kunofadza zvikuru.

Ansible inoshanda pamusoro peSSH yekubatanidza kune varikure mauto. Inovhura chikamu cheSSH, matanda mukati, inokopa iyo Python kodhi pamusoro petiweki uye inonyora kune yakaparadzana yenguva faira. Mushure meizvozvo, inomhanyisa faira iri pamushini uri kure. Uku kutevedzana kwese kwekushanda kwakarebesa uye kunonetesa, saka kune nzira dzakasiyana dzekuita kuti zviwedzere.

Imwe yenzira idzi SSH mapaipi iyo inokutendera kuti ushandise imwe SSH chikamu kuita mirairo, pane kuvhura chikamu chitsva nguva yega yega, iyo inogona kutichengetedza nguva yakawanda. (Ingorangarira kudzima requiretty kumisikidza sudo mune yako /etc/sudoers faira pamushini uri kure)

Nzira itsva yekuwandisa Ansible iraibhurari yepython inonzi Mitogen. Kana pane asina kumbonzwa nezvazvo, ini ndichatsanangura muchidimbu kushanda kwayo. Iyo inobvumira kukurumidza kuuraya python kodhi pamushini uri kure, uye Ansible ingori imwe muenzaniso wekushandisa. Mitogen inoshandisa pombi yeUNIX pamushini uri kure uye inotamisa python kodhi yakamanikidzwa nezlib uye serialized ne pickle. Izvi zvinobatsira kuipedzisa nekukurumidza uye kuchengetedza traffic. Kana iwe uchifarira imwe tsananguro yakadzama, zviri nani kuverenga nezvazvo pane peji "Zvinoshanda sei". Asi nhasi tichatarisa chete kuti raibhurari inoshanda sei neAnsible.

Mitogen mune mamwe mamiriro ezvinhu inogona kukurumidzira yako Ansible kodhi kakawanda uye kuderedza zvakanyanya kushandiswa kwemotokari. Ngationgororei anonyanya kufarirwa makesi ekushandisa uye tione kuti inotibatsira sei.

Ini ndinoshandisa Ansible zvakanyanya kune: kugadzira mafaira ekugadzirisa pamushini uri kure, kuisa mapakeji, kukopa mafaera kuenda nekubva kumuchina uri kure. Zvichida une mimwe mienzaniso - nyora mumashoko.

Ngatitangei!

Mitogen kumisikidza yeAnsible iri nyore kwazvo:
Isa iyo Mitogen raibhurari:

pip install mitogen

Ikozvino pane nzira mbiri dzakafanana - gadzirisa sarudzo mu ansible.cfg configuration file, kana kuseta zvinodiwa nharaunda zvinosiyana.

Ngatifungei kuti nzira yekuiswa Mitogen ichave /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Zvadaro:

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

kana

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

Ngatiise Ansible mu virtualenv, ine uye isina 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

Ndokumbira utarise kuti Mitogen 0.2.7 haishande neAnsible 2.8 (kubva muna Chivabvu 2019)

Kugadzira mazita:

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'

Zvino ngatiedze kumhanyisa bhuku rekutamba rinogadzira mafaera pamushini uri kure:

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

Uye ngatimhanye nayo uye isina Mitogen kugadzira gumi mafaera:

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

Tinoona kuvandudzwa kwe2. Ngatitarisei makumi maviri, makumi matatu, ..., zana mafaera:

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

Nekuda kweizvozvo, takawedzera kuuraya nekanopfuura ka10!
Zvino ngatiedzei akasiyana mamiriro uye tione kuti zvinokurumidza sei zvese zvinoshanda kwatiri:

  • Script yekukopa mafaera kumunhu ari kure kubva kune yemunharaunda (ine module copy):
    Kumhanyisa Ansible neMitogen

  • Script yekugadzira mafaera pane iri kure host ne copy module:
    Kumhanyisa Ansible neMitogen

  • Mamiriro ekudhawunirodha mafaera kubva kune ari kure anotambira kune yemunharaunda:
    Kumhanyisa Ansible neMitogen

Ngatiedzei mamiriro ane akati wandei (3) mashini ari kure, semuenzaniso mamiriro ekukopa mafaera kune ari kure anogamuchira:
Kumhanyisa Ansible neMitogen

Sezvauri kuona, Mitogen inotiponesa tese nguva uye traffic mune izvi zviitiko. Asi kana iyo bhodhoro isiri muAnsible, asi semuenzaniso muI / O ye diski kana network, kana kune imwe nzvimbo, zvino zvakaoma kutarisira kuti Mitogen ichatibatsira.

Ngatiedzei script nekuisa mapakeji ane yum/dnf uye python modules tichishandisa pip. Iwo mapakeji akavharirwa kuitira kuti asatsamira pane network glitches:

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

NeMitogen zvakatora masekondi gumi nemaviri, zvakafanana neasina.
Pane peji Mitogen yeAnsible peji unogona kutarisa mamwe mabenchmarks uye bvunzo. Sekutaura kunoita peji:

Mitogen haigone kumhanyisa module kana iri kushanda. Inogona chete kuita kuti kuitwa kweiyi module nekukurumidza sezvinobvira.

Naizvozvo, zvakakosha kuti uwane mabhodhoro ako mukutumirwa kwako uye kana ari nekuda kweAnsible, ipapo Mitogen ichakubatsira iwe kuzvigadzirisa uye nekumhanyisa zvakanyanya kuitiswa kwemabhuku ako ekutamba.

Source: www.habr.com

Voeg