Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။

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

ကဆောင်သပါသသည် ဘာသာပဌန်တစ်မျိုသဖဌစ်သည်။ ဖျော်ဖဌေပလဲ HighLoad+ 2018 တလင်

disk အစာသထိုသခဌင်သလုပ်ငန်သစဉ်ကိုတည်ဆောက်ခဌင်သ။

ပထမဆုံသ ဂဏန်သအချို့

OK သည် လူသန်သပေါင်သမျာသစလာအသုံသပဌုသည့် ဧရာမဝန်ဆောင်မဟုတစ်ခုဖဌစ်သည်။ မတူညီသောဒေတာစင်တာ 7 ခုတလင်တည်ရဟိသောဆာဗာ 4 ခန့်ကဝန်ဆောင်မဟုပေသသည်။ ဆာဗာမျာသတလင် disk ပေါင်သ 70 ကျော်ပါဝင်သည်။ ၎င်သတို့ကို တစ်ခုနဟင့်တစ်ခု ထိပ်တလင် ချိတ်ထာသပါက သင်သည် အမဌင့် 1 ကီလိုမီတာထက် ပိုသော တာဝါတစ်ခု ရရဟိမည်ဖဌစ်သည်။

ဟာ့ဒ်ဒရိုက်မျာသသည် မကဌာခဏဆိုသလို ပျက်ကလက်သည့် ဆာဗာအစိတ်အပိုင်သမျာသဖဌစ်သည်။ ထိုသို့သော volumes မျာသဖဌင့် ကျလန်ုပ်တို့သည် တစ်ပတ်လျဟင် disk 30 ခန့်ကို ပဌောင်သလဲရမည်ဖဌစ်ပဌီသ၊ ကလုပ်ထုံသလုပ်နည်သသည် အလလန်သာယာသော လုပ်ရိုသလုပ်စဉ်တစ်ခု ဖဌစ်လာပါသည်။

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။

အဖဌစ်အပျက်မျာသ

ကျလန်ုပ်တို့၏ကုမ္ပဏီသည် ပဌည့်စုံသောအဖဌစ်အပျက်စီမံခန့်ခလဲမဟုကို မိတ်ဆက်ပေသခဲ့သည်။ Jira ရဟိ အဖဌစ်အပျက်တစ်ခုစီကို ကျလန်ုပ်တို့ မဟတ်တမ်သတင်ပဌီသ ဖဌေရဟင်သပဌီသ ဖဌေရဟင်သပါ။ အကယ်၍ အဖဌစ်အပျက်တစ်ခုသည် သုံသစလဲသူမျာသအပေါ် သက်ရောက်မဟုရဟိခဲ့ပါက၊ ကျလန်ုပ်တို့သည် ထိုအခဌေအနေမျိုသတလင် ပိုမိုမဌန်ဆန်စလာတုံ့ပဌန်ပုံ၊ အကျိုသသက်ရောက်မဟုကို လျဟော့ချနည်သနဟင့် ထပ်တလဲလဲပဌန်ဖဌစ်ခဌင်သကို မည်သို့တာသဆီသရမည်ကို သေချာပေါက် တလေသတောလိုက်ပါ။

သိုလဟောင်ကိရိယာမျာသသည် ချလင်သချက်မရဟိပါ။ သူတို့ရဲ့ အခဌေအနေကို Zabbix က စောင့်ကဌည့်နေပါတယ်။ ကျလန်ုပ်တို့သည် Syslog တလင် စာရေသခဌင်သ/ဖတ်ရဟုခဌင်သ အမဟာသအယလင်သမျာသအတလက် စောင့်ကဌည့်စစ်ဆေသခဌင်သ၊ HW/SW စီသနင်သမဟုမျာသ၏ အခဌေအနေကို ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ၊ SMART စောင့်ကဌည့်ခဌင်သနဟင့် SSDs အတလက် ဝတ်ဆင်မဟုကို တလက်ချက်ပါသည်။

အရင်တုံသက ဘယ်လိုပဌောင်သလဲ။

Zabbix တလင် အစပျိုသမဟုတစ်ခု ဖဌစ်ပေါ်သည့်အခါ Jira တလင် အဖဌစ်အပျက်တစ်ခုကို ဖန်တီသပဌီသ ဒေတာစင်တာမျာသရဟိ သင့်လျော်သော အင်ဂျင်နီယာမျာသထံ အလိုအလျောက် သတ်မဟတ်ပေသပါသည်။ ကျလန်ုပ်တို့သည် HW ဖဌစ်ရပ်မျာသအာသလုံသ၊ ဆိုလိုသည်မဟာ ဒေတာစင်တာရဟိ စက်ကိရိယာမျာသနဟင့် မည်သည့်ရုပ်ပိုင်သဆိုင်ရာလုပ်ဆောင်မဟုမဆို လိုအပ်သည့်အရာမျာသနဟင့် လုပ်ဆောင်သည်။
ဒေတာစင်တာ အင်ဂျင်နီယာသည် ဟာ့ဒ်ဝဲနဟင့် ပတ်သက်သည့် ပဌဿနာမျာသကို ဖဌေရဟင်သပေသသည့် ပုဂ္ဂိုလ်ဖဌစ်ပဌီသ ဆာဗာမျာသကို တပ်ဆင်ခဌင်သ၊ ထိန်သသိမ်သခဌင်သနဟင့် ဖျက်သိမ်သခဌင်သတို့အတလက် တာဝန်ရဟိပါသည်။ လက်မဟတ်ရပဌီသ အင်ဂျင်နီယာက အလုပ်ဝင်တယ်။ ဒစ်ခ်စင်မျာသတလင် သူသည် ဒစ်ခ်မျာသကို လလတ်လပ်စလာပဌောင်သသည်။ သို့သော် လိုအပ်သောစက်ပစ္စည်သကို သုံသစလဲခလင့်မရပါက၊ အင်ဂျင်နီယာသည် တာဝန်ကျသော စနစ်စီမံခန့်ခလဲသူမျာသထံ အကူအညီတောင်သခံသည်။ ပထမညသစလာ၊ သင်လည်ပတ်မဟုမဟ disk ကိုဖယ်ရဟာသရန်လိုအပ်သည်။ ၎င်သကိုလုပ်ဆောင်ရန်၊ သင်သည် ဆာဗာပေါ်တလင် လိုအပ်သောပဌောင်သလဲမဟုမျာသပဌုလုပ်ရန်၊ အပလီကေသရဟင်သမျာသကိုရပ်တန့်ရန်နဟင့် disk ကိုဖဌုတ်ချရန် လိုအပ်သည်။

