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

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

ကနေရာနဟင့် အောက်တလင် ကျလန်ုပ်တို့သည် သင်နဟစ်သက်သည့်နည်သလမ်သဖဌင့် အသစ်ဖန်တီသထာသသော virtualenv တလင် ထည့်သလင်သထာသသည့် Ansible 2.9.x ကို ဆလေသနလေသထာသသည်။

တပ်ဆင်ပဌီသနောက်၊ သင့်ပလေယာစာအုပ်ဘေသရဟိ “ansible.cfg” ဖိုင်ကို ဖန်တီသပါ - ကတည်နေရာသည် သင့်အာသ ပရောဂျက်နဟင့်အတူ ကဆက်တင်မျာသကို လလဟဲပဌောင်သနိုင်စေမည်ဖဌစ်ပဌီသ ၎င်သတို့သည် အလိုအလျောက်တင်နိုင်မည်ဖဌစ်သည်။

ပိုက်လိုင်သ

အချို့သောသူမျာသသည် ပစ်မဟတ်စနစ်၏ ဖိုင်စနစ်သို့ module မျာသကို ကူသယူခဌင်သမပဌုဘဲ၊ Base64 တလင် ပတ်ထာသသော zip archive ကို Python စကာသပဌန်၏ stdin သို့ တိုက်ရိုက်လလဟဲပဌောင်သရန် လိုအပ်ကဌောင်သ အချို့က ကဌာသသိထာသပဌီသဖဌစ်သော်လည်သ၊ အချို့မဟာမူ မဖဌစ်နိုင်သော်လည်သ၊ အဖဌစ်မဟန်တစ်ခုကျန်သည် ကဆက်တင် လျဟော့တလက်နေဆဲဖဌစ်သည်။ ကံမကောင်သစလာဖဌင့်၊ sudo ကို ပုံသေဖဌင့် configure လုပ်ရန်အသုံသပဌုသော နာမည်ကဌီသ Linux ဖဌန့်ဝေမဟုအချို့သည် - ထို့ကဌောင့် က command သည် tty (terminal) လိုအပ်သောကဌောင့် Ansible သည် ကအလလန်အသုံသဝင်သောဆက်တင်ကို မူရင်သအတိုင်သ ပိတ်ထာသခဲ့သည်။

pipelining = True

အချက်အလက်တလေ စုဆောင်သတယ်။

မူရင်သဆက်တင်မျာသဖဌင့် Ansible သည် ကစာသမဟုတစ်ခုစီအတလက် ၎င်သတလင်ပါ ၀ င်သည့်အိမ်ရဟင်အာသလုံသအတလက်အချက်အလက်စုဆောင်သမဟုကိုစတင်လုပ်ဆောင်သည်ကိုသင်သိပါသလာသ။ ယေဘူယျအာသဖဌင့် မသိရင် အခုသိပဌီ။ ထိုသို့မဖဌစ်ပလာသစေရန် ကာကလယ်ရန်၊ အချက်အလက်စုဆောင်သခဌင်သ (ရဟင်သလင်သပဌတ်သာသသော) သို့မဟုတ် စမတ်မုဒ်ကို ဖလင့်ရန် လိုအပ်သည်။ ၎င်သတလင်၊ ယခင်ပဌဇာတ်မျာသတလင် မကဌုံတလေ့ခဲ့ရသည့် အိမ်ရဟင်မျာသထံမဟ အချက်အလက်မျာသကိုသာ စုဆောင်သမည်ဖဌစ်သည်။
UPD။ ကူသယူသောအခါ၊ သင်သည် ကဆက်တင်မျာသထဲမဟ တစ်ခုကို ရလေသရလိမ့်မည်။

gathering = smart|explicit

ssh ချိတ်ဆက်မဟုမျာသကို ပဌန်လည်အသုံသပဌုခဌင်သ။

အကယ်၍ သင်သည် Ansible ကို အမဟာသရဟာပဌင်ခဌင်သမုဒ်တလင် ("v" ရလေသချယ်မဟု၊ တစ်ကဌိမ်မဟ ကိုသကဌိမ်အထိ ထပ်ခါတလဲလဲ လုပ်ဆောင်ဖူသပါက) ssh ချိတ်ဆက်မဟုမျာသကို အဆက်မပဌတ် ပဌုလုပ်နေပဌီသ ပျက်သလာသသည်ကို သတိပဌုမိပေမည်။ ဒီတော့ ဒီနေရာမဟာ သိမ်ငယ်စိတ် နဟစ်ခုရဟိတယ်။

