لیرې کوربه ته د SSH اتصالاتو په اړه ځواب ورکوونکي کار کوي. دا د SSH سیشن پرانیزي، ننوتل، په شبکه کې د Python کوډ کاپي کوي او یو جلا لنډمهاله فایل ته لیکي. له هغې وروسته، دا فایل په ریموټ ماشین چلوي. د عملیاتو دا ټوله لړۍ خورا اوږده او ستړیا ده، نو د دې د ښه کولو لپاره مختلفې لارې شتون لري.
یو له دغو لارو څخه دی requiretty
ستاسو کې د sudo لپاره تنظیم کول /etc/sudoers
فایل په ریموټ ماشین کې)
د Ansible overclock کولو نوې لاره د Python کتابتون نومیږي
Mitogen په ځینو حاالتو کې کولی شي ستاسو ځواب کوډ څو ځله ګړندی کړي او د پام وړ د ترافیک مصرف کم کړي. راځئ چې د کارولو خورا مشهور قضیې وګورو او وګورو چې دا زموږ سره څومره مرسته کوي.
زه د ډیری لپاره ځواب ورکوم: په ریموټ ماشین کې د تشکیلاتو فایلونو رامینځته کول ، د کڅوړو نصب کول ، د ریموټ ماشین ته او د فایلونو کاپي کول. شاید تاسو نور مثالونه ولرئ - په نظرونو کې ولیکئ.
راځئ چې لاړ شه
د ځواب لپاره د میتوجن ترتیب خورا ساده دی:
د Mitogen کتابتون نصب کړئ:
pip install mitogen
اوس دوه مساوي لارې شتون لري - یا د ansible.cfg کنفیګریشن فایل کې اختیارونه تنظیم کړئ ، یا د چاپیریال اړین تغیرات تنظیم کړئ.
راځئ چې فرض کړو چې نصب شوي Mitogen ته لاره به وي /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
... بیا:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linear
او یا
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
راځئ چې په ورچوئلینف کې د Mitogen سره او پرته Ansible نصب کړو:
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
مهرباني وکړئ په یاد ولرئ چې Mitogen 0.2.7 د ځواب وړ 2.8 سره کار نه کوي (د می 2019 پورې)
د نومونو جوړول:
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'
اوس راځئ چې د پلی بوک چلولو هڅه وکړو چې په ریموټ ماشین کې فایلونه رامینځته کوي:
---
- 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 }}
او راځئ چې دا د 10 فایلونو رامینځته کولو لپاره د Mitogen سره او پرته پرمخ یوسو:
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
موږ دوه چنده پرمختګ ګورو. راځئ چې د 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
د پایلې په توګه، موږ د 10 څخه ډیر ځله اعدام ګړندی کړ!
اوس راځئ چې مختلف سناریوګانې هڅه وکړو او وګورو چې هرڅه زموږ لپاره څومره ګړندي کار کوي:
-
د ځایی څخه لرې کوربه ته د فایلونو کاپي کولو سکریپټ (د ماډل سره
copy
):
-
په لرې پرتو کوربه کې د فایلونو جوړولو لپاره سکریپټ
copy
ماډل:
-
د لیرې کوربه څخه ځایی ته د فایلونو ډاونلوډ کولو سناریو:
راځئ چې د څو (3) ریموټ ماشینونو سره یوه سناریو هڅه وکړو، د بیلګې په توګه د لیرې کوربه کوربه ته د فایلونو کاپي کولو سناریو:
لکه څنګه چې تاسو لیدلی شئ، Mitogen موږ ته په دې سناریوګانو کې وخت او ترافیک دواړه خوندي کوي. مګر که خنډ په ځواب کې نه وي ، مګر د مثال په توګه د ډیسک یا شبکې I/O کې ، یا کوم بل ځای کې ، نو دا تمه کول ګران دي چې مایتوګین به زموږ سره مرسته وکړي.
راځئ چې د پائپ په کارولو سره د yum/dnf او python ماډلونو سره د کڅوړو نصبولو سره سکریپټ هڅه وکړو. کڅوړې ساتل شوي ترڅو د شبکې په خرابیو پورې اړه ونلري:
---
- 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 سره دا 12 ثانیې وخت نیولی، لکه څنګه چې پرته له دې.
په پا .ه کې
مایټوجن نشي کولی ماډل ګړندی کړي کله چې دا چلیږي. دا یوازې کولی شي د دې ماډل اجرا کول څومره ژر چې امکان ولري.
له همدې امله ، دا مهمه ده چې ستاسو په ګمارلو کې ستاسو خنډونه ومومئ او که دوی د ځواب ویلو له امله وي ، نو میتوګین به تاسو سره د دوی حل کولو کې مرسته وکړي او د پام وړ ستاسو د لوبو کتابونو اجرا کول ګړندي کړي.
سرچینه: www.habr.com