LXD බහාලුම් සමඟ සංවර්ධන පරිසරයන් හුදකලා කිරීම

මගේ වැඩපොළේ දේශීය හුදකලා සංවර්ධන පරිසරයන් සංවිධානය කිරීමේ ප්‍රවේශයක් ගැන මම කතා කරමි. පහත සඳහන් සාධකවල බලපෑම යටතේ ප්රවේශය වර්ධනය විය:

  • විවිධ භාෂාවලට විවිධ IDE සහ මෙවලම් දාම අවශ්‍ය වේ;
  • විවිධ ව්‍යාපෘති මෙවලම් දාම සහ පුස්තකාලවල විවිධ අනුවාද භාවිතා කළ හැක.

ප්‍රවේශය වන්නේ ග්‍රැෆික් ප්‍රතිදානය සත්කාරක වෙත හරවා යවන ලද ග්‍රැෆික් ප්‍රතිදානය සමඟ දේශීයව ලැප්ටොප් එකක හෝ වැඩපොළක ධාවනය වන LXD බහාලුම් ඇතුළත සංවර්ධනය කිරීමයි.

උදාහරණ වින්යාසය උබුන්ටු 20.04.

විකල්ප සහ හේතු පිළිබඳ පරාවර්තන ලිපියේ අවසානයේ දක්වා ඇත.

1. LXD ස්ථාපනය

В උබුන්ටු 20.04 LXD තවදුරටත් deb පැකේජයක් ලෙස ස්ථාපනය සඳහා ලබා ගත නොහැක, snap හරහා පමණි:

$ snap install lxd

ස්ථාපනය කිරීමෙන් පසු, ඔබ ආරම්භ කිරීම සිදු කළ යුතුය:

$ lxd init

මම වෙනස් කරන එකම පරාමිතිය storage bakend - මම පාවිච්චි කරනවා dir සරලම එක ලෙස. මම පින්තූර සහ පිටපත් භාවිතා නොකරන බැවින්, අවවාද ඇත ලියකියවිලි ඔවුන් මාව බය කරන්නේ නැහැ:

ඒ හා සමානව, බහලුම පසුපෙළ අවසාන විකල්පය ලෙස සැලකිය යුතුය.
එය සියලුම ප්‍රධාන LXD විශේෂාංග සඳහා සහය දක්වයි, නමුත් එය ක්‍රියාත්මක කළ නොහැකි බැවින් ඉතා මන්දගාමී සහ අකාර්යක්ෂම වේ
ක්ෂණික පිටපත් හෝ ස්නැප්ෂොට් සහ ඒ නිසා සෑම අවස්ථාවකම සම්පූර්ණ ආචයනය පිටපත් කිරීමට අවශ්‍ය වේ.

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

මම කැමති ගබඩාවෙන් ලැබෙන පින්තූර වලට https://images.linuxcontainers.org, ඔවුන් සතුව පෙර ස්ථාපනය කර ඇති මෘදුකාංග අඩු බැවින්. මේ හේතුව නිසා මම උපසර්ගය එකතු කළා images: රූපයේ නමට. උබුන්ටු ගබඩාවෙන් රූපයක් මත පදනම්ව බහාලුමක් නිර්මාණය කිරීම පහත පරිදි සිදු කළ හැකිය: $ lxc launch ubuntu/20.04 dev1.

කන්ටේනරයේ මූල කවචයට ප්‍රවේශය:

$ lxc exec dev1 -- bash

මම ෆයර්ෆොක්ස් සහ වීඑස් කේතය (නිධිය වෙතින් ස්ථාපනය කරමි උපදෙස් අනුව):

$ 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 එකක් බහාලුමකට විසි කිරීම ඉතා පහසු වන අතර එමඟින් එහි ක්‍රියාත්මක වන යෙදුම් වලට ග්‍රැෆික් කාඩ්පත භාවිතා කළ හැකිය. මෙය සිදු කිරීම සඳහා ඔබට අවශ්ය:

  • උපාංගය එකතු කරන්න $ lxc config device add dev1 mygpu gpu;
  • කන්ටේනරයේ වීඩියෝ කාඩ්පත් ධාවක ස්ථාපනය කරන්න - ධාරකයේ ස්ථාපනය කර ඇති ඒවාම.

4. කන්ටේනරයක් භාවිතා කිරීම

කන්ටේනරය තවමත් ක්රියාත්මක නොවේ නම්, ඔබ එය ආරම්භ කළ යුතුය:

lxc start dev1

Root නොවන පරිශීලකයෙකු ලෙස VS කේතය ධාවනය කිරීම උබුන්ටු:

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

Firefox දියත් කරන්න:

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

යෙදුම් කවුළු ධාරකයෙහි දර්ශනය වනු ඇත, නමුත් ඒවා බහාලුම තුළ ක්‍රියාත්මක වනු ඇත - ssh භාවිතයෙන් චිත්‍රක ඉදිරියට යැවීමට සමාන වේ.

