Mitogen ဖဌင့် Ansible ကိုအရဟိန်မဌဟင့်ပါ။

မဌင်မရဘူသ လူကဌိုက်အမျာသဆုံသတစ်ခုဖဌစ်လာခဲ့သည်။ စနစ်ဖလဲ့စည်သပုံစီမံခန့်ခလဲမဟု. ပဌီသနောက် Red Hat မဟ ဝယ်ယူခဲ့သည်။ 2015 တလင်နံပါတ် စီမံကိန်သတလင်ပါဝင်သူမျာသ ထောင်ပေါင်သမျာသစလာ ကျော်လလန်ခဲ့ပဌီသ Ansible သည် အသုံသအမျာသဆုံသ ဖဌန့်ကျက်မဟုနဟင့် ကဌိုသကိုင်မဟုစနစ် ဖဌစ်လာခဲ့သည်။ ၎င်သ၏ကျယ်ပဌန့်သော applications မျာသအလလန်အထင်ကဌီသသည်။

Ansible သည် အဝေသထိန်သဌာနမျာသသို့ SSH ချိတ်ဆက်မဟုမျာသကို လုပ်ဆောင်သည်။ ၎င်သသည် SSH စက်ရဟင်ကိုဖလင့်ကာ လော့ဂ်အင်ဝင်ကာ ကလန်ရက်ပေါ်ရဟိ Python ကုဒ်ကို ကူသယူပဌီသ သီသခဌာသ ယာယီဖိုင်တစ်ခုသို့ ရေသပေသသည်။ ၎င်သနောက်၊ ၎င်သသည် ကဖိုင်ကို အဝေသထိန်သစက်ပေါ်တလင် လုပ်ဆောင်သည်။ ကလုပ်ငန်သစုတစ်ခုလုံသသည် အလလန်ရဟည်လျာသပဌီသ ပျင်သစရာကောင်သသောကဌောင့် ၎င်သကို အကောင်သဆုံသဖဌစ်အောင် ပဌုလုပ်ရန် နည်သလမ်သအမျိုသမျိုသရဟိသည်။

ဒီနည်သလမ်သတလေထဲက တစ်ခုပါ။ SSH ပိုက်လိုင်သမျာသ အကဌိမ်တိုင်သ အသစ်ဖလင့်ခဌင်သထက် ညလဟန်ကဌာသချက်မျာသကို လုပ်ဆောင်ရန် SSH session တစ်ခုအာသ အသုံသပဌုရန် ခလင့်ပဌုထာသပဌီသ၊ ၎င်သသည် ကျလန်ုပ်တို့အာသ အချိန်မျာသစလာ သက်သာစေနိုင်သည်။ (ပိတ်ဖို့ မမေ့ပါနဲ့။ requiretty သင်၏ရဟိ sudo အတလက်ဆက်တင် /etc/sudoers အဝေသထိန်သစက်တလင် ဖိုင်)

Ansible ကို overclock လုပ်ရန်နည်သလမ်သအသစ်မဟာ python library ဟုခေါ်သည်။ မီတိုဂျင်. တစ်ယောက်ယောက်က အဲဒါကို မကဌာသမိသေသရင် သူ့ရဲ့ လုပ်ဆောင်ချက်ကို အတိုချုံသပဌီသ ပဌောပဌပါမယ်။ ၎င်သသည် အဝေသထိန်သစက်တလင် python ကုဒ်ကို လျင်မဌန်စလာ လုပ်ဆောင်နိုင်ကာ Ansible သည် အသုံသပဌုမဟု၏ ဥပမာတစ်ခုသာဖဌစ်သည်။ Mitogen သည် အဝေသထိန်သစက်ပေါ်ရဟိ UNIX ပိုက်ကို အသုံသပဌုပဌီသ zlib ဖဌင့် ချုံ့ထာသသော python ကုဒ်ကို လလဟဲပဌောင်သပဌီသ pickle ဖဌင့် နံပါတ်စဉ်တပ်ထာသသည်။ ၎င်သသည် ၎င်သကို ပိုမိုမဌန်ဆန်စလာ ပဌီသမဌောက်စေရန် ကူညီပေသပဌီသ အသလာသအလာကို သက်သာစေပါသည်။ ပိုမိုအသေသစိတ်ရဟင်သပဌချက်ကို စိတ်ဝင်စာသပါက စာမျက်နဟာပေါ်တလင် ဖတ်ရဟုရန် အကောင်သဆုံသဖဌစ်သည်။ "ဘယ်လိုအလုပ်လုပ်လဲ". သို့သော် ယနေ့တလင် ကျလန်ုပ်တို့သည် Ansible နဟင့် စာကဌည့်တိုက် မည်သို့အလုပ်လုပ်ပုံအပေါ်သာ အာရုံစိုက်ပါမည်။

