LXD ကွန်တိန်နာများဖြင့် ဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင်များကို သီးခြားခွဲထုတ်ခြင်း။

ကျွန်ုပ်၏ workstation တွင် ဒေသန္တရ အထီးကျန် ဖွံ့ဖြိုးတိုးတက်ရေး ပတ်၀န်းကျင်များကို စုစည်းရန် ချဉ်းကပ်နည်းကို ပြောပြပါမည်။ ချဉ်းကပ်မှုအား အောက်ပါအချက်များ၏ လွှမ်းမိုးမှုအောက်တွင် တီထွင်ခဲ့သည်။

  • မတူညီသောဘာသာစကားများသည် မတူညီသော IDE များနှင့် toolchains လိုအပ်သည်;
  • မတူညီသော ပရောဂျက်များသည် toolchains နှင့် စာကြည့်တိုက်များ၏ မတူညီသောဗားရှင်းများကို အသုံးပြုနိုင်သည်။

ချဉ်းကပ်မှုမှာ အိမ်ရှင်ထံ ပြန်ညွှန်းထားသော ဂရပ်ဖစ်အထွက်ပါရှိသော လက်ပ်တော့ သို့မဟုတ် အလုပ်ရုံတစ်ခုပေါ်တွင် စက်တွင်းသုံး LXD ကွန်တိန်နာများအတွင်း ဖွံ့ဖြိုးတိုးတက်စေရန်ဖြစ်သည်။

နမူနာဖွဲ့စည်းမှု Ubuntu 20.04.

ရွေးချယ်မှုများနှင့် အကြောင်းပြချက်များအပေါ် သုံးသပ်ချက်များကို ဆောင်းပါး၏အဆုံးတွင် ဖော်ပြထားသည်။

1. LXD တပ်ဆင်ခြင်း။

В Ubuntu 20.04 LXD သည် snap မှတဆင့်သာ deb package အဖြစ် ထည့်သွင်းရန် မရနိုင်တော့ပါ။

$ snap install lxd

တပ်ဆင်ပြီးနောက်တွင် သင်သည် ကနဦးလုပ်ဆောင်ရန် လိုအပ်သည်-

$ lxd init

ကျွန်တော်ပြောင်းလဲလိုက်တဲ့ တစ်ခုတည်းသော အတိုင်းအတာက storage bakend - ငါသုံးတယ်။ dir အရိုးရှင်းဆုံးအဖြစ်။ ပုံများနှင့် မိတ္တူများကို မသုံးသည့်အတွက် သတိပေးချက်များ ပါရှိပါသည်။ စာရွက်စာတမ်း သူတို့ကငါ့ကိုမကြောက်ပါဘူး

အလားတူ၊ လမ်းညွှန်နောက်ခံကို နောက်ဆုံးအားကိုးရာ ရွေးချယ်မှုအဖြစ် သတ်မှတ်ခံရမည်ဖြစ်သည်။
၎င်းသည် ပင်မ LXD အင်္ဂါရပ်အားလုံးကို ပံ့ပိုးပေးသော်လည်း ၎င်းသည် မလုပ်ဆောင်နိုင်သောကြောင့် အလွန်နှေးကွေးပြီး ထိရောက်မှု မရှိပေ။
လက်ငင်းမိတ္တူများ သို့မဟုတ် လျှပ်တစ်ပြက်ရိုက်ချက်များနှင့် ထို့ကြောင့် အချိန်တိုင်း instance ၏သိုလှောင်မှုတစ်ခုလုံးကို ကူးယူရန်လိုအပ်သည်။

2. LXD ပရိုဖိုင် စနစ်ထည့်သွင်းခြင်း။