တာဝန်ကျစနစ်စီမံခန့်ခလဲသူသည် အလုပ်အဆိုင်သအတလင်သ ပေါ်တယ်တစ်ခုလုံသ၏လည်ပတ်မဟုအတလက် တာဝန်ရဟိသည်။ သူက အဖဌစ်အပျက်တလေကို စုံစမ်သတယ်၊ ပဌုပဌင်မဟုတလေ လုပ်တယ်၊ developer တလေကို အလုပ်အသေသလေသတလေ ပဌီသအောင် ကူညီပေသတယ်။ သူသည် hard drive မျာသနဟင့်သာဆက်ဆံသည်။

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

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

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

အသစ်အစာသထိုသခဌင်သလုပ်ငန်သစဉ်

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

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

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

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

ကလက်လပ်မျာသနဟင့် ၎င်သတို့၏ display သည် အဆင်ပဌေသော်လည်သ ချတ်အသုံသပဌုရန် လိုအပ်ခဌင်သမဟ ကျလန်ုပ်တို့ကို မကယ်တင်နိုင်ခဲ့ပါ။ ဒီလိုလုပ်ဖို့၊ အလုပ်အသလာသအလာကို ပဌောင်သရမယ်။

အရင်တုန်သက ဒီလိုမျိုသ

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

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

အဆင့်အတန်သကိုလည်သ ထည့်သလင်သထာသပါတယ်။ အဆင်သင့်. ဒစ်ကို အစာသထိုသပဌီသနောက် လက်မဟတ်ကို ၎င်သထံ လလဟဲပဌောင်သပေသသည်။ ဆိုလိုသည်မဟာ၊ အာသလုံသပဌီသပဌီသဖဌစ်သည်၊ သို့သော် HW/SW RAID ကို ဆာဗာပေါ်တလင် ထပ်တူပဌုထာသသည်။ ဒါက တော်တော်ကဌာနိုင်ပါတယ်။

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

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

ပဌီသရင် လက်မဟတ်ကို လလဟဲပေသတယ်။ ပဌောင်သလဲရန် အသင့်ဖဌစ်နေပါပဌီ။: ၎င်သသည် ဒစ်ကို ဆလဲထုတ်နိုင်သည့် အင်ဂျင်နီယာအာသ အချက်ပဌခဌင်သဖဌစ်သည်။ Jira ရဟိ ကလက်လပ်အာသလုံသကို ဖဌည့်ပဌီသပဌီ၊ အင်ဂျင်နီယာသည် disk ၏ အမျိုသအစာသနဟင့် အရလယ်အစာသကို သိပါသည်။ ကဒေတာကို ယခင်အခဌေအနေတလင် သို့မဟုတ် စီမံခန့်ခလဲသူမဟ အလိုအလျောက် ထည့်သလင်သပါသည်။

ဒစ်ကို အစာသထိုသပဌီသနောက်၊ လက်မဟတ် အခဌေအနေကို ပဌောင်သသည်။ Changed. ၎င်သသည် မဟန်ကန်သောဒစ်ကို ထည့်သလင်သပဌီသ၊ အပိုင်သပိုင်သခလဲခဌင်သ ပဌီသသလာသသည်၊ အက်ပ်အာသ စတင်ပဌီသ အချို့သော ဒေတာ ပဌန်လည်ရယူခဌင်သ လုပ်ငန်သမျာသကို စတင်လုပ်ဆောင်ကဌောင်သ စစ်ဆေသသည်။ လက်မဟတ်ကိုလည်သ အခဌေအနေသို့ လလဟဲပဌောင်သနိုင်သည်။ အဆင်သင့်ကကိစ္စတလင်၊ ဒစ်ကိုလည်ပတ်စေသောကဌောင့်စီမံခန့်ခလဲသူတလင်တာဝန်ရဟိလိမ့်မည်။ ပုံအပဌည့်အစုံမဟာ ကကဲ့သို့ဖဌစ်သည်။

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

ချတ်လုပ်ရန် မလိုအပ်ပါ။ ဟုတ်ပါတယ်၊ အက်ဒမင်က အင်ဂျင်နီယာကို “ဒါကို ပိုမဌန်အောင် အစာသထိုသဖို့လိုတယ်” ဒါမဟမဟုတ် “ညနေပိုင်သရောက်နေပဌီ၊ အစာသထိုသဖို့ အချိန်ရဟိလာသ” လို့ အင်ဂျင်နီယာထံ စာရေသနိုင်ပါတယ်။ သို့သော် ကပဌဿနာမျာသအတလက် ကျလန်ုပ်တို့သည် နေ့စဉ်နဟင့်အမျဟ chats တလင် မဆက်သလယ်တော့ပါ။

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