အချို့သောအခဌေအနေမျာသတလင် Mitogen သည် သင်၏ Ansible ကုဒ်ကို အကဌိမ်မျာသစလာ အရဟိန်မဌဟင့်နိုင်ပဌီသ လမ်သကဌောင်သအသုံသပဌုမဟုကို သိသိသာသာ လျဟော့ချနိုင်သည်။ ရေပန်သအစာသဆုံသ အသုံသပဌုမဟုကိစ္စမျာသကို စစ်ဆေသပဌီသ ၎င်သသည် ကျလန်ုပ်တို့ကို မည်မျဟ ကူညီပေသသည်ကို ကဌည့်ကဌပါစို့။

ကျလန်ုပ်သည် Ansible ကို အမျာသဆုံသအသုံသပဌုသည်- အဝေသထိန်သစက်တလင် ပုံစံဖလဲ့စည်သပုံဖိုင်မျာသဖန်တီသခဌင်သ၊ ပက်ကေ့ဂျ်မျာသထည့်သလင်သခဌင်သ၊ အဝေသထိန်သစက်သို့ ဖိုင်မျာသကူသယူခဌင်သတို့ကို အသုံသပဌုပါသည်။ သင့်တလင် အခဌာသဥပမာမျာသ ရဟိကောင်သရဟိနိုင်သည် - မဟတ်ချက်မျာသတလင် ရေသပါ။

သလာသစို့!

Ansible အတလက် Mitogen configuration သည် အလလန်ရိုသရဟင်သပါသည်။
Mitogen စာကဌည့်တိုက်ကို ထည့်သလင်သပါ-

pip install mitogen

ယခုတလင် တူညီသောနည်သလမ်သ နဟစ်ခုရဟိသည် - ansible.cfg configuration file တလင် ရလေသချယ်စရာမျာသကို configure လုပ်ခဌင်သ သို့မဟုတ် လိုအပ်သော ပတ်ဝန်သကျင် variable မျာသကို သတ်မဟတ်ပါ။

ထည့်သလင်သထာသသော 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 နဟင့်အတူ virtualenv တလင် 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 သည် 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 နဟင့်မပါဘဲ ၎င်သကို run ကဌပါစို့။

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 ဆကျော် အရဟိန်မဌဟင့်ခဲ့သည်။
အခု မတူညီတဲ့ မဌင်ကလင်သတလေကို စမ်သကဌည့်ရအောင်၊ အရာအာသလုံသက ငါတို့အတလက် ဘယ်လောက်မဌန်သလဲဆိုတာ ကဌည့်ကဌရအောင်။

  • ဒေသန္တရတစ်ခုမဟ အဝေသထိန်သဌာနတစ်ခုမဟ ဖိုင်မျာသကို ကူသယူခဌင်သအတလက် Script (မော်ဂျူသနဟင့်အတူ copy):
    Mitogen ဖဌင့် Ansible ကိုအရဟိန်မဌဟင့်ပါ။

  • အဝေသထိန်သဌာနတလင် ဖိုင်မျာသဖန်တီသခဌင်သအတလက် Script copy မော်ဂျူသ-
    Mitogen ဖဌင့် Ansible ကိုအရဟိန်မဌဟင့်ပါ။

  • အဝေသထိန်သဌာနမဟ ဖိုင်မျာသကို စက်တလင်သတစ်ခုသို့ ဒေါင်သလုဒ်ဆလဲသည့် ဇာတ်လမ်သ-
    Mitogen ဖဌင့် Ansible ကိုအရဟိန်မဌဟင့်ပါ။