LXD ရှိ ပရိုဖိုင်များ — ဤအရာများသည် ကွန်တိန်နာအများအပြားအတွက် အသုံးပြုသည့် ကန့်သတ်ဘောင်များဖြစ်သည်။ ကျွန်ုပ်၏လိုအပ်ချက်များအတွက်၊ ပုံသေဖန်တီးထားသော တစ်ခုတည်းသောပရိုဖိုင်သည် ကျွန်ုပ်အတွက် လုံလောက်ပါသည်။ default အောက်ပါပြောင်းလဲမှုများနှင့်

  • $ lxc profile device add default X0 disk source=/tmp/.X11-unix/X0 path=/tmp/.X11-unix/X0 - ကွန်တိန်နာများရှိ အပလီကေးရှင်းများသည် အိမ်ရှင် X11 ဆာဗာနှင့် အပြန်အလှန် အကျိုးသက်ရောက်နိုင်စေရန်၊
  • $ lxc profile set default environment.DISPLAY :0 - ဒါမှလည်း သဘာဝပတ်ဝန်းကျင် ပြောင်းလဲမှု DISPLAY ကွန်တိန်နာများတွင် မှန်ကန်စွာ တပ်ဆင်ထားသည်။
  • $ lxc profile set default raw.idmap "both 1000 1000" - မှန်ကန်သော အမှတ်အသားမြေပုံ.

3. ကွန်တိန်နာတစ်ခု ဖန်တီးခြင်းနှင့် သတ်မှတ်ခြင်း။

ပုံတစ်ခုအပေါ်အခြေခံ၍ ကွန်တိန်နာတစ်ခုဖန်တီးခြင်း။ images:ubuntu/20.04:

$ lxc launch images:ubuntu/20.04 dev1

ကျွန်တော် repository ထဲက ပုံတွေကို ပိုကြိုက်တယ်။ https://images.linuxcontainers.org၎င်းတို့တွင် ကြိုတင်ထည့်သွင်းထားသော ဆော့ဖ်ဝဲနည်းပါးသောကြောင့် ဖြစ်သည်။ ဤအကြောင်းကြောင့် ကျွန်ုပ်သည် ရှေ့ဆက်ကို ထည့်လိုက်ပါသည်။ images: image name သို့သွားခြင်း။ repository မှ image တစ်ခုကိုအခြေခံ၍ container တစ်ခုဖန်တီးခြင်း Ubuntu အောက်ပါအတိုင်း လုပ်ဆောင်နိုင်သည်- $ lxc launch ubuntu/20.04 dev1.

ကွန်တိန်နာ၏ အမြစ်ခွံသို့ ဝင်ရောက်ခွင့်-

$ lxc exec dev1 -- bash

Firefox နှင့် VS Code ( repository မှ ငါ install လုပ်ပါမည်။ ညွှန်ကြားချက်အရ):

$ apt update
$ apt install curl gpg firefox

$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
$ install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list

$ apt update
$ apt install code

ရှင်းရှင်းလင်းလင်းသိရအောင် ကွန်တိန်နာတစ်လုံးထည့်မယ်။

poweroff

အပိုဆု GPU ကို ကွန်တိန်နာထဲသို့ ပစ်ချရန် အလွန်လွယ်ကူသောကြောင့် ၎င်းတွင် အလုပ်လုပ်နေသော အပလီကေးရှင်းများက ဂရပ်ဖစ်ကတ်ကို အသုံးပြုနိုင်သည်။ ဒီလိုလုပ်ဖို့သင်လိုအပ်ပါတယ်:

  • device ကိုထည့်ပါ။ $ lxc config device add dev1 mygpu gpu;
  • ကွန်တိန်နာတွင် ဗီဒီယိုကတ်ဒရိုင်ဘာများကို ထည့်သွင်းပါ - host တွင် ထည့်သွင်းထားသည့် တူညီသည့်အရာများ။

4. ကွန်တိန်နာကိုအသုံးပြုခြင်း။

ကွန်တိန်နာ မလည်ပတ်သေးပါက၊ ၎င်းကို စတင်ရန် လိုအပ်သည်-

