Isolate Development Mamiriro ane LXD Containers

Ini ndichataura nezve nzira yekuronga nharaunda dzega dzekusimudzira nharaunda pane yangu yebasa. Iyo nzira yakagadzirwa pasi pesimba rezvinotevera zvinhu:

  • Mitauro yakasiyana inoda maIDE akasiyana uye maturusi;
  • Mapurojekiti akasiyana anogona kushandisa shanduro dzakasiyana dzematurusi ezvishandiso nemaraibhurari.

Nzira yacho ndeyekugadzira mukati memidziyo yeLXD inomhanya munharaunda palaptop kana nzvimbo yekushandira ine magiraidhi anobuda anoendeswa kune anotambira.

Muenzaniso configuration Ubuntu 20.04.

Kufunga nezvesarudzo uye zvikonzero zvinopihwa pakupera kwechinyorwa.

1. Kuiswa kweLXD

Π’ Ubuntu 20.04 LXD haichawanikwi yekumisikidzwa sedeb package, chete ne snap:

$ snap install lxd

Mushure mekuisa iwe unofanirwa kuita yekutanga:

$ lxd init

Iyo chete parameter yandinoshandura ndeye storage bakend - Ndinoshandisa dir seyakareruka. Sezvo ini ndisingashandise mafoto nemakopi, yambiro mukati zvinyorwa Havandityire:

Saizvozvo, iyo dhairekitori backend inofanirwa kutariswa seyekupedzisira sarudzo sarudzo.
Iyo inotsigira ese makuru eLXD maficha, asi inononoka uye isingashande sezvo isingaite
makopi ekare kana snapshots uye saka inoda kutevedzera yese yekuchengetedza yemuenzaniso nguva dzese.

2. LXD profile setup

Profiles muLXD - Aya maseti emaparamendi akaiswa kune akati wandei midziyo. Kune zvandinoda, iyo chete nhoroondo yakagadzirwa nekusarudzika yakandikwanira default neshanduko dzinotevera:

  • $ lxc profile device add default X0 disk source=/tmp/.X11-unix/X0 path=/tmp/.X11-unix/X0 - kuitira kuti zvikumbiro zviri mumidziyo zvigone kudyidzana neanogamuchira X11 server;
  • $ lxc profile set default environment.DISPLAY :0 - kuitira kuti shanduko yezvakatipoteredza DISPLAY yakaiswa zvakanaka mumidziyo;
  • $ lxc profile set default raw.idmap "both 1000 1000" - kune chokwadi identifier mapping.

3. Kugadzira nekugadzirisa mudziyo

Kugadzira mudziyo unobva pamufananidzo images:ubuntu/20.04:

$ lxc launch images:ubuntu/20.04 dev1

Ini ndinoda mifananidzo kubva kune repository https://images.linuxcontainers.org, sezvo vaine zvishoma pre-yakaiswa software. Nechikonzero ichi ndakawedzera chivakashure images: kuzita remufananidzo. Kugadzira mudziyo wakavakirwa pamufananidzo kubva kuUbuntu repository kunogona kuitwa sezvinotevera: $ lxc launch ubuntu/20.04 dev1.

Kusvika kune mudzi shell yemudziyo:

$ lxc exec dev1 -- bash

Ini ndichaisa Firefox uye VS Code (kubva kune repository maererano nemirayiridzo):

$ 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

Ndichaisa mudziyo kuti ujekeswe.

poweroff

Bhonasi! Zviri nyore kukanda GPU mumudziyo kuitira kuti maapplication ari mairi ashandise kadhi remifananidzo. Kuti aite izvi unofanira:

  • wedzera mudziyo $ lxc config device add dev1 mygpu gpu;
  • isa vatyairi vemakadhi evhidhiyo mumudziyo - iwo akafanana akaiswa pane anotambira.

4. Kushandisa mudziyo

Kana mudziyo uchiri kushanda, unofanirwa kuutanga:

lxc start dev1

Kumhanya VS Code senge isiri-midzi mushandisi ubuntu:

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

Vhura Firefox:

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

Mahwindo ekushandisa anozoratidzwa pane anotambira, asi anozoitwa mukati memudziyo - zvakafanana nekutumira mifananidzo uchishandisa ssh.

Ini handivhare midziyo inomhanya, nekuti handisi kuona yakawanda pairi - ndinomira pakuvhara mahwindo ekumhanya maapplication.

5. Mhedziso

Ini ndinosarudza kusashandisa iyo OS yekusimudzira, sezvo izvi zvingada kuisa maturusi ekusimudzira, debug shanduro dzemaraibhurari, kugadzirisa zvikamu zvehurongwa neimwe nzira, uye mamwe manipulations. Zvese izvi zvinogona kutungamira kune isingatarisirwe maitiro mune imwe isiri-yekuvandudza software, kana kunyange iyo OS yese. Semuenzaniso, shanduko mukugadziriswa kweOpenSSL inogona kuita kuti OS imire kutanga nemazvo.

Ndakaedza maturusi akasiyana siyana kuparadzanisa nharaunda dzebudiriro:

  • virtual machines (KVM, VirtualBox, etc.) ndiyo inonyanya kuoneka sarudzo, asi inodya zvakanyanya zviwanikwa, kunyangwe pasina dzimwe sarudzo dzekusimudzira pasi peWindows (kana mugadziri ari Linux);
  • maturusi ekuvandudza makore anomhanya pamushini wemuno (Cloud9 mumudziyo kana muchina chaiwo, Eclipse Che, nezvimwewo) - haana kugadzirwa nenzira iyi yekushanda, inoda kumwe kugadziridzwa uye kugadzirisa, zviri nani kuvashandisa kune yavo yavanoda. chinangwa - mugore;
  • Docker midziyo inoitirwa zvakare chimwe chinhu; mumaonero angu, haina kunyatso kuenderana nekukasira prototyping uchishandisa software isati yaiswa mumidziyo yakasiyana.

Nzira yakasarudzwa inondifadza nekureruka kwayo uye yakaderera chipingamupinyi chekupinda. Mumidziyo pachayo, unogona kushandisa nzira dzakanangana neprojekiti: gadza uye gadzirisa zvese nemaoko, kana kushandisa otomatiki (Puppet, Ansible, nezvimwewo), kunyange kuendesa. Docker-based infrastructure. Ini zvakare ndinoshandisa LXD midziyo yekumhanyisa chaiyo software inoda kuisa nhamba yakakura yekutsamira kana imwe OS vhezheni - mune iyi kesi unogona kugadzira mudziyo une yaunoda OS vhezheni, semuenzaniso. $ lxc launch images:ubuntu/16.04 dev16.

Izvo zvakakosha kuyeuka kuti maererano nekuzviparadzanisa nevamwe, mudziyo une nzvimbo yakakura yekurwiswa kana ichienzaniswa neiyo virtualization - mugadziri uye mudziyo unogovana musimboti mumwe chete, kusagadzikana uko kunogona kubvumira malware kutiza kubva mumudziyo. Paunenge uchiedza nesoftware inokahadzika, zviri nani kushandisa nzira dzakakodzera dzekuzviparadzanisa nevamwe.

Useful links

Source: www.habr.com

Voeg