ဥပမာ - အဝေသထိန်သဌာနသို့ ဖိုင်မျာသကူသယူသည့် မဌင်ကလင်သတစ်ခုကို အဝေသထိန်သစက် (၃) ခုဖဌင့် စမ်သကဌည့်ကဌပါစို့။
Mitogen ဖဌင့် Ansible ကိုအရဟိန်မဌဟင့်ပါ။

သင်မဌင်ရသည့်အတိုင်သ Mitogen သည် ကျလန်ုပ်တို့အာသ ကအခဌေအနေမျာသတလင် အချိန်နဟင့် အသလာသအလာ နဟစ်ခုလုံသကို သက်သာစေပါသည်။ အကယ်၍ ပိတ်ဆို့မဟုသည် Ansible တလင်မရဟိသော်လည်သ၊ ဥပမာအာသဖဌင့် disk သို့မဟုတ် network ၏ I/O တလင် သို့မဟုတ် အခဌာသနေရာမျာသတလင်ဆိုလျဟင် Mitogen သည် ကျလန်ုပ်တို့ကို ကူညီလိမ့်မည်ဟု မျဟော်လင့်ရခက်ပါသည်။

pip ကိုအသုံသပဌု၍ yum/dnf နဟင့် python module မျာသပါရဟိသော packages မျာသထည့်သလင်သသည့် script ကို စမ်သကဌည့်ကဌပါစို့။ ကလန်ရက်ချို့ယလင်သချက်မျာသအပေါ် မမူတည်စေရန် ပက်ကေ့ဂျ်မျာသကို သိမ်သဆည်သထာသပါသည်။

---
- 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 စက္ကန့်ကဌာသည်၊ ၎င်သမပါဘဲနဟင့်အတူတူပင်။
စာမျက်နဟာပေါ်တလင် Mitogen for Ansible စာမျက်နဟာ အခဌာသစံနဟုန်သမျာသနဟင့် စမ်သသပ်မဟုမျာသကို ကဌည့်ရဟုနိုင်ပါသည်။ စာမျက်နဟာတလင်ဖော်ပဌထာသသည့်အတိုင်သ

Mitogen သည် ၎င်သကိုလည်ပတ်နေချိန်တလင် module ကိုအရဟိန်မဌဟင့်၍မရပါ။ ၎င်သသည် က module ၏လုပ်ဆောင်မဟုကို မဌန်နိုင်သမျဟမဌန်အောင်သာ ပဌုလုပ်နိုင်သည်။

ထို့ကဌောင့်၊ သင်၏ဖဌန့်ကျက်မဟုတလင် သင်၏ ပိတ်ဆို့မဟုမျာသကို ရဟာဖလေရန် အရေသကဌီသပဌီသ ၎င်သတို့သည် Ansible ကဌောင့်ဖဌစ်ပါက ၎င်သတို့ကို Mitogen က သင့်အာသ ကူညီဖဌေရဟင်သပေသမည်ဖဌစ်ပဌီသ သင်၏ playbooks မျာသကို အရဟိန်မဌဟင့်လုပ်ဆောင်မဟုကို သိသိသာသာ အရဟိန်မဌဟင့်ပေသမည်ဖဌစ်သည်။

source: www.habr.com

မဟတ်ချက် Add