በሚቲገን ሊፈጠን የሚችል

የሚጠራ በጣም ተወዳጅ ከሆኑት መካከል አንዱ ሆነ የስርዓት ውቅር አስተዳደር. በኋላ የተገዛው በቀይ ኮፍያ ነው። በ 2015 ቁጥር የፕሮጀክት ተሳታፊዎች በሺዎች አልፏል እና Ansible ምናልባት በጣም ጥቅም ላይ የዋለው የማሰማራት እና የኦርኬስትራ ስርዓት ሊሆን ይችላል። የእሱ ሰፊ አፕሊኬሽኖች በጣም አስደናቂ ናቸው.

ሊቻል የሚችል በኤስኤስኤች ግንኙነቶች ከርቀት አስተናጋጆች ጋር ይሰራል። የኤስኤስኤች ክፍለ ጊዜ ይከፍታል፣ ገብቷል፣ የፓይዘንን ኮድ በአውታረ መረቡ ላይ ገልብጦ ወደተለየ ጊዜያዊ ፋይል ይጽፋል። ከዚያ በኋላ, ይህን ፋይል በሩቅ ማሽኑ ላይ ይሰራል. ይህ አጠቃላይ የክዋኔዎች ቅደም ተከተል በጣም ረጅም እና አድካሚ ነው ፣ ስለሆነም እሱን ለማመቻቸት የተለያዩ መንገዶች አሉ።

ከእነዚህ መንገዶች አንዱ ነው። SSH ቧንቧዎች በእያንዳንዱ ጊዜ አዲስ ክፍለ ጊዜ ከመክፈት ይልቅ መመሪያዎችን ለማስፈጸም አንድ የኤስኤስኤች ክፍለ ጊዜ እንድትጠቀም ይፈቅድልሃል፣ ይህም ብዙ ጊዜ ይቆጥበናል። (ማጥፋትዎን ብቻ ያስታውሱ requiretty በእርስዎ ውስጥ ለ sudo ቅንብር /etc/sudoers በርቀት ማሽኑ ላይ ፋይል ያድርጉ)

ለማለፍ አዲስ መንገድ Ansible የተባለ python ላይብረሪ ነው። ሚቶጅን. ማንም ሰው ስለ እሱ ያልሰማ ከሆነ, ተግባሩን በአጭሩ እገልጻለሁ. በሩቅ ማሽን ላይ የፒቶን ኮድ በፍጥነት እንዲፈፀም ያስችላል፣ እና Ansible የአጠቃቀም አንዱ ምሳሌ ነው። ሚቶገን የ UNIX ፓይፕ በሩቅ ማሽኑ ላይ ይጠቀማል እና በዚሊብ የተጨመቀ እና ተከታታይነት ያለው የፓይቶን ኮድ ያስተላልፋል። ይህ በፍጥነት ለማጠናቀቅ ይረዳል እና ትራፊክን ይቆጥባል። የበለጠ ዝርዝር ማብራሪያ ከፈለጉ በገጹ ላይ ስለ እሱ ማንበብ ጥሩ ነው "እንዴት እንደሚሰራ". ግን ዛሬ የምናተኩረው ቤተ መፃህፍቱ ከአንሴብል ጋር እንዴት እንደሚሰራ ላይ ብቻ ነው።

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

አስተያየት ያክሉ