lxc start dev1

root မဟုတ်သောအသုံးပြုသူအဖြစ် VS Code ကိုလုပ်ဆောင်ခြင်း။ ubuntu:

lxc exec dev1 -- sudo --login --user ubuntu code

Firefox ကိုဖွင့်ပါ-

lxc exec dev1 -- sudo --login --user ubuntu firefox

အပလီကေးရှင်းဝင်းဒိုးများကို host တွင်ပြသမည်ဖြစ်ပြီး၊ သို့သော်၎င်းတို့ကို ssh သုံးပြီးဂရပ်ဖစ်ပေးပို့ခြင်းနှင့်ဆင်တူသည် - ၎င်းတို့ကိုကွန်တိန်နာအတွင်းတွင်လုပ်ဆောင်လိမ့်မည်။

ကျွန်ုပ်သည် ၎င်းတွင် အချက်များစွာ မတွေ့သောကြောင့် - အသုံးပြုနေသည့် အပလီကေးရှင်းများ၏ ပြတင်းပေါက်များကို ပိတ်ရန် ကျွန်ုပ်ကိုယ်တိုင် ကန့်သတ်ထားပါသည်။

၈။ နိဂုံး

ဖွံ့ဖြိုးတိုးတက်မှုအတွက် လက်ခံဆောင်ရွက်ပေးသည့် OS ကို အသုံးမပြုလိုပါ။ ၎င်းသည် ဖွံ့ဖြိုးတိုးတက်ရေးကိရိယာများ တပ်ဆင်ခြင်း၊ ဒက်ဂ်ဘရီဘရီဆာဗားရှင်းများ၊ စနစ်အစိတ်အပိုင်းများကို တိကျသောနည်းလမ်းဖြင့် ပြင်ဆင်ခြင်းနှင့် အခြားသော ခြယ်လှယ်မှုများ ပြုလုပ်ခြင်းတို့ လိုအပ်မည်ဖြစ်သဖြင့် ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာ လက်ခံဆောင်ရွက်ပေးသည့် OS ကို မသုံးလိုပါ။ ဤအရာအားလုံးသည် အခြားသော ဖွံ့ဖြိုးတိုးတက်မှုမဟုတ်သော ဆော့ဖ်ဝဲ သို့မဟုတ် OS တစ်ခုလုံးတွင် မမျှော်လင့်ထားသော အမူအကျင့်များဆီသို့ ဦးတည်သွားစေနိုင်သည်။ ဥပမာအားဖြင့်၊ OpenSSL ဖွဲ့စည်းမှုပုံစံတွင် အပြောင်းအလဲများသည် OS ကို မှန်ကန်စွာစတင်ခြင်းမှ ရပ်သွားစေသည်။

ဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင်များကို သီးခြားခွဲထုတ်ရန် မတူညီသော ကိရိယာများကို ကျွန်ုပ်ကြိုးစားခဲ့ပြီးပြီ-

  • virtual machine များ (KVM၊ VirtualBox စသည်) သည် အထင်ရှားဆုံး ရွေးချယ်မှုဖြစ်သော်လည်း၊ ၎င်းတို့သည် အရင်းအမြစ်များကို သိသိသာသာ ပိုမိုသုံးစွဲသော်လည်း၊ ဖွံ့ဖြိုးတိုးတက်မှုအောက်တွင် Windows (အိမ်ရှင်အနေနဲ့ဆိုရင် Linux) အခြားရွေးချယ်စရာ မရှိပါ။
  • ဒေသန္တရစက်တစ်ခုပေါ်တွင်လည်ပတ်နေသော cloud ဖွံ့ဖြိုးတိုးတက်ရေးကိရိယာများ (ကွန်တိန်နာတစ်ခုအတွင်း Cloud9 သို့မဟုတ် virtual machine၊ Eclipse Che စသည်ဖြင့်) - ၎င်းတို့သည် ဤလုပ်ဆောင်ချက်အတွက် မတီထွင်ရသေးပါ၊ ၎င်းတို့သည် ထပ်လောင်းဖွဲ့စည်းပုံနှင့် ပြုပြင်ထိန်းသိမ်းမှုများ လိုအပ်သည်၊ ၎င်းတို့ကို ရည်ရွယ်ထားသည့်အတွက် ၎င်းတို့ကို အသုံးပြုခြင်းသည် အကောင်းဆုံးဖြစ်သည်။ ရည်ရွယ်ချက် - မိုဃ်းတိမ်၌;
  • Docker ကွန်တိန်နာများကို အခြားအရာတစ်ခုအတွက် ထပ်မံရည်ရွယ်ထားပါသည်၊ ကျွန်ုပ်အမြင်အရ၊ သီးခြားကွန်တိန်နာများတွင် မထုပ်ပိုးရသေးသော ဆော့ဖ်ဝဲလ်ကို အသုံးပြု၍ လျင်မြန်စွာ ပုံတူရိုက်ခြင်းအတွက် ၎င်းတို့သည် အလွန်အဆင်ပြေမည်မဟုတ်ပေ။

ရွေးချယ်ထားသောချဉ်းကပ်မှုသည် ၎င်း၏ရိုးရှင်းမှုနှင့် ဝင်ရောက်ရန် အတားအဆီးနည်းပါးခြင်းတို့ဖြင့် ကျွန်ုပ်ကို အထင်ကြီးစေပါသည်။ ကွန်တိန်နာများအတွင်းတွင်၊ သင်သည် ပရောဂျက်ဆိုင်ရာ သီးသန့်ချဉ်းကပ်မှုများကို သင်သုံးနိုင်သည်- အရာအားလုံးကို ကိုယ်တိုင်ထည့်သွင်းပြီး စီစဉ်သတ်မှတ်ခြင်း သို့မဟုတ် အလိုအလျောက်စနစ် (ရုပ်သေး၊ Ansible စသည်ဖြင့်) ကို အသုံးပြု၍ပင် အသုံးချနိုင်သည် Docker အခြေပြု အခြေခံအဆောက်အဦ. မှီခိုမှုအများအပြား သို့မဟုတ် မတူညီသော OS ဗားရှင်းကို ထည့်သွင်းရန်လိုအပ်သည့် သီးခြားဆော့ဖ်ဝဲကို လုပ်ဆောင်ရန် LXD ကွန်တိန်နာများကိုလည်း အသုံးပြုပါသည် - ဤအခြေအနေတွင် သင်သည် လိုချင်သော OS ဗားရှင်းဖြင့် ကွန်တိန်နာတစ်ခုကို ဖန်တီးနိုင်သည်၊ ဥပမာ၊ $ lxc launch images:ubuntu/16.04 dev16.

အထီးကျန်ခြင်း၏စည်းကမ်းချက်များ၌၊ ကွန်တိန်နာပြုလုပ်ခြင်းတွင် virtualization နှင့်နှိုင်းယှဉ်ပါက ပိုမိုကြီးမားသောတိုက်ခိုက်မှုမျက်နှာပြင်ရှိကြောင်း သတိရရန်အရေးကြီးပါသည် - host နှင့် container သည် single core တစ်ခုဖြစ်ပြီး malware ကို container မှလွတ်မြောက်ရန်ခွင့်ပြုနိုင်သည့်အားနည်းချက်တစ်ခုဖြစ်သည်။ သံသယရှိသောဆော့ဖ်ဝဲလ်ကို စမ်းသပ်သောအခါ၊ ပိုမိုသင့်လျော်သော သီးခြားခွဲထုတ်ခြင်း ယန္တရားများကို အသုံးပြုခြင်းသည် ပိုကောင်းပါသည်။

အသုံးဝင်သောလင့်များ

source: www.habr.com

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster