Pagbulag sa mga palibot sa pag-uswag nga adunay mga sulud nga LXD

Maghisgot ako bahin sa usa ka pamaagi sa pag-organisar sa lokal nga nahilit nga mga palibot sa pag-uswag sa akong workstation. Ang pamaagi gihimo ubos sa impluwensya sa mosunod nga mga hinungdan:

  • Ang lainlaing mga pinulongan nanginahanglan lainlaing mga IDE ug mga toolchain;
  • Ang lainlaing mga proyekto mahimong mogamit sa lainlaing mga bersyon sa mga toolchain ug librarya.

Ang pamaagi mao ang pagpalambo sa sulod sa LXD nga mga sudlanan nga nagdagan sa lokal sa usa ka laptop o workstation nga adunay graphics output nga gi-redirect ngadto sa host.

Pananglitan nga configuration Ubuntu 20.04.

Ang mga pamalandong sa mga kapilian ug mga rason gihatag sa katapusan sa artikulo.

1. Pag-instalar sa LXD

Π’ Ubuntu 20.04 Ang LXD dili na magamit alang sa pag-instalar isip deb package, pinaagi lamang sa snap:

$ snap install lxd

Human sa pag-instalar kinahanglan nimo nga ipahigayon ang initialization:

$ lxd init

Ang bugtong parameter nga akong usbon mao ang storage bakend - Gigamit nako dir isip pinakasimple. Tungod kay wala ako mogamit mga litrato ug mga kopya, ang mga pasidaan sa dokumentasyon Wala nila ako gikahadlokan:

Sa susama, ang backend sa direktoryo pagaisip nga usa ka kapilian nga kapilian.
Gisuportahan niini ang tanan nga nag-unang bahin sa LXD, apan hinay kaayo ug dili epektibo tungod kay dili kini mahimo
diha-diha nga mga kopya o mga snapshot ug busa kinahanglan nga kopyahon ang kinatibuk-an sa pagtipig sa instance matag higayon.

2. LXD profile setup

Mga profile sa LXD - kini mga set sa mga parameter nga gigamit sa daghang mga sudlanan. Alang sa akong mga panginahanglan, ang bugtong profile nga gihimo pinaagi sa default igo na alang kanako default uban sa mosunod nga mga pagbag-o:

  • $ lxc profile device add default X0 disk source=/tmp/.X11-unix/X0 path=/tmp/.X11-unix/X0 - aron ang mga aplikasyon sa mga sudlanan mahimong makig-uban sa host X11 server;
  • $ lxc profile set default environment.DISPLAY :0 - aron ang environmental variable DISPLAY na-instalar sa husto sa mga sudlanan;
  • $ lxc profile set default raw.idmap "both 1000 1000" - para sa tama identifier mapping.

3. Paghimo ug pagbutang og sudlanan

Paghimo og sudlanan base sa usa ka hulagway images:ubuntu/20.04:

$ lxc launch images:ubuntu/20.04 dev1

Mas gusto nako ang mga imahe gikan sa repository https://images.linuxcontainers.org, tungod kay sila adunay gamay nga pre-installed software. Tungod niini akong gidugang ang prefix images: sa ngalan sa imahe. Ang paghimo sa usa ka sudlanan nga gibase sa usa ka imahe gikan sa repositoryo sa Ubuntu mahimo sama sa mosunod: $ lxc launch ubuntu/20.04 dev1.

Pag-access sa gamut nga kabhang sa sudlanan:

$ lxc exec dev1 -- bash

Akong i-install ang Firefox ug VS Code (gikan sa repository sumala sa mga instruksyon):

$ 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

Iapil nako ang usa ka sudlanan alang sa katin-awan.

poweroff

Bonus! Sayon ra ang paglabay sa usa ka GPU sa usa ka sudlanan aron ang mga aplikasyon nga nagdagan niini magamit ang graphics card. Aron mahimo kini kinahanglan nimo:

  • idugang ang device $ lxc config device add dev1 mygpu gpu;
  • i-install ang mga driver sa video card sa sulud - parehas nga na-install sa host.