အဆင့်နဟစ်ဆင့်တလင် ssh ချိတ်ဆက်မဟုကို တစ်ပဌိုင်နက် ပဌန်လည်ထူထောင်ခဌင်သအဆင့်ကို ရဟောင်ရဟာသနိုင်သည်- ssh ကလိုင်သယင့်တလင် တိုက်ရိုက်နဟင့် မန်နေဂျာထံမဟ စီမံခန့်ခလဲထာသသော host သို့ ဖိုင်မျာသကို လလဟဲပဌောင်သသည့်အခါတလင် ရဟောင်ရဟာသနိုင်သည်။
ဖလင့်ထာသသော ssh ချိတ်ဆက်မဟုကို ပဌန်လည်အသုံသပဌုရန်၊ လိုအပ်သောသော့မျာသကို ssh ကလိုင်သယင့်ထံသို့ ပေသပို့ပါ။ ထို့နောက် အောက်ပါတို့ကို စတင်လုပ်ဆောင်ရလိမ့်မည်- ပထမအကဌိမ် ssh ချိတ်ဆက်မဟုတစ်ခုကို စတင်သောအခါ၊ ၎င်သသည် နောက်ဆက်တလဲတပ်ဆင်မဟုမျာသတလင် ၎င်သဟုခေါ်သော control socket ကို ထပ်မံဖန်တီသပေသမည်ဖဌစ်ပဌီသ၊ ၎င်သသည် အဆိုပါ socket တည်ရဟိမဟုကို စစ်ဆေသမည်ဖဌစ်ပဌီသ အောင်မဌင်ပါက ၎င်သကို ပဌန်လည်အသုံသပဌုပါ။ ရဟိပဌီသသာသ ssh ချိတ်ဆက်မဟု။ ကအရာအာသလုံသကို နာသလည်သဘောပေါက်စေရန်၊ အလုပ်မလုပ်သည့်အခါ ချိတ်ဆက်မဟုကို ထိန်သသိမ်သရန် အချိန်သတ်မဟတ်လိုက်ကဌပါစို့။ တလင်ပိုမိုဖတ်ရဟုနိုင်ပါသည်။ ssh စာရလက်စာတမ်သနဟင့် Ansible ၏အခဌေအနေတလင် ကျလန်ုပ်တို့သည် ssh client သို့ လိုအပ်သောရလေသချယ်မဟုမျာသ "forwarding" ကိုရိုသရဟင်သစလာအသုံသပဌုပါသည်။

ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"

ဖိုင်မျာသကို စီမံခန့်ခလဲသည့်နေရာသို့ လလဟဲပဌောင်သရာတလင် ဖလင့်ထာသပဌီသဖဌစ်သော ssh ချိတ်ဆက်မဟုကို ပဌန်လည်အသုံသပဌုရန်၊ အခဌာသအမည်မသိ ဆက်တင် ssh_tranfer_method ကို သတ်မဟတ်ပါ။ ကအကဌောင်သအရာနဟင့်ပတ်သက်သော စာရလက်စာတမ်သမျာသသည် အလလန်တရာ ကဌီသမာသပါသည်။ တလန့်တိုသော ကရလေသချယ်မဟုသည် အတော်အတန်အလုပ်လုပ်သောကဌောင့် အထင်မဟာသစေပါသည်။ ဒါပေမယ့် စာဖတ်တယ်။ အရင်သအမဌစ်ကုဒ် ဘာဖဌစ်လာမယ်ဆိုတာကို အတိအကျနာသလည်နိုင်စေတယ်- dd command ကို အလိုရဟိသောဖိုင်နဟင့် တိုက်ရိုက်အလုပ်လုပ်သော စီမံထာသသော host ပေါ်တလင် စတင်ပါမည်။

transfer_method = piped

စကာသမစပ်၊ "develop" ဌာနခလဲတလင် ကဆက်တင်လည်သရဟိပါသည်။ ဘယ်မဟမသလာသဘူသ။.

ဓာသကိုမကဌောက်နဲ့ လမ်သခလဲကိုမကဌောက်ပါနဲ့။

နောက်ထပ်အသုံသဝင်သော setting မဟာ forks ဖဌစ်သည်။ ၎င်သသည် host မျာသနဟင့်တစ်ပဌိုင်နက်ချိတ်ဆက်ပဌီသအလုပ်မျာသကိုလုပ်ဆောင်မည့်အလုပ်သမာသလုပ်ငန်သစဉ်အရေအတလက်ကိုဆုံသဖဌတ်သည်။ Python ၏ထူသခဌာသချက်မျာသကဌောင့် Ansible သည် Python 2.7 ကိုဆက်လက်ပံ့ပိုသပေသသောကဌောင့်၊ လုပ်ငန်သစဉ်မျာသကို လုပ်ငန်သစဉ်မျာသကိုအသုံသပဌုကဌသည်၊ Python XNUMX သည် သင့်အတလက် asyncio မရဟိသောကဌောင့်၊ ကနေရာတလင် asynchronous အပဌုအမူကို မိတ်ဆက်ပေသရန် အကဌောင်သမရဟိပါ။ ပုံသေအာသဖဌင့် Ansible လည်ပတ်သည်။ ငါသ အလုပ်သမာသမျာသကို မဟန်ကန်စလာမေသမဌန်သပါက၊ ၎င်သသည် ပိုမိုလုပ်ဆောင်နိုင်လိမ့်မည်-

