Ku-dadejinta suurtagalka ah ee Mitogen

Caqli ahaan noqday mid ka mid ah kuwa ugu caansan Maaraynta Habaynta Nidaamka. Kadib waxaa iibsaday Koofiyada Cas sanadka 2015 tirada ka qaybgalayaasha mashruuca dhaaftay kumaankun, waxaana macquul ah in uu noqday habka ugu badan ee la geynayo iyo habka abaabulka. Codsiyada ballaaran ee ay ka mid yihiin waa mid aad u cajiib ah.

Macquulku wuxuu ka shaqeeyaa isku xirka SSH ee martigeliyayaasha fog. Waxay furaysaa kalfadhiga SSH, gasho, koobiyaysaa koodka Python ee shabakada waxayna u qortaa fayl ku meel gaar ah oo gooni ah. Taas ka dib, waxay ku socotaa faylkan mashiinka fog. Isku xigxiga hawlgalladan oo dhan waa kuwo aad u dheer oo caajis ah, sidaa darteed waxaa jira siyaabo kala duwan oo loo wanaajin karo.

Mid ka mid ah siyaabahan waa dhuumaha SSH kaas oo kuu ogolaanaya inaad isticmaasho hal fadhi SSH si aad ufuliso tilmaamaha, halkii aad furi lahayd fadhi cusub mar kasta, kaas oo naga badbaadin kara wakhti badan. (Kaliya xasuuso inaad damiso requiretty dejinta sudo gudaha kaaga /etc/sudoers ku fayl garee mashiinka fog)

Hab cusub oo lagu dhaafo Aansible waa maktabadda Python oo la yiraahdo Mitogen. Haddii qofna uusan maqlin, waxaan si kooban u sharxi doonaa shaqeynteeda. Waxay u ogolaataa in si degdeg ah loo fuliyo koodka python mashiinka fog, iyo macquulka ah waa hal tusaale oo ah isticmaalka. Mitogen waxa ay ku isticmaashaa tuubada UNIX ee mishiinka fog waxana ay ku wareejisaa koodka Python oo lagu cadaadiyay zlib oo si taxane ah loo isticmaalo qajaar. Tani waxay kaa caawinaysaa inaad si dhakhso leh u dhamaystirto waxayna badbaadisaa gaadiidka. Haddii aad xiisaynayso sharraxaad faahfaahsan, waxa fiican inaad wax ka akhrido bogga "Sida ay u shaqeyso". Laakiin maanta waxaan diiradda saari doonaa oo kaliya sida ay maktabaddu ula shaqeyso Ansible.

Mitogen xaaladaha qaarkood waxay dedejin kartaa koodka macquulka ah dhowr jeer waxayna si weyn u yaraynaysaa isticmaalka taraafikada. Aynu eegno kiisaska isticmaalka ugu caansan oo aan aragno inta ay nagu caawiso.

Inta badan waxaan u isticmaalaa macquulka ah: abuurista faylasha qaabeynta mishiinka fog, rakibida baakadaha, koobiyaynta faylasha iyo ka soo celinta mishiinka fog. Waxaa laga yaabaa inaad haysatid tusaaleyaal kale - ku qor faallooyinka.

Aan tagno!

Qaabeynta Mitogen ee loogu talagalay Ansible waa mid aad u fudud:
Ku rakib maktabadda Mitogen:

pip install mitogen

Hadda waxaa jira laba siyaabood oo u dhigma - ama ku habee xulashooyinka faylka qaabeynta ansible.cfg, ama deji doorsoomayaasha deegaanka ee lagama maarmaanka ah.

Aynu ka soo qaadno in jidka loo maro Mitogen-ka la rakibay uu noqon doono /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Kadib:

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

ama

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

Aynu ku rakibno Ansible gudaha virtualenv, oo leh Mitogen la'aanteed:

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

Fadlan la soco in Mitogen 0.2.7 uusan la shaqeyn karin 2.8 (laga bilaabo Maajo 2019)

Samaynta magacyo:

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'

Hadda aan isku dayno inaan wadno buug-ciyaareed kaas oo ku abuuraya faylal mashiinka fog:

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

Oo aynu ku socodsiino Mitogen la'aanteed si aan u abuurno 10 fayl:

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

Waxaan aragnaa horumar 2-laab ah. Aynu eegno 20, 30, ..., 100 fayl:

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

Natiijo ahaan, waxaan dardargelinay fulinta wax ka badan 10 jeer!
Hadda aan isku dayno xaalado kala duwan oo aan aragno sida ugu dhakhsaha badan ee wax walba noogu shaqeeyaan:

  • Qoraal loogu koobiyaynayo faylasha martigeliyaha fog ee mid maxalli ah (oo wata moduleka copy):
    Ku-dadejinta suurtagalka ah ee Mitogen

  • Qoraal loogu abuurayo faylasha martigeliyaha fog ee leh copy module:
    Ku-dadejinta suurtagalka ah ee Mitogen

  • Muuqaal leh soo dejintii faylalka martigeliyaha fog una gudbinaya mid maxalli ah:
    Ku-dadejinta suurtagalka ah ee Mitogen

Aynu isku dayno muuqaal leh dhawr (3) mishiinno fogfog, tusaale ahaan xaalad leh koobiyaynta faylasha martigeliyaha fog:
Ku-dadejinta suurtagalka ah ee Mitogen

Sida aad arki karto, Mitogen waxa uu na badbaadiyaa wakhtiga iyo socodka labadaba xaaladahan. Laakiin haddii cidhifyadu aysan ku jirin macquul, laakiin tusaale ahaan I / O ee disk ama shabakad, ama meel kale, markaa way adagtahay in la filayo in Mitogen uu nagu caawin doono.

Aynu isku dayno qoraal ay ku rakiban yihiin xidhmooyin yum/dnf iyo python modules isticmaalaya pip. Xirmooyinka waa la kaydiyay si aysan ugu tiirsanaan cilladaha shabakadda:

---
- 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 waxay qaadatay 12 ilbiriqsi, oo la mid ah la'aantiisa.
Bogga Mitogen ee bogga macquulka ah waxaad eegi kartaa bartilmaameedyada kale iyo imtixaanada. Sida boggu leeyahay:

Mitogen ma dedejin karo moduleka marka uu socdo. Waxa kaliya oo ay ka dhigi kartaa fulinta cutubkan sida ugu dhakhsaha badan ee suurtogalka ah.

Sidaa darteed, waxaa muhiim ah in la helo caqabadahaaga ku jira hawlgelintaada iyo haddii ay sabab u tahay macquul, markaa Mitogen ayaa kaa caawin doona inaad xalliso iyaga oo si weyn u dedejin doonta fulinta buugaagtaada ciyaarta.

Source: www.habr.com

Add a comment