4. Gamit ug sudlanan

Kung ang sudlanan wala pa nagdagan, kinahanglan nimo nga sugdan kini:

lxc start dev1

Pagpadagan sa VS Code isip non-root user Ubuntu:

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

Ilunsad ang Firefox:

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

Ang mga bintana sa aplikasyon ipakita sa host, apan kini ipatuman sa sulod sa sudlanan - parehas sa pagpasa sa mga graphic gamit ang ssh.

Dili nako mano-mano nga gisirhan ang nagdagan nga mga sudlanan, tungod kay wala akoy nakita nga daghang punto niini - gilimitahan nako ang akong kaugalingon sa pagsira sa mga bintana sa nagdagan nga mga aplikasyon.

5. Panapos

Gipalabi nako nga dili mogamit sa usa ka host OS alang sa pag-uswag, tungod kay magkinahanglan kini pag-instalar sa mga himan sa pag-uswag, mga bersyon sa pag-debug sa mga librarya, pag-configure sa mga sangkap sa sistema sa usa ka piho nga paagi, ug uban pang mga manipulasyon. Kining tanan mahimong mosangpot sa wala damha nga kinaiya sa ubang non-development software, o bisan sa tibuok OS. Pananglitan, ang mga pagbag-o sa pag-configure sa OpenSSL mahimong hinungdan sa paghunong sa OS sa husto nga pagsugod.

Gisulayan nako ang lainlaing mga himan aron ihimulag ang mga palibot sa pag-uswag:

  • Ang mga virtual machine (KVM, VirtualBox, ug uban pa) mao ang labing klaro nga kapilian, apan nagkonsumo sila labi ka daghang mga kapanguhaan, bisan kung wala’y ubang mga kapilian alang sa pag-uswag sa ilawom sa Windows (kung ang host mao ang Linux);
  • cloud development tools nga nagdagan sa usa ka lokal nga makina (Cloud9 sa usa ka sudlanan o virtual machine, Eclipse Che, ug uban pa) - wala sila gipalambo alang niini nga paagi sa operasyon, nagkinahanglan sila og dugang nga configuration ug maintenance, labing maayo nga gamiton kini alang sa ilang gituyo katuyoan - sa panganod;
  • Ang mga sudlanan sa Docker gituyo pag-usab alang sa laing butang; sa akong opinyon, dili kaayo sila kombenyente alang sa dali nga prototyping gamit ang software nga wala pa giputos sa lain nga mga sudlanan.

Ang gipili nga pamaagi nakadayeg kanako sa kayano ug ubos nga babag sa pagsulod. Sa mga sudlanan mismo, mahimo nimong gamiton ang mga pamaagi nga piho sa proyekto: i-install ug i-configure ang tanan nga mano-mano, o gamita ang automation (Puppet, Ansible, ug uban pa), bisan ang pag-deploy Imprastraktura nga nakabase sa Docker. Gigamit usab nako ang mga sudlanan sa LXD aron magpadagan sa piho nga software nga kinahanglan nga mag-install sa daghang mga dependency o lahi nga bersyon sa OS - sa kini nga kaso mahimo ka maghimo usa ka sulud nga adunay gusto nga bersyon sa OS, pananglitan $ lxc launch images:ubuntu/16.04 dev16.

Importante nga hinumdoman nga sa mga termino sa pag-inusara, ang containerization adunay mas dako nga pag-atake sa ibabaw kumpara sa virtualization - ang host ug container nag-ambit sa usa ka core, usa ka kahuyang diin ang malware makalingkawas gikan sa sudlanan. Kung mag-eksperimento sa kaduhaduhaan nga software, mas maayo nga gamiton ang mas tukma nga mga mekanismo sa pag-inusara.

Mapuslanon nga mga link

Source: www.habr.com

Idugang sa usa ka comment