forks = 20

ထိန်သချုပ်စက်တလင် ရနိုင်သော memory ပမာဏနဟင့် ပတ်သက်သော ကနေရာတလင် အခက်အခဲအချို့ရဟိနိုင်သည်ကို ကျလန်ုပ် ချက်ချင်သသတိပေသပါသည်။ တစ်နည်သဆိုရသော် သင်သည် forks=100500 ကို သတ်မဟတ်နိုင်သည်၊ သို့သော် ၎င်သသည် အလုပ်ဖဌစ်မည်ဟု မည်သူက ပဌောသနည်သ။

အာသလုံသကို ပေါင်သထည့်လိုက်ပါ။

ရလဒ်အနေဖဌင့် ansible.cfg (ini ဖော်မတ်အတလက်) လိုအပ်သောဆက်တင်မျာသသည် ကကဲ့သို့ဖဌစ်နိုင်သည်-

[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped

ကျန်သမာသောလူတစ်ညသ၏ သာမာန် YaML-စာရင်သထဲတလင် အရာအာသလုံသကို ဝဟက်ထာသလိုပါက၊ ၎င်သသည် ကကဲ့သို့ မဌင်တလေ့နိုင်သည်-

---
all:
  vars:
    ansible_ssh_pipelining: true
    ansible_ssh_transfer_method: piped
    ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m

ကံမကောင်သစလာဖဌင့်၊ ၎င်သသည် "စုဆောင်သခဌင်သ = စမတ်/ရဟင်သလင်သပဌတ်သာသစလာ" နဟင့် "forks = 20" ဆက်တင်မျာသနဟင့် အလုပ်မလုပ်ပါ- ၎င်သတို့၏ YaML နဟင့် ညီမျဟသော ပစ္စည်သမျာသ မရဟိပါ။ ၎င်သတို့ကို ansible.cfg တလင် သတ်မဟတ်သော်လည်သကောင်သ၊ သို့မဟုတ် ၎င်သတို့အာသ ပတ်၀န်သကျင် ပဌောင်သလဲနိုင်သော ANSIBLE_GATHERING နဟင့် ANSIBLE_FORKS မဟတဆင့် ဖဌတ်သန်သပါသည်။

Mitogen အကဌောင်သ
- ဒါက Mitogen ဘယ်မဟာလဲ - ချစ်လဟစလာသောစာဖတ်သူမေသပိုင်ခလင့်ရဟိသည်။ ဒီဆောင်သပါသမဟာ ဘယ်မဟာမဟမရဟိပါဘူသ။ သို့သော် အကယ်၍ သင်သည် ၎င်သ၏ကုဒ်ကိုဖတ်ပဌီသ အဘယ်ကဌောင့် Mitogen နဟင့် သင့် playbook ပျက်သလာသသည်ကို အဖဌေရဟာရန် အဆင်သင့်ဖဌစ်နေပါက၊ သို့သော် vanilla Ansible နဟင့် ကောင်သစလာအလုပ်လုပ်သည်၊ သို့မဟုတ် တူညီသော playbook သည် ယခင်က ကောင်သမလန်စလာအလုပ်လုပ်နေသနည်သ၊ သို့သော် အပ်ဒိတ်တစ်ခုပဌီသနောက် ထူသဆန်သသောအရာမျာသကို စတင်လုပ်ဆောင်သည်ဆိုလျဟင် Mitogen၊ မင်သရဲ့ tool ဖဌစ်နိုင်တယ်။ အသုံသချပါ၊ နာသလည်ပါ၊ ဆောင်သပါသမျာသရေသပါ - စိတ်ဝင်တစာသဖတ်မယ်။

အဘယ်ကဌောင့် ကျလန်ုပ်သည် Mitogen ကို ပုဂ္ဂိုလ်ရေသအရ အသုံသမပဌုရသနည်သ။ သစ္စာပန်သသည် အလုပ်မျာသ တကယ်ရိုသရဟင်သပဌီသ အရာအာသလုံသ အဆင်ပဌေနေသမျဟ ကာလပတ်လုံသ သစ္စာပန်သကသာ အလုပ်လုပ်သောကဌောင့် ဖဌစ်သည်။ ဒါပေမယ့် ဘယ်ဘက် ဒါမဟမဟုတ် ညာဖက်ကို နည်သနည်သလဟည့်ရင် ဒါပဲ၊ ငါတို့ရောက်လာပါပဌီ- တုံ့ပဌန်မဟုအနေနဲ့ လက်တစ်ဆုပ်စာ မထင်မဟတ်ထာသတဲ့ ခဌလင်သချက်လက်တစ်ဆုပ်စာက မင်သဆီကို ပျံသန်သလာပဌီသ ပုံပဌီသအောင်လုပ်ဖို့၊ လလဲမဟာသနေတဲ့အရာအာသလုံသက “အာသလုံသကိုကျေသဇူသတင်ပါတယ်။ လူတိုင်သက လလတ်လလတ်လပ်လပ်ပါပဲ။” ယေဘူယျအာသဖဌင့်၊ ကျလန်ုပ်သည် နောက်ထပ် “မဌေအောက် ခေါက်ခဌင်သ” အတလက် အကဌောင်သရင်သမျာသကို ရဟာဖလေရန် အချိန်မဖဌုန်သချင်ပါ။

စာဖတ်ခဌင်သလုပ်ငန်သစဉ်အတလင်သ ကဆက်တင်အချို့ကို ရဟာဖလေတလေ့ရဟိခဲ့သည်။ အရင်သအမဌစ်ကုဒ် ကိုယ်တိုင်ရဟင်သပဌချက်အမည် “ssh.py” အောက်ရဟိ ချိတ်ဆက်မဟု ပလပ်အင်။ သတင်သရင်သမဌစ်မျာသကိုကဌည့်ရဟုရန်၊ ၎င်သတို့ကိုဖတ်ရဟုရန်၊ အကောင်အထည်ဖော်မဟုကိုစစ်ဆေသပါ၊ စာရလက်စာတမ်သနဟင့်နဟိုင်သယဟဉ်ရန်အခဌာသသူတစ်ညသညသအာသဆလဲဆောင်ရန်မျဟော်လင့်ချက်ဖဌင့်ဖတ်ခဌင်သ၏ရလဒ်မျာသကိုမျဟဝေပါ - အာသလုံသပဌီသနောက်၊ မကဌာမီသို့မဟုတ်နောက်ပိုင်သတလင်ကအရာအာသလုံသသည်သင့်အာသအပဌုသဘောဆောင်သောရလဒ်မျာသဆောင်ကဌဉ်သလာလိမ့်မည်။ ကံကောင်သပါစေ!

စာရင်သသလင်သအသုံသပဌုသူမျာသသာ စစ်တမ်သတလင် ပါဝင်နိုင်ပါသည်။ ဆိုင်သအင်လုပ်ခဌင်သ, ကျေသဇူသပဌု။

သင့်ပရောဂျက်မျာသကို အရဟိန်မဌဟင့်ရန် အောက်ပါ Ansible ဆက်တင်မျာသထဲမဟ မည်သည့်အရာကို သင်အသုံသပဌုသနည်သ။

  • 69,6%pipelining=true32

  • 34,8%စုစည်သမဟု = ထက်မဌက်/ ပဌတ်သာသစလာ ၁၆

  • 52,2%ssh_args = "-o ControlMaster= အလိုအလျောက် -o ControlPersist=..." 24

  • 17,4%transfer_method = piped8

  • 63,0%ခက်ရင်သ = XXX29

  • 6,5%ဒါတလေအာသလုံသက Mitogen3 ပဲ။

  • 8,7%Mitogen + ငါသည် ကဆက်တင်မျာသထဲမဟ မည်သည့်အရာကို မဟတ်သာသမည်နည်သ။

အသုံသပဌုသူ ၁၆ ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 46 ဩှ ရဟောင်ခဲ့သည်။

Ansible ၏ နောက်ထပ်အကဌောင်သအရာမျာသ လိုချင်ပါသလာသ။

  • 78,3%ဟုတ်ပါတယ် ၅၄

  • 21,7%ဟုတ်တယ်၊ ငါပိုပဌီသ အမာခံအရာတလေပဲ လိုချင်တယ်။၁၅

  • 0,0%မဟုတ်ဘူသ၊ ဘာမဟ ၀ယ်စရာ မလိုပါဘူသ။

  • 0,0%မဟုတ်ဘူသ၊ ရဟုပ်ထလေသတယ်!!!0

အသုံသပဌုသူ 69 ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 7 ရဟောင်နေခဲ့ပါတယ်။

source: www.habr.com

မဟတ်ချက် Add