Saurin haɓaka Mai yiwuwa tare da Mitogen

Mai yiwuwa ya zama daya daga cikin mafi mashahuri Gudanarwar Kanfigareshan Tsari. Bayan Red Hat ne ya saya a 2015 lambar mahalarta aikin ya zarce dubbai kuma Ansible ya zama mai yiwuwa tsarin turawa da ƙungiyar makaɗa da aka fi amfani dashi. Faɗin aikace-aikacen sa yana da ban sha'awa sosai.

Mai yiwuwa yana aiki akan haɗin SSH zuwa runduna mai nisa. Yana buɗe zaman SSH, yana shiga, yana kwafi lambar Python akan hanyar sadarwar kuma yana rubuta shi zuwa wani fayil ɗin ɗan lokaci daban. Bayan haka, yana gudanar da wannan fayil ɗin akan injin nesa. Wannan jerin ayyuka duka suna da tsayi kuma mai ban sha'awa, don haka akwai hanyoyi daban-daban don inganta shi.

Daya daga cikin wadannan hanyoyi shine Farashin SSH wanda ke ba ku damar amfani da zaman SSH ɗaya don aiwatar da umarni, maimakon buɗe sabon zaman kowane lokaci, wanda zai iya ceton mu lokaci mai yawa. (Ka tuna kawai don kashe requiretty saitin sudo a cikin ku /etc/sudoers fayil a kan na'ura mai nisa)

Sabuwar hanyar da za a wuce agogon Mai yiwuwa ita ce ɗakin karatu na Python da ake kira Mitogen. Idan wani bai ji labarinsa ba, zan bayyana aikinsa a takaice. Yana ba da damar aiwatar da lambar python cikin sauri akan na'ura mai nisa, kuma Mai yiwuwa misali ɗaya ne kawai na amfani. Mitogen yana amfani da bututun UNIX akan na'ura mai nisa kuma yana tura lambar Python wanda aka matse shi da zlib kuma aka jera shi tare da tsintsiya. Wannan yana taimakawa don kammala shi da sauri kuma yana adana zirga-zirga. Idan kuna sha'awar ƙarin bayani, yana da kyau ku karanta game da shi a shafi "Yadda yake aiki". Amma a yau za mu mai da hankali ne kawai kan yadda ɗakin karatu ke aiki tare da Ansible.

Mitogen a wasu yanayi na iya hanzarta lambar da za a iya yiwuwa sau da yawa kuma yana rage yawan cin abinci sosai. Bari mu bincika mafi mashahuri lokuta masu amfani kuma mu ga yadda yake taimaka mana.

Ina amfani da Mai yiwuwa don: ƙirƙirar fayilolin sanyi akan na'ura mai nisa, shigar da fakiti, kwafin fayiloli zuwa kuma daga na'ura mai nisa. Wataƙila kuna da wasu misalai - rubuta a cikin sharhi.

Bari mu tafi!

Tsarin Mitogen don Mai yiwuwa abu ne mai sauƙi:
Shigar da ɗakin karatu na Mitogen:

pip install mitogen

Yanzu akwai hanyoyi guda biyu daidai - ko dai saita zaɓuɓɓuka a cikin fayil ɗin daidaitawar ansible.cfg, ko saita masu canjin yanayi masu dacewa.

Bari mu ɗauka cewa hanyar zuwa Mitogen da aka shigar zai kasance /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Sannan:

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

ko

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

Bari mu shigar da Mai yiwuwa a cikin virtualenv, tare da kuma ba tare da 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

Lura cewa Mitogen 0.2.7 baya aiki tare da Mai yiwuwa 2.8 (kamar na Mayu 2019)

Yin laƙabi:

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'

Yanzu bari mu gwada gudanar da littafin wasan kwaikwayo wanda ke ƙirƙirar fayiloli akan na'ura mai nisa:

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

Kuma bari mu gudanar da shi tare da kuma ba tare da Mitogen don ƙirƙirar fayiloli 10 ba:

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

Muna ganin haɓakawa sau biyu. Bari mu bincika fayiloli 2, 20, ..., 30:

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

Sakamakon haka, mun hanzarta aiwatar da kisa fiye da sau 10!
Yanzu bari mu gwada yanayi daban-daban kuma mu ga saurin sauri komai yayi mana aiki:

  • Rubutun don kwafin fayiloli zuwa mai watsa shiri mai nisa daga na gida (tare da tsarin copy):
    Saurin haɓaka Mai yiwuwa tare da Mitogen

  • Rubutun don ƙirƙirar fayiloli akan mai watsa shiri mai nisa tare da copy module:
    Saurin haɓaka Mai yiwuwa tare da Mitogen

  • Yanayi tare da zazzage fayiloli daga mai watsa shiri mai nisa zuwa na gida:
    Saurin haɓaka Mai yiwuwa tare da Mitogen

Bari mu gwada yanayi tare da na'urori masu nisa da yawa (3), misali yanayi tare da kwafin fayiloli zuwa mai masaukin nesa:
Saurin haɓaka Mai yiwuwa tare da Mitogen

Kamar yadda kuke gani, Mitogen yana ceton mu duka lokaci da zirga-zirga a cikin waɗannan al'amuran. Amma idan ƙugiya ba ta cikin Mai yiwuwa, amma misali a cikin I / O na faifai ko cibiyar sadarwa, ko wani wuri dabam, to yana da wuya a yi tsammanin cewa Mitogen zai taimake mu.

Bari mu gwada rubutun tare da shigar da fakiti tare da yum/dnf da python modules ta amfani da pip. An adana fakitin don kar a dogara da glitches na hanyar sadarwa:

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

Tare da Mitogen ya ɗauki 12 seconds, daidai da ba tare da shi ba.
A shafi Mitogen don shafi mai yiwuwa za ku iya duba wasu alamomi da gwaje-gwaje. Kamar yadda shafin ke cewa:

Mitogen ba zai iya hanzarta tsarin lokacin da yake gudana ba. Yana iya sanya aiwatar da wannan tsarin a cikin sauri kamar yadda zai yiwu.

Don haka, yana da mahimmanci a nemo ƙwanƙolin ku a cikin aikinku kuma idan sun kasance saboda Mai yiwuwa, to Mitogen zai taimaka muku magance su kuma yana hanzarta aiwatar da littattafan wasan ku.

source: www.habr.com

Add a comment