ื‘ื™ื“ื•ื“ ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืขื ืžื™ื›ืœื™ 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

ืื ื™ ืืชืงื™ืŸ ืืช Firefox ื•ืงื•ื“ VS (ืžื”ืžืื’ืจ ืœืคื™ ื”ื ื—ื™ื•ืช):

$ 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

ื”ืคืขืœืช VS Code ื›ืžืฉืชืžืฉ ืฉืื™ื ื• ืฉื•ืจืฉ ืื•ื‘ื•ื ื˜ื•:

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

ื”ืคืขืœ ืืช ืคื™ื™ืจืคื•ืงืก:

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

ื—ืœื•ื ื•ืช ื™ื™ืฉื•ืžื™ื ื™ื•ืฆื’ื• ืขืœ ื”ืžืืจื—, ืืš ื”ื ื™ื‘ื•ืฆืขื• ื‘ืชื•ืš ื”ืงื•ื ื˜ื™ื™ื ืจ - ื‘ื“ื•ืžื” ืœื”ืขื‘ืจืช ื’ืจืคื™ืงื” ื‘ืืžืฆืขื•ืช ssh.

ืื ื™ ืœื ืžื›ื‘ื” ื™ื“ื ื™ืช ืงื•ื ื˜ื™ื™ื ืจื™ื ืคื•ืขืœื™ื, ื›ื™ ืื ื™ ืœื ืจื•ืื” ื‘ื–ื” ื”ืจื‘ื” ื˜ืขื - ืื ื™ ืžื’ื‘ื™ืœ ืืช ืขืฆืžื™ ืœืกื’ื™ืจืช ื—ืœื•ื ื•ืช ืฉืœ ื™ื™ืฉื•ืžื™ื ืคื•ืขืœื™ื.

5. ืžืกืงื ื”

ืื ื™ ืžืขื“ื™ืฃ ืœื ืœื”ืฉืชืžืฉ ื‘ืžืขืจื›ืช ื”ืคืขืœื” ืžืืจื— ืœืคื™ืชื•ื—, ืžื›ื™ื•ื•ืŸ ืฉื–ื” ื™ื“ืจื•ืฉ ื”ืชืงื ืช ื›ืœื™ ืคื™ืชื•ื—, ื ื™ืคื•ื™ ื‘ืื’ื™ื ืฉืœ ืกืคืจื™ื•ืช, ื”ื’ื“ืจืช ืจื›ื™ื‘ื™ ืžืขืจื›ืช ื‘ืฆื•ืจื” ืกืคืฆื™ืคื™ืช ื•ืžื ื™ืคื•ืœืฆื™ื•ืช ืื—ืจื•ืช. ื›ืœ ื–ื” ื™ื›ื•ืœ ืœื”ื•ื‘ื™ืœ ืœื”ืชื ื”ื’ื•ืช ื‘ืœืชื™ ืฆืคื•ื™ื” ื‘ืชื•ื›ื ื•ืช ืื—ืจื•ืช ืฉืื™ื ืŸ ื‘ืคื™ืชื•ื—, ืื• ืืคื™ืœื• ื‘ืžืขืจื›ืช ื”ื”ืคืขืœื” ื›ื•ืœื”. ืœื“ื•ื’ืžื”, ืฉื™ื ื•ื™ื™ื ื‘ืชืฆื•ืจืช OpenSSL ื™ื›ื•ืœื™ื ืœื’ืจื•ื ืœืžืขืจื›ืช ื”ื”ืคืขืœื” ืœื”ืคืกื™ืง ืืช ื”ื”ืคืขืœื” ื›ื”ืœื›ื”.

ื ื™ืกื™ืชื™ ื›ืœื™ื ืฉื•ื ื™ื ืœื‘ื•ื“ื“ ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—:

  • ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช (KVM, VirtualBox ื•ื›ื•') ื”ืŸ ื”ืืคืฉืจื•ืช ื”ื‘ืจื•ืจื” ื‘ื™ื•ืชืจ, ืืš ื”ืŸ ืฆื•ืจื›ื•ืช ื”ืจื‘ื” ื™ื•ืชืจ ืžืฉืื‘ื™ื, ืื ื›ื™ ืื™ืŸ ืืคืฉืจื•ื™ื•ืช ืื—ืจื•ืช ืœืคื™ืชื•ื— ืชื—ืช Windows (ืื ื”ืžืืจื— ื”ื•ื ืœื™ื ื•ืงืก);
  • ื›ืœื™ ืคื™ืชื•ื— ืขื ืŸ ื”ืคื•ืขืœื™ื ืขืœ ืžื›ื•ื ื” ืžืงื•ืžื™ืช (Cloud9 ื‘ืงื•ื ื˜ื™ื™ื ืจ ืื• ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช, Eclipse Che ื•ื›ื•') - ื”ื ืœื ืคื•ืชื—ื• ืขื‘ื•ืจ ืื•ืคืŸ ื”ืคืขื•ืœื” ื”ื–ื”, ื”ื ื“ื•ืจืฉื™ื ืชืฆื•ืจื” ื•ืชื—ื–ื•ืงื” ื ื•ืกืคื™ื, ืขื“ื™ืฃ ืœื”ืฉืชืžืฉ ื‘ื”ื ืœืžื™ื•ืขื“ ืœื”ื. ืชื›ืœื™ืช - ื‘ืขื ืŸ;
  • ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืœ Docker ืฉื•ื‘ ื ื•ืขื“ื• ืœืžืฉื”ื• ืื—ืจ, ืœื“ืขืชื™, ื”ื ืœื ืžืื•ื“ ื ื•ื—ื™ื ืœื™ืฆื™ืจืช ืื‘ ื˜ื™ืคื•ืก ืžื”ื™ืจื” ื‘ืืžืฆืขื•ืช ืชื•ื›ื ื” ืฉืขื“ื™ื™ืŸ ืœื ืืจื•ื–ื” ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื ื ืคืจื“ื™ื.

ื”ื’ื™ืฉื” ื”ื ื‘ื—ืจืช ืžืจืฉื™ืžื” ืื•ืชื™ ื‘ืคืฉื˜ื•ืชื” ื•ื‘ืžื—ืกื•ื ื”ื›ื ื™ืกื” ื”ื ืžื•ืš ืฉืœื”. ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื ืขืฆืžื, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื’ื™ืฉื•ืช ืกืคืฆื™ืคื™ื•ืช ืœืคืจื•ื™ืงื˜: ืœื”ืชืงื™ืŸ ื•ืœื”ื’ื“ื™ืจ ื”ื›ืœ ื‘ืื•ืคืŸ ื™ื“ื ื™, ืื• ืœื”ืฉืชืžืฉ ื‘ืื•ื˜ื•ืžืฆื™ื” (Puppet, Ansible ื•ื›ื•'), ืืคื™ืœื• ืœืคืจื•ืก ืชืฉืชื™ืช ืžื‘ื•ืกืกืช ื“ื•ืงืจ. ืื ื™ ื’ื ืžืฉืชืžืฉ ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืœ LXD ื›ื“ื™ ืœื”ืคืขื™ืœ ืชื•ื›ื ื” ืกืคืฆื™ืคื™ืช ืฉื“ื•ืจืฉืช ื”ืชืงื ืช ืžืกืคืจ ืจื‘ ืฉืœ ืชืœื•ืช ืื• ื’ืจืกืช ืžืขืจื›ืช ื”ืคืขืœื” ืื—ืจืช - ื‘ืžืงืจื” ื–ื” ื ื™ืชืŸ ืœื™ืฆื•ืจ ืงื•ื ื˜ื™ื™ื ืจ ืขื ื’ืจืกืช ืžืขืจื›ืช ื”ื”ืคืขืœื” ื”ืจืฆื•ื™ื”, ืœืžืฉืœ $ lxc launch images:ubuntu/16.04 dev16.

ื—ืฉื•ื‘ ืœื–ื›ื•ืจ ืฉืžื‘ื—ื™ื ืช ื‘ื™ื“ื•ื“, ืœืงื•ื ื˜ื™ื™ื ืจื™ื–ืฆื™ื” ื™ืฉ ืžืฉื˜ื— ื”ืชืงืคื” ื’ื“ื•ืœ ื™ื•ืชืจ ื‘ื”ืฉื•ื•ืื” ืœื•ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” โ€“ ื”ืžืืจื— ื•ื”ืžื™ื›ืœ ื—ื•ืœืงื™ื ืœื™ื‘ื” ืื—ืช, ื ืงื•ื“ืช ืชื•ืจืคื” ืฉื‘ื” ื™ื›ื•ืœื” ืœืืคืฉืจ ืœืชื•ื›ื ื•ืช ื–ื“ื•ื ื™ื•ืช ืœื‘ืจื•ื— ืžื”ืžื™ื›ืœ. ื›ืืฉืจ ืžืชื ืกื™ื ื‘ืชื•ื›ื ื” ืžืคื•ืงืคืงืช, ืขื“ื™ืฃ ืœื”ืฉืชืžืฉ ื‘ืžื ื’ื ื•ื ื™ ื‘ื™ื“ื•ื“ ืžืชืื™ืžื™ื ื™ื•ืชืจ.

ืงื™ืฉื•ืจื™ื ืฉื™ืžื•ืฉื™ื™ื

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”