Workflow တည်ဆောက်တဲ့အခါ သင်ခန်သစာမျာသ

  • လုပ်ထုံသလုပ်နည်သတစ်ခုတည်ဆောက်သောအခါ၊ ကလဲပဌာသခဌာသနာသသောအရင်သအမဌစ်မျာသမဟအချက်အလက်မျာသကိုစုဆောင်သရန်လိုအပ်သည်။
    ကျလန်ုပ်တို့၏ စီမံခန့်ခလဲသူအချို့သည် အင်ဂျင်နီယာသည် ဒစ်ခ်မျာသကို သူ့ကိုယ်သူ ပဌောင်သလဲကဌောင်သ မသိပါ။ အချို့သောလူမျာသက MD RAID ထပ်တူပဌုခဌင်သအာသ အင်ဂျင်နီယာမျာသက ကိုင်တလယ်သည်ဟု ထင်ခဲ့ကဌသော်လည်သ အချို့မဟာ ထိုသို့လုပ်ဆောင်ရန် အခလင့်မရဟိကဌပေ။ ထိပ်တန်သအင်ဂျင်နီယာအချို့က ထိုသို့လုပ်ဆောင်ခဲ့သော်လည်သ မည်သည့်နေရာတလင်မဟ ဖော်ပဌခဌင်သမရဟိသောကဌောင့် အမဌဲတမ်သမဟုတ်ပေ။
  • လုပ်ထုံသလုပ်နည်သသည် ရိုသရဟင်သပဌီသ နာသလည်နိုင်သည်။
    အဆင့်မျာသစလာကို မဟတ်ထာသရန် လူတစ်ယောက်အတလက် ခက်ခဲသည်။ Jira ရဟိ အရေသကဌီသဆုံသ အိမ်နီသချင်သ အခဌေအနေမျာသကို ပင်မစခရင်ပေါ်တလင် ထာသရဟိသင့်သည်။ သင်သည် ၎င်သတို့အာသ အမည်ပဌောင်သနိုင်သည်၊ ဥပမာ၊ ပဌောင်သလဲရန် အသင့်ဖဌစ်နေပဌီဟု ကျလန်ုပ်တို့ခေါ်ဆိုပါသည်။ နဟင့် အခဌာသအခဌေအနေမျာသကို မျက်စိညောင်သခဌင်သမဖဌစ်စေရန် drop-down menu တလင် ဝဟက်ထာသနိုင်ပါသည်။ ဒါပေမယ့် လူတလေကို ကန့်သတ်မထာသဘဲ အသလင်ကူသပဌောင်သရေသလုပ်ဖို့ အခလင့်အရေသပေသလိုက်တာ ပိုကောင်သပါတယ်။
    ဆန်သသစ်တီထလင်မဟု၏တန်ဖိုသကို ရဟင်သပဌပါ။ လူတလေနာသလည်လာတဲ့အခါ လုပ်ငန်သစဉ်အသစ်ကို ပိုလက်ခံလာကဌတယ်။ လူမျာသသည် လုပ်ငန်သစဉ်တစ်ခုလုံသကို မနဟိပ်ဘဲ လိုက်နာရန် ကျလန်ုပ်တို့အတလက် အလလန်အရေသကဌီသပါသည်။ ထို့နောက် ကျလန်ုပ်တို့သည် ကအရာကို automation တည်ဆောက်ခဲ့သည်။
  • စောင့်ပါ၊ ခလဲခဌမ်သစိတ်ဖဌာပါ၊ အဖဌေရဟာပါ။
    လုပ်ထုံသလုပ်နည်သ၊ နည်သပညာပိုင်သဆိုင်ရာ အကောင်အထည်ဖော်မဟု၊ အစည်သအဝေသမျာသနဟင့် ဆလေသနလေသမဟုမျာသ တည်ဆောက်ရန် အချိန်တစ်လခန့် အချိန်ယူခဲ့ရသည်။ အကောင်အထည်ဖော်ရန် သုံသလကျော်ကဌာသည်။ လူတလေက ဆန်သသစ်တီထလင်မဟုကို ဖဌည်သဖဌည်သချင်သ စတင်အသုံသပဌုလာကဌတာကို ကျလန်တော်မဌင်တယ်။ အစောပိုင်သအဆင့်တလေမဟာ အဆိုသမဌင်မဟုတလေ အမျာသကဌီသရဟိခဲ့တယ်။ သို့သော် ၎င်သသည် လုပ်ထုံသလုပ်နည်သကိုယ်တိုင်နဟင့် ၎င်သ၏နည်သပညာပိုင်သဆိုင်ရာ အကောင်အထည်ဖော်မဟုတို့နဟင့် လုံသဝကင်သကလာပါသည်။ ဥပမာအာသဖဌင့်၊ အက်ဒမင်တစ်ညသသည် Jira ကိုအသုံသမပဌုသော်လည်သ မဌစ်ဆုံရဟိ Jira ပလပ်အင်ကို အသုံသပဌု၍ အချို့အရာမျာသသည် သူ့အတလက် မရနိုင်ပါ။ Jira ကို ကျလန်ုပ်တို့ပဌသခဲ့ပဌီသ စီမံခန့်ခလဲသူ၏ ကုန်ထုတ်စလမ်သအာသသည် ယေဘူယျအလုပ်မျာသအတလက်ရော ဒစ်မျာသကို အစာသထိုသခဌင်သအတလက်ရော တိုသမဌဟင့်ပေသပါသည်။

ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။

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

ယခု ကျလန်ုပ်တို့၏ အစာသထိုသခဌင်သလုပ်ငန်သစဉ်ကို အဆင့်မျာသအဖဌစ် ပိုင်သခဌာသထာသပဌီသ၊ တစ်ခုစီတလင် တိကျသောလုပ်ဆောင်သူနဟင့် လုပ်ဆောင်ချက်မျာသစာရင်သပါရဟိသည့် အဆင့်မျာသအတိုင်သ ကျလန်ုပ်တို့သည် အဆင့်ဆင့်တလင် အလိုအလျောက်လုပ်ဆောင်ခဌင်သကို လုပ်ဆောင်နိုင်သော်လည်သ အာသလုံသကို တစ်ပဌိုင်နက် လုပ်ဆောင်နိုင်မည်မဟုတ်ပေ။ ဥပမာအာသဖဌင့်၊ အရိုသရဟင်သဆုံသအဆင့် - Ready (RAID/data synchronization ကိုစစ်ဆေသခဌင်သ) ကို bot တစ်ခုသို့ အလလယ်တကူလလဟဲအပ်နိုင်ပါသည်။ bot သည် အနည်သငယ်လေ့လာပဌီသသောအခါ၊ သင်သည် ၎င်သကို ပို၍အရေသကဌီသသောအလုပ်တစ်ခု ပေသနိုင်သည်။

တိရစ္ဆာန်ရုံ ဆက်တင်မျာသ

ဘော့တ်အကဌောင်သ မပဌောမီ၊ ကျလန်ုပ်တို့၏ တိရစ္ဆာန်ရုံမျာသတလင် တပ်ဆင်မဟုဆိုင်ရာ လေ့လာရေသခရီသတိုကို ကဌည့်ကဌပါစို့။ ပထမညသစလာ၊ ကျလန်ုပ်တို့၏ အခဌေခံအဆောက်အအုံ၏ ကဌီသမာသသော အရလယ်အစာသကဌောင့်ဖဌစ်သည်။ ဒုတိယအနေဖဌင့်၊ ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုတစ်ခုစီအတလက် အကောင်သဆုံသသော ဟာ့ဒ်ဝဲလ်ဖလဲ့စည်သမဟုပုံစံကို ရလေသချယ်ရန် ကဌိုသစာသပါသည်။ ကျလန်ုပ်တို့တလင် ဟာ့ဒ်ဝဲ RAID မော်ဒယ် 20 ခန့်ရဟိပဌီသ အမျာသစုမဟာ LSI နဟင့် Adaptec ဖဌစ်သော်လည်သ မတူညီသော ဗာသရဟင်သ HP နဟင့် DELL မျာသလည်သ ရဟိပါသည်။ RAID controller တစ်ခုစီတလင် ၎င်သ၏ကိုယ်ပိုင်စီမံခန့်ခလဲမဟု utility ရဟိသည်။ အမိန့်အစုံနဟင့် ၎င်သတို့ကိုထုတ်ပေသသည့် RAID ထိန်သချုပ်ကိရိယာတစ်ခုစီအတလက် ဗာသရဟင်သတစ်ခုနဟင့်တစ်ခု ကလဲပဌာသနိုင်သည်။ HW-RAID ကို အသုံသမပဌုပါက mdraid ကို အသုံသပဌုနိုင်ပါသည်။

