ሊቻል የሚችል በኤስኤስኤች ግንኙነቶች ከርቀት አስተናጋጆች ጋር ይሰራል። የኤስኤስኤች ክፍለ ጊዜ ይከፍታል፣ ገብቷል፣ የፓይዘንን ኮድ በአውታረ መረቡ ላይ ገልብጦ ወደተለየ ጊዜያዊ ፋይል ይጽፋል። ከዚያ በኋላ, ይህን ፋይል በሩቅ ማሽኑ ላይ ይሰራል. ይህ አጠቃላይ የክዋኔዎች ቅደም ተከተል በጣም ረጅም እና አድካሚ ነው ፣ ስለሆነም እሱን ለማመቻቸት የተለያዩ መንገዶች አሉ።
ከእነዚህ መንገዶች አንዱ ነው። requiretty
በእርስዎ ውስጥ ለ sudo ቅንብር /etc/sudoers
በርቀት ማሽኑ ላይ ፋይል ያድርጉ)
ለማለፍ አዲስ መንገድ Ansible የተባለ python ላይብረሪ ነው።
Mitogen በአንዳንድ ሁኔታዎች የ Ansible ኮድዎን ብዙ ጊዜ ያፋጥናል እና የትራፊክ ፍጆታን በእጅጉ ይቀንሳል። በጣም ታዋቂ የሆኑትን የአጠቃቀም ጉዳዮችን እንመርምር እና ምን ያህል እንደሚረዳን እንይ።
እኔ ሊቻል የሚችለውን በብዛት እጠቀማለሁ፡ በርቀት ማሽን ላይ የማዋቀሪያ ፋይሎችን መፍጠር፣ ፓኬጆችን መጫን፣ ፋይሎችን ወደ የርቀት ማሽኑ መገልበጥ። ምናልባት ሌሎች ምሳሌዎች ሊኖሩዎት ይችላሉ - በአስተያየቶቹ ውስጥ ይፃፉ.
እንሂድ!
ለ Ansible የሚትገን ውቅር በጣም ቀላል ነው፡-
የMitogen ቤተ-መጽሐፍትን ይጫኑ፡-
pip install mitogen
አሁን ሁለት ተመሳሳይ መንገዶች አሉ - በ ansible.cfg ውቅር ፋይል ውስጥ ያሉትን አማራጮች ያዋቅሩ ወይም አስፈላጊዎቹን የአካባቢ ተለዋዋጮች ያዘጋጁ።
ወደ ተጫነው ሚቶገን የሚወስደው መንገድ እንደሚሆን እናስብ /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
ሚቶጅንን ያለ እና ያለ ሚቶጅን በምናባዊ ኢንሲቪል እንጫን፡-
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 ከAnsible 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፣...፣ 100 ፋይሎችን እንፈትሽ፡-
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) የርቀት ማሽኖች ጋር አንድ ሁኔታን እንሞክር፣ ለምሳሌ ፋይሎችን ወደ የርቀት አስተናጋጅ መቅዳት ያለበት ሁኔታ፡-
እንደሚመለከቱት፣ ሚቶገን በእነዚህ ሁኔታዎች ውስጥ ሁለቱንም ጊዜ እና ትራፊክ ይቆጥብልናል። ነገር ግን ማነቆው በ Ansible ውስጥ ካልሆነ ግን ለምሳሌ በዲስክ ወይም አውታረመረብ 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 ሰከንድ ወስዷል፣ ያለ እሱ ተመሳሳይ ነው።
ገጽ ላይ
ሚቶገን ሞጁሉን በሚሰራበት ጊዜ ማፋጠን አይችልም። የዚህን ሞጁል አፈፃፀም በተቻለ ፍጥነት ብቻ ሊያደርገው ይችላል.
ስለዚህ ማነቆዎችዎን በማሰማራትዎ ውስጥ መፈለግ በጣም አስፈላጊ ነው እና በምክንያታዊነት ምክንያት ከሆነ ሚቶገን እነሱን ለመፍታት እና የመጫወቻ ደብተሮችዎን አፈፃፀም በከፍተኛ ሁኔታ ያፋጥናል ።
ምንጭ: hab.com