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 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 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
):
-
Rubutun don ƙirƙirar fayiloli akan mai watsa shiri mai nisa tare da
copy
module:
-
Yanayi tare da zazzage fayiloli daga mai watsa shiri mai nisa zuwa na gida:
Bari mu gwada yanayi tare da na'urori masu nisa da yawa (3), misali yanayi tare da kwafin fayiloli zuwa mai masaukin nesa:
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 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