මම ධාවනය වන බහාලුම් අතින් වසා දමන්නේ නැත, මන්ද එහි වැඩි කරුණක් මට නොපෙනේ - ධාවනය වන යෙදුම්වල කවුළු වැසීමට මම සීමා වෙමි.

5. නිගමනය

සංවර්ධන මෙවලම් ස්ථාපනය කිරීම, පුස්තකාලවල දෝශ නිරාකරණ අනුවාද, නිශ්චිත ආකාරයකින් පද්ධති සංරචක වින්‍යාස කිරීම සහ වෙනත් උපාමාරු අවශ්‍ය වන බැවින්, සංවර්ධනය සඳහා ධාරක OS භාවිතා නොකිරීමට මම කැමැත්තෙමි. මේ සියල්ල වෙනත් සංවර්ධන නොවන මෘදුකාංගවල හෝ සමස්ත OS හි අනපේක්ෂිත හැසිරීම් වලට තුඩු දිය හැකිය. උදාහරණයක් ලෙස, OpenSSL වින්‍යාසයේ වෙනස්කම් නිසා OS එක නිවැරදිව ආරම්භ වීම නැවැත්විය හැක.

සංවර්ධන පරිසරයන් හුදකලා කිරීමට මම විවිධ මෙවලම් උත්සාහ කර ඇත:

  • අතථ්‍ය යන්ත්‍ර (KVM, VirtualBox, ආදිය) වඩාත්ම පැහැදිලි විකල්පය වේ, නමුත් ඒවා සැලකිය යුතු ලෙස වැඩි සම්පත් පරිභෝජනය කරයි, නමුත් වින්ඩෝස් යටතේ සංවර්ධනය සඳහා වෙනත් විකල්ප නොමැත (ධාරකය Linux නම්);
  • දේශීය යන්ත්‍රයක ක්‍රියාත්මක වන ක්ලවුඩ් සංවර්ධන මෙවලම් (කන්ටේනරයක හෝ අතථ්‍ය යන්ත්‍රයක Cloud9, Eclipse Che, ආදිය) - ඒවා මෙම මෙහෙයුම් ආකාරය සඳහා සංවර්ධනය කර නැත, ඒවාට අමතර වින්‍යාස කිරීම සහ නඩත්තු කිරීම අවශ්‍ය වේ, ඒවා අපේක්ෂිත සඳහා භාවිතා කිරීම වඩාත් සුදුසුය. අරමුණ - වලාකුළෙහි;
  • ඩොකර් බහාලුම් නැවතත් වෙනත් දෙයක් සඳහා අදහස් කෙරේ; මගේ මතය අනුව, වෙනම බහාලුම්වල තවමත් ඇසුරුම් කර නොමැති මෘදුකාංග භාවිතයෙන් ඉක්මනින් මූලාකෘති කිරීම සඳහා ඒවා එතරම් පහසු නොවේ.

තෝරාගත් ප්‍රවේශය එහි සරල බව සහ ඇතුළුවීමට ඇති අඩු බාධක සමඟ මා සිත් ගත්තේය. බහාලුම් තුළම, ඔබට ව්‍යාපෘති-විශේෂිත ප්‍රවේශයන් භාවිතා කළ හැකිය: සියල්ල අතින් ස්ථාපනය කර වින්‍යාස කරන්න, නැතහොත් ස්වයංක්‍රීයකරණය භාවිතා කරන්න (Puppet, Ansible, ආදිය), යෙදවීමට පවා ඩොකර් මත පදනම් වූ යටිතල පහසුකම්. විශාල පරායත්ත සංඛ්‍යාවක් හෝ වෙනත් OS අනුවාදයක් ස්ථාපනය කිරීමට අවශ්‍ය විශේෂිත මෘදුකාංග ධාවනය කිරීමට මම LXD බහාලුම් භාවිතා කරමි - මෙම අවස්ථාවේදී ඔබට අවශ්‍ය OS අනුවාදය සහිත බහාලුමක් සෑදිය හැක, උදාහරණයක් ලෙස $ lxc launch images:ubuntu/16.04 dev16.

හුදකලා කිරීම සම්බන්ධයෙන් ගත් කල, බහාලුම්කරණයට අථත්‍යකරණයට සාපේක්ෂව විශාල ප්‍රහාරක මතුපිටක් ඇති බව මතක තබා ගැනීම වැදගත්ය - ධාරකය සහ බහාලුම තනි හරයක් බෙදා ගන්නා අතර, අනිෂ්ට මෘදුකාංග කන්ටේනරයෙන් ගැලවීමට ඉඩ සලසන අවදානමකි. සැක සහිත මෘදුකාංග සමඟ අත්හදා බැලීම් කරන විට, වඩාත් සුදුසු හුදකලා යාන්ත්රණ භාවිතා කිරීම වඩා හොඳය.

ප්රයෝජනවත් සබැඳි

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න