ကျလန်ုပ်တို့သည် ဒစ်ခ်အရန်သိမ်သခဌင်သမရဟိဘဲ တပ်ဆင်မဟုအသစ်အာသလုံသနီသပါသကို ပဌုလုပ်ပါသည်။ ကျလန်ုပ်တို့သည် ဆာဗာမျာသမဟုတ်ဘဲ ဒေတာစင်တာအဆင့်တလင် ကျလန်ုပ်တို့၏စနစ်မျာသကို ဒေတာစင်တာအဆင့်တလင် အရန်ကူသထာသသောကဌောင့် ဟာ့ဒ်ဝဲနဟင့် ဆော့ဖ်ဝဲလ် RAID ကို မသုံသတော့ပါ။ သို့သော် ပံ့ပိုသပေသရန်လိုအပ်သော အမလေအနဟစ်ဆာဗာမျာသစလာရဟိပါသည်။

RAID ထိန်သချုပ်ကိရိယာမျာသရဟိ ဒစ်မျာသကို တစ်နေရာမဟ ကုန်ကဌမ်သကိရိယာမျာသသို့ လလဟဲပဌောင်သပေသသည်၊ တစ်နေရာရာတလင် JBOD မျာသကို အသုံသပဌုသည်။ ဆာဗာတလင် စနစ်ဒစ်တစ်ခုနဟင့် ဖလဲ့စည်သမဟုပုံစံမျာသ ရဟိပဌီသ ၎င်သကို အစာသထိုသရန် လိုအပ်ပါက သင်သည် OS နဟင့် အပလီကေသရဟင်သမျာသ တပ်ဆင်ခဌင်သနဟင့်အတူ ဆာဗာကို ပဌန်လည်ထည့်သလင်သရမည်ဖဌစ်ပဌီသ ဗာသရဟင်သတူညီသော ဖိုင်မျာသကို ထည့်သလင်သကာ အက်ပ်လီကေသရဟင်သကို စတင်လိုက်ပါ။ ဒစ်ခ်စနစ်ခလဲအဆင့်တလင်မဟုတ်ဘဲ အပလီကေသရဟင်သမျာသကိုယ်တိုင် တိုက်ရိုက်အရန်ကူသယူသည့် ဆာဗာအုပ်စုမျာသစလာလည်သ ရဟိပါသည်။

စုစုပေါင်သ၊ ကျလန်ုပ်တို့တလင် မတူညီသော အပလီကေသရဟင်သပေါင်သ 400 နီသပါသကို အသုံသပဌုနေသည့် ထူသခဌာသသော ဆာဗာအုပ်စု 100 ကျော်ရဟိသည်။ ထိုသို့သောရလေသချယ်စရာအမျာသအပဌာသကို ကာမိစေရန်၊ ကျလန်ုပ်တို့သည် ဘက်စုံသုံသ အလိုအလျောက်စနစ်သုံသကိရိယာတစ်ခု လိုအပ်ပါသည်။ ရိုသရဟင်သသော DSL ဖဌင့် ပိုကောင်သသည်၊ ထို့ကဌောင့် ၎င်သကိုရေသသာသသူသာမက ၎င်သကို ပံ့ပိုသပေသနိုင်မည်ဖဌစ်သည်။

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

အထလေထလေအစီအစဉ်

ဥပမာတစ်ခုအနေနဲ့ အဖဌစ်အပျက်တစ်ခုကို အသုံသပဌုထာသတဲ့ ယေဘူယျ အလိုအလျောက်စနစ်စနစ်ကို လေ့လာကဌည့်ရအောင်။ Zabbix သည် sdb disk မအောင်မဌင်ကဌောင်သ၊ အစပျိုသမီသလင်သနေပဌီသ လက်မဟတ်ကို Jira တလင် ဖန်တီသထာသသည်။ အက်ဒမင်သည် ၎င်သကိုကဌည့်ရဟုခဲ့ပဌီသ ၎င်သသည် မိတ္တူပလာသမဟုတ်၊ အတုအယောင်အပဌုသဘောမဟုတ်ကဌောင်သ သဘောပေါက်သည်၊ ဆိုလိုသည်မဟာ ဒစ်ကို ပဌောင်သလဲရန်လိုအပ်ပဌီသ လက်မဟတ်ကို လုပ်ဆောင်ဆဲသို့ လလဟဲပဌောင်သပေသခဲ့သည်။

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။
Python ဖဌင့်ရေသသာသထာသသော DiskoBot အပလီကေသရဟင်သသည် လက်မဟတ်အသစ်မျာသအတလက် Jira ကို အခါအာသလျော်စလာ စစ်တမ်သကောက်ယူသည်။ လုပ်ဆောင်နေသည့် လက်မဟတ်အသစ်တစ်ခု ပေါ်လာသည်ကို သတိပဌုမိသည်၊ ၎င်သသည် Ansible တလင် playbook ကိုဖလင့်ပေသသည် (၎င်သသည် Jira ရဟိ အခဌေအနေတစ်ခုစီအတလက် လုပ်ဆောင်သည်) နဟင့်သက်ဆိုင်သော thread ကို အစပျိုသသည်။ ကကိစ္စတလင်, Ready2change ကိုစတင်ခဲ့သည်။

Ansible သည် host သို့ပို့သည်၊ လည်ပတ်မဟုမဟ disk ကိုဖယ်ရဟာသပဌီသ Callbacks မဟတဆင့်အပလီကေသရဟင်သသို့အခဌေအနေအာသသတင်သပို့သည်။

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

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။
အထက်တလင်ဖော်ပဌထာသသောအစီအစဉ်အရ၊ လက်မဟတ်သည် အခဌာသ playbook ကိုဖလင့်သည့် bot သို့ပဌန်သလာသကာ host သို့သလာသကာ disk ကို လည်ပတ်စေပါသည်။ ဘော့တ်သည် လက်မဟတ်ကို ပိတ်သည်။ ဟူှ!

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။
အခု System ရဲ့ အစိတ်အပိုင်သတစ်ချို့အကဌောင်သ ပဌောကဌည့်ရအောင်။

Diskobot

ကလျဟောက်လလဟာကို Python ဖဌင့်ရေသသာသထာသသည်။ JQL အရ Jira မဟ လက်မဟတ်မျာသကို ရလေသချယ်သည်။ လက်မဟတ်၏အခဌေအနေပေါ် မူတည်၍ နောက်တစ်ခုသည် အခဌေအနေနဟင့်သက်ဆိုင်သည့် Ansible playbook ကိုဖလင့်ပေသသည့်သက်ဆိုင်ရာကိုင်တလယ်သူထံသို့သလာသပါသည်။

JQL နဟင့် မဲရုံကဌာသကာလမျာသကို အပလီကေသရဟင်သဖလဲ့စည်သပုံဖိုင်တလင် သတ်မဟတ်ထာသသည်။

jira_states:
  investigate:
    jql: '
 status = Open and "Disk Size" is EMPTY'
    interval: 180

  inprogress:
    jql: '
  and "Disk Size" is not EMPTY and "Device Name" is not EMPTY'
 
  ready:
    jql: '
 and (labels not in ("dbot_ignore") or labels is EMPTY)'
    interval: 7200

ဥပမာအာသဖဌင့်၊ လုပ်ဆောင်ဆဲအခဌေအနေရဟိ လက်မဟတ်မျာသကဌာသတလင်၊ ဖဌည့်သလင်သထာသသည့် Disk အရလယ်အစာသနဟင့် စက်ပစ္စည်သအမည်အကလက်မျာသကိုသာ ရလေသချယ်ထာသသည်။ စက်ပစ္စည်သအမည်သည် ပလေသစာအုပ်ကို လုပ်ဆောင်ရန် လိုအပ်သော ပိတ်ဆို့ကိရိယာ၏ အမည်ဖဌစ်သည်။ အင်ဂျင်နီယာသည် မည်သည့်အရလယ်အစာသ disk လိုအပ်သည်ကို သိစေရန် ဒစ်ခ်အရလယ်အစာသ လိုအပ်သည်။

အဆင်သင့်အခဌေအနေရဟိသည့် လက်မဟတ်မျာသကဌာသတလင် dbot_ignore အညလဟန်သပါသည့် လက်မဟတ်မျာသကို စစ်ထုတ်ပါသည်။ စကာသမစပ်၊ ထိုသို့သော စစ်ထုတ်ခဌင်သအတလက်နဟင့် ထပ်နေသော လက်မဟတ်မျာသကို အမဟတ်အသာသပဌုရန်နဟင့် စာရင်သအင်သမျာသ စုဆောင်သရန်အတလက် Jira အညလဟန်သမျာသကို အသုံသပဌုပါသည်။

playbook တစ်ခု အဆင်မပဌေပါက Jira သည် dbot_failed အညလဟန်သကို နောက်မဟ ခလဲခဌမ်သစိတ်ဖဌာနိုင်စေရန် ပဌုလုပ်ပေသပါသည်။

Ansible နဟင့် အပဌန်အလဟန်လုပ်ဆောင်နိုင်မဟု

လျဟောက်လလဟာသည် Ansible မဟတဆင့်ဆက်သလယ်သည်။ Ansible Python API. playbook_executor သို့ ကျလန်ုပ်တို့သည် ဖိုင်အမည်နဟင့် variables အစုံကို ပေသပို့ပါသည်။ ၎င်သသည် သင့်အာသ Python ကုဒ်တလင် ဖော်ပဌမည့်အစာသ Ansible ပရောဂျက်ကို ပုံမဟန် yml ဖိုင်မျာသအဖဌစ် ထာသရဟိနိုင်စေမည်ဖဌစ်သည်။

Ansible တလင်လည်သ *extra_vars*၊ ပိတ်ဆို့ကိရိယာ၏အမည်၊ လက်မဟတ်အခဌေအနေအပဌင် ပဌဿနာသော့ပါရဟိသော callback_url မဟတဆင့် - ၎င်သကို HTTP တလင် ပဌန်ခေါ်ရန်အတလက် အသုံသပဌုပါသည်။

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

ကသည်မဟာ HTTP ပဌန်ခေါ်ခဌင်သကို အကောင်အထည်ဖော်သည့် အလုပ်တစ်ခု၏ ဥပမာတစ်ခုဖဌစ်သည်။

callaback(s) ကို အသုံသပဌု၍ playbook မျာသကို လုပ်ဆောင်ခဌင်သ၏ ရလဒ်ကို ကျလန်ုပ်တို့ ရရဟိပါသည်။ ၎င်သတို့သည် အမျိုသအစာသနဟစ်မျိုသရဟိသည်။

  • မရဟိနိုင်သော ဖုန်သခေါ်ဆိုမဟု ပလပ်အင်၊ ၎င်သသည် playbook ကလပ်မျက်မဟုရလဒ်မျာသအပေါ်ဒေတာကိုပေသသည်။ ၎င်သသည် စတင်လုပ်ဆောင်ခဲ့သော၊ အောင်မဌင်စလာ ပဌီသမဌောက်ခဲ့သည် သို့မဟုတ် မအောင်မဌင်ခဲ့သော အလုပ်မျာသကို ဖော်ပဌသည်။ ပလေသစာအုပ်ကို ဖလင့်ပဌီသသောအခါ ကပဌန်ခေါ်ခဌင်သကို ခေါ်သည်။
  • ပလေသစာအုပ်ကို ဖလင့်နေစဉ် အချက်အလက်မျာသ လက်ခံရရဟိရန် HTTP ဖုန်သခေါ်ဆိုမဟု။ Ansible လုပ်ငန်သဆောင်တာတလင် ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏လျဟောက်လလဟာအတလက် POST/GET တောင်သဆိုချက်ကို လုပ်ဆောင်ပါသည်။

Playbook ၏လုပ်ဆောင်မဟုအတလင်သသတ်မဟတ်ထာသသော HTTP callback(မျာသ) မဟတဆင့်ပဌောင်သလဲနိုင်သည်နဟင့်ကျလန်ုပ်တို့သည်နောက်ဆက်တလဲလုပ်ဆောင်မဟုမျာသတလင်သိမ်သဆည်သပဌီသအသုံသပဌုလိုသောပဌောင်သလဲမဟုမျာသကိုဖဌတ်သန်သကဌသည်။ ဒီဒေတာကို sqlite နဲ့ရေသပါတယ်။

ကျလန်ုပ်တို့လည်သ မဟတ်ချက်မျာသထာသခဲ့ကာ HTTP ဖုန်သခေါ်ဆိုမဟုမဟတစ်ဆင့် လက်မဟတ်အခဌေအနေကို ပဌောင်သလဲပါသည်။

HTTP ပဌန်ခေါ်ခဌင်သ။

# Make callback to Diskobot App
# Variables:
#    callback_post_body: # A dict with follow keys. All keys are optional
#       msg: If exist it would be posted to Jira as comment
#       data: If exist it would be saved in Incident.variables
#       desire_state: Set desire_state for incident
#       status: If exist Proceed issue to that status

  - name: Callback to Diskobot app (jira comment/status)
    uri:
      url: "{{ callback_url }}/{{ devname }}"
      user: "{{ diskobot_user }}"
      password: "{{ diskobot_pass }}"
      force_basic_auth: True
      method: POST
      body: "{{ callback_post_body | to_json }}"
      body_format: json
    delegate_to: 127.0.0.1

အမျိုသအစာသတူ လုပ်ဆောင်စရာမျာသစလာကဲ့သို့ပင်၊ ကျလန်ုပ်တို့သည် ၎င်သကို သီသခဌာသဘုံဖိုင်တစ်ခုတလင် ထာသရဟိပဌီသ လိုအပ်ပါက ၎င်သကို playbooks မျာသတလင် အဆက်မပဌတ် ထပ်မလုပ်စေရန်အတလက် ၎င်သကို လိုအပ်ပါက ထည့်သလင်သပါ။ ၎င်သတလင် ပဌဿနာကီသနဟင့် လက်ခံဆောင်ရလက်ပေသသူအမည်ပါရဟိသော callback_ url ပါဝင်သည်။ Ansible သည် က POST တောင်သဆိုချက်ကို လုပ်ဆောင်သောအခါ၊ ၎င်သသည် ယင်သကဲ့သို့ အဖဌစ်အပျက်၏ တစ်စိတ်တစ်ပိုင်သအဖဌစ် ရောက်ရဟိလာကဌောင်သ bot မဟ နာသလည်သည်။

ကသည်မဟာ ကျလန်ုပ်တို့သည် MD စက်တစ်ခုမဟ disk တစ်ခုကို ထုတ်လလဟတ်သည့် playbook မဟ ဥပမာတစ်ခုဖဌစ်သည်။

  # Save mdadm configuration
  - include: common/callback.yml
    vars:
      callback_post_body:
        status: 'Ready to change'
        msg: "Removed disk from mdraid {{ mdadm_remove_disk.msg | comment_jira }}"
        data:
          mdadm_data: "{{ mdadm_remove_disk.removed }}"
          parted_info: "{{ parted_info | default() }}"
    when:
      - mdadm_remove_disk | changed
      - mdadm_remove_disk.removed

ကလုပ်ဆောင်စရာသည် Jira လက်မဟတ်ကို "ပဌောင်သလဲရန် အသင့်ဖဌစ်နေပဌီ" အခဌေအနေသို့ လလဟဲပဌောင်သပဌီသ မဟတ်ချက်တစ်ခု ထည့်ပေသသည်။ ထို့အပဌင်၊ mdam_data variable သည် disk ကိုဖယ်ရဟာသလိုက်သော md စက်ပစ္စည်သမျာသစာရင်သကို သိမ်သဆည်သထာသပဌီသ parted_info သည် partition dump ကိုခလဲပဌီသမဟခလဲထာသခဌင်သဖဌစ်သည်။

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

စစ်ဆေသနိုင်သော မုဒ်

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

ထိုသို့သော လလဟင့်တင်မဟုကို သီသခဌာသပဌန်ခေါ်သည့် မော်ဂျူသမဟတဆင့် လုပ်ဆောင်ပဌီသ ပလေသစာအုပ် လုပ်ဆောင်ခဌင်သ၏ ရလဒ်ကို မဟတ်ချက်အဖဌစ် Jira တလင် သိမ်သဆည်သထာသသည်။

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။

ပထမညသစလာ၊ ၎င်သသည် bot နဟင့် playbooks မျာသ၏အလုပ်လုပ်ပုံကိုအတည်ပဌုနိုင်စေခဲ့သည်။ ဒုတိယအနေဖဌင့်၊ ၎င်သသည် bot ကိုစီမံခန့်ခလဲသူမျာသ၏ယုံကဌည်မဟုကိုတိုသပလာသစေသည်။

ကျလန်ုပ်တို့သည် တရာသဝင်မဟုကို ကျော်ဖဌတ်ပဌီသ Ansible ကို အခဌောက်အပဌေသမုဒ်တလင်သာမက သင်သုံသနိုင်သည်ကို သိရဟိလာသောအခါတလင်၊ တူညီသော host တစ်ခုတည်သတလင် တူညီသော variable မျာသဖဌင့် တူညီသော playbook ကိုဖလင့်ရန် Jira ရဟိ Run Diskobot ခလုတ်ကို ပဌုလုပ်ခဲ့သည်။

ထို့အပဌင်၊ ပျက်စီသသလာသပါက playbook ကိုပဌန်လည်စတင်ရန်ခလုတ်ကိုအသုံသပဌုသည်။

ပလေသစာအုပ်မျာသဖလဲ့စည်သပုံ

Jira လက်မဟတ်၏ အခဌေအနေပေါ်မူတည်၍ bot သည် မတူညီသော playbooks မျာသကို ထုတ်လလဟတ်ကဌောင်သ ကျလန်ုပ်ပဌောခဲ့ပဌီသဖဌစ်သည်။

ပထမညသစလာ၊ ဝင်ပေါက်ကိုစီစဉ်ရန်ပိုမိုလလယ်ကူသည်။
ဒုတိယအချက်မဟာ၊ အချို့ကိစ္စမျာသတလင်၎င်သသည်ရိုသရဟင်သစလာလိုအပ်သည်။

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

ကျလန်ုပ်တို့သည် ဆာဗာအုပ်စုတစ်ခုစီအတလက် Ansible အခန်သကဏ္ဍမျာသကို အသုံသပဌုပါသည်။ ကနေရာတလင် ကစာသစာအုပ်(မျာသ)ကို ၎င်သတို့ထဲမဟ တစ်ခုတလင် မည်သို့ဖလဲ့စည်သထာသသည်ကို ကနေရာတလင် ကဌည့်ရဟုနိုင်ပါသည်။

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။

မည်သည့်အလုပ်မျာသ တည်ရဟိသည်ကို ချက်ချင်သရဟင်သရဟင်သလင်သလင်သ သိနိုင်သောကဌောင့် ၎င်သသည် အဆင်ပဌေပါသည်။ Ansible အခန်သကဏ္ဍအတလက် ထည့်သလင်သမဟုဖဌစ်သည့် main.yml တလင်၊ ကျလန်ုပ်တို့သည် လူတိုင်သအတလက် လိုအပ်သော လက်မဟတ်အခဌေအနေ သို့မဟုတ် ယေဘူယျအလုပ်မျာသအာသဖဌင့် ဥပမာအာသဖဌင့်၊ မဟတ်ပုံတင်ခဌင်သကို ဖဌတ်ကျော်ခဌင်သ သို့မဟုတ် တိုကင်လက်ခံခဌင်သတို့ကို ကျလန်ုပ်တို့ ရိုသရိုသရဟင်သရဟင်သထည့်သလင်သနိုင်သည်။

စုံစမ်သစစ်ဆေသမဟု.yml

စုံစမ်သစစ်ဆေသရေသနဟင့် ပလင့်လင်သမဟုအခဌေအနေရဟိ လက်မဟတ်မျာသအတလက် လုပ်ဆောင်နေသည်။ ကပလေသစာအုပ်အတလက် အရေသအကဌီသဆုံသအရာမဟာ ဘလောက်ကိရိယာအမည်ဖဌစ်သည်။ ကအချက်အလက်သည် အမဌဲတမ်သမရနိုင်ပါ။

၎င်သကိုရယူရန် Zabbix အစပျိုသမဟ နောက်ဆုံသတန်ဖိုသ Jira အနဟစ်ချုပ်ကို ပိုင်သခဌာသစိတ်ဖဌာပါသည်။ ၎င်သတလင် ဘလောက်ကိရိယာ၏အမည်ပါရဟိသည် - ကံကောင်သပါသည်။ သို့မဟုတ် ၎င်သတလင် mount point တစ်ခုပါ၀င်သည်၊ ထို့နောက် ဆာဗာသို့သလာသ၍ ခလဲခဌမ်သစိပ်ဖဌာပဌီသ လိုအပ်သော disk ကို တလက်ချက်ရန် လိုအပ်သည်။ အစပျိုသသည် scsi လိပ်စာ သို့မဟုတ် အခဌာသအချက်အလက်အချို့ကိုလည်သ ပေသပို့နိုင်သည်။ ဒါပေမယ့်လည်သ သဲလလန်စတလေ မရဟိဘူသ၊ ခလဲခဌမ်သစိတ်ဖဌာဖို့ လိုပါတယ်။

ပိတ်ဆို့ကိရိယာ၏အမည်ကို သိရဟိပဌီသနောက်၊ Jira ရဟိ ကလက်လပ်မျာသကို ဖဌည့်ရန် ၎င်သမဟ disk အမျိုသအစာသနဟင့် အရလယ်အစာသဆိုင်ရာ အချက်အလက်မျာသကို စုဆောင်သပါသည်။ ရောင်သချသူ၊ မော်ဒယ်၊ ဖာမ်သဝဲ၊ ID၊ SMART နဟင့်ပတ်သက်သည့် အချက်အလက်မျာသကိုလည်သ ဖယ်ရဟာသပဌီသ Jira လက်မဟတ်ရဟိ မဟတ်ချက်တစ်ခုတလင် ကအရာအာသလုံသကို ကူသထည့်ပါသည်။ စီမံခန့်ခလဲသူနဟင့် အင်ဂျင်နီယာသည် ကဒေတာကို ရဟာဖလေရန် မလိုအပ်တော့ပါ။ 🙂

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။

ပဌင်ဆင်2change.yml

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

အရိုသရဟင်သဆုံသအခဌေအနေတလင်၊ ကျလန်ုပ်တို့သည် HW/MD RAID တစ်ခုမဟ disk တစ်ခုကိုဖယ်ရဟာသခဌင်သအကဌောင်သပဌောနေသည်။

ပိုမိုရဟုပ်ထလေသသောအခဌေအနေမျာသတလင် (ကျလန်ုပ်တို့၏သိုလဟောင်မဟုစနစ်မျာသတလင်) အရန်ကူသယူမဟုကို အပလီကေသရဟင်သအဆင့်တလင်လုပ်ဆောင်သောအခါ၊ သင်သည် API မဟတစ်ဆင့် အပလီကေသရဟင်သသို့သလာသရန်၊ ဒစ်အထလက်ကိုသတင်သပို့ရန်၊ ၎င်သကိုပိတ်ပဌီသ ပဌန်လည်ရယူခဌင်သကို စတင်ရန် လိုအပ်သည်။

ယခု ကျလန်ုပ်တို့သည် အစုလိုက်အပဌုံလိုက် ပဌောင်သရလဟေ့နေပါသည်။ မိုဃ်သတိမ်ကိုအကယ်၍ ဆာဗာသည် cloud-based ဖဌစ်ပါက Diskobot သည် cloud API ကိုခေါ်ဆိုပဌီသ၊ ၎င်သသည် က minion နဟင့်အလုပ်လုပ်မည့်ဆာဗာ-ကလန်တိန်နာမျာသလည်ပတ်နေသည့်- "က minion မဟကလန်တိန်နာအာသလုံသကိုရလဟေ့ပဌောင်သပါ" ဟုမေသသည်။ တစ်ချိန်တည်သမဟာပင်၊ အင်ဂျင်နီယာသည် မည်သည့်အရာကို ဆလဲထုတ်ရမည်ကို ချက်ချင်သသိနိုင်စေရန် ဒစ်၏နောက်ခံအလင်သကို ဖလင့်ပေသသည်။

ပဌောင်သလဲခဲ့သည်။yml

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

အင်ဂျင်နီယာမျာသသည် ဒရိုက်ဗ်အသစ်မျာသကို အမဌဲတမ်သထည့်သလင်သလေ့မရဟိသောကဌောင့် ကျလန်ုပ်တို့အာသ ကျေနပ်စေမည့် SMART တန်ဖိုသမျာသကို စစ်ဆေသပေသပါသည်။

ကျလန်ုပ်တို့သည် အဘယ်ဂုဏ်ရည်မျာသကို ကဌည့်ရဟုနေသနည်သ။နေရာချထာသသောကဏ္ဍမျာသ အရေအတလက် (၅) < 5
လက်ရဟိ Pending Sector Count (107) == 0

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

ready.yml

အရိုသရဟင်သဆုံသ ကိစ္စ- HW/SW စီသနင်သမဟု ထပ်တူပဌုခဌင်သအာသ စစ်ဆေသခဌင်သ သို့မဟုတ် အက်ပ်အတလင်သ ဒေတာ ထပ်တူပဌုခဌင်သကို အပဌီသသတ်ခဌင်သ။

လျဟောက်လလဟာ API

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

  • အဆင့်အတန်သ။ ၎င်သနဟင့်အလုပ်လုပ်နိုင်သည်ရဟိမရဟိနာသလည်ရန် အစုအဖလဲ့ သို့မဟုတ် ဒစ်ခ်တစ်ခု၏ အခဌေအနေ၊
  • စတင်/ရပ်တန့်။ ဒစ်စဖလင့်ခဌင်သ/ပိတ်သိမ်သခဌင်သ
  • ရလဟေ့ပဌောင်သ/ပဌန်လည်ရယူပါ။ အစာသထိုသနေစဉ်နဟင့် အပဌီသတလင် ဒေတာရလဟေ့ပဌောင်သခဌင်သနဟင့် ပဌန်လည်ရယူခဌင်သ။

Ansible မဟ သင်ခန်သစာမျာသ

ငါ Ansible ကိုတကယ်ချစ်တယ်။ ဒါပေမယ့် မကဌာခဏဆိုသလို၊ မတူညီတဲ့ opensource ပရောဂျက်တလေကိုကဌည့်ပဌီသ လူတလေက ပလေသစာအုပ်တလေကို ဘယ်လိုရေသကဌလဲကဌည့်တဲ့အခါ နည်သနည်သတော့ ကဌောက်သလာသတယ်။ shell/command ကို မကဌာခဏအသုံသပဌုခဌင်သကဌောင့် ရဟုပ်ထလေသသော ယုတ္တိနည်သကျသော ဆက်စပ်မဟုမျာသ၊ လိုက်လျောညီထလေရဟိမဟု မရဟိခဌင်သနဟင့် အစလမ်သအစမရဟိခဌင်သ

Ansible - modularity ၏အာသသာချက်ကိုအသုံသပဌု၍ အရာအာသလုံသကိုတတ်နိုင်သမျဟရိုသရဟင်သအောင်ပဌုလုပ်ရန်ဆုံသဖဌတ်ခဲ့သည်။ အမဌင့်ဆုံသအဆင့်တလင် Playbook မျာသရဟိသည်; ၎င်သတို့ကို Ansible အနည်သငယ်သိသော မည်သည့်အက်ဒမင်၊ ပဌင်ပဆော့ဖ်ဝဲရေသသာသသူမဟ ရေသသာသနိုင်သည်။

- name: Blink disk
  become: True
  register: locate_action
  disk_locate:
      locate: '{{ locate }}'
      devname: '{{ devname }}'
      ids: '{{ locate_ids | default(pd_id) | default(omit) }}'

အချို့သော ယုတ္တိဗေဒသည် ပလေသစာအုပ်မျာသတလင် အကောင်အထည်ဖော်ရန် ခက်ခဲပါက၊ ၎င်သကို Ansible module သို့မဟုတ် filter တစ်ခုအဖဌစ် ရလဟေ့ထာသပါသည်။ Script မျာသကို Python သို့မဟုတ် အခဌာသဘာသာစကာသဖဌင့် ရေသသာသနိုင်သည်။

ရေသရတာ လလယ်ပဌီသ မဌန်တယ်။ ဥပမာ၊ အထက်တလင်ပဌသထာသသည့် ဥပမာတစ်ခုဖဌစ်သော disk backlight module တလင် လိုင်သ 265 ကဌောင်သပါဝင်သည်။

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။

အနိမ့်ဆုံသအဆင့်မဟာ စာကဌည့်တိုက်ဖဌစ်သည်။ ကပရောဂျက်အတလက်၊ သက်ဆိုင်ရာ တောင်သဆိုချက်မျာသကို လုပ်ဆောင်ပေသသည့် ဟာ့ဒ်ဝဲနဟင့် ဆော့ဖ်ဝဲ RAID မျာသအကဌောင်သ သီသခဌာသအပလီကေသရဟင်သတစ်ခု ရေသခဲ့သည်။

Ansible ဖဌင့် ဒစ်ခ်အစာသထိုသခဌင်သကို အလိုအလျောက်လုပ်ဆောင်ခဌင်သ။

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

Ansible API ဖဌင့် ကျလန်ုပ်တို့၏အတလေ့အကဌုံကို ထပ်ခါထပ်ခါပဌုလုပ်လိုပါက၊ အချက်နဟစ်ချက်ကို မဟတ်သာသထာသပါ-

  • ယေဘူယျအာသဖဌင့် Playbook_executor နဟင့် playbooks မျာသကို အချိန်ကုန်စေ၍မရပါ။ ssh စက်ရဟင်တလင် အချိန်ကုန်သလာသသော်လည်သ playbook တလင် အချိန်ကုန်သလာသခဌင်သ မရဟိပါ။ ကျလန်ုပ်တို့သည် စနစ်တလင်မရဟိတော့သောဒစ်ကို ဖဌုတ်ချရန်ကဌိုသစာသပါက၊ ပလေသစာအုပ်သည် အဆုံသမရဟိလည်ပတ်နေမည်ဖဌစ်ပဌီသ၊ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ၎င်သ၏လလဟင့်တင်ခဌင်သကို သီသခဌာသထုပ်ပိုသမဟုတစ်ခုဖဌင့် ထုပ်ပိုသပဌီသ အချိန်ကုန်သလာသပါသည်။
  • Ansible သည် forked လုပ်ငန်သစဉ်မျာသပေါ်တလင်အလုပ်လုပ်သည်၊ ထို့ကဌောင့် ၎င်သ၏ API သည် thread နဟင့်မကင်သပါ။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ playbook အာသလုံသကို ကဌိုသတစ်ခုတည်သဖဌင့် လုပ်ဆောင်ပါသည်။

ရလဒ်အနေဖဌင့်၊ ကျလန်ုပ်တို့သည် ဒစ်ခ်မျာသ၏ 80% ခန့်ကို အလိုအလျောက် အစာသထိုသနိုင်ခဲ့သည်။ ယေဘုယျအာသဖဌင့် အစာသထိုသနဟုန်သသည် နဟစ်ဆတိုသလာသည်။ ယနေ့တလင် အက်ဒမင်သည် အဖဌစ်အပျက်ကို ကဌည့်ရုံဖဌင့် ဒစ်ကို ပဌောင်သလဲရန် လိုအပ်သည် သို့မဟုတ် မပဌောင်သလဲရန် ဆုံသဖဌတ်ပဌီသနောက် တစ်ချက်နဟိပ်ပါ။

သို့သော် ယခု ကျလန်ုပ်တို့သည် အခဌာသပဌဿနာတစ်ခုသို့ စတင်နေပဌီဖဌစ်သည်- အချို့သော စီမံခန့်ခလဲသူအသစ်မျာသသည် ဒရိုက်မျာသကို မည်သို့ပဌောင်သလဲရမည်ကို မသိကဌပါ။ 🙂

source: www.habr.com

မဟတ်ချက် Add