عزل بيئات التطوير مع حاويات LXD

سأتحدث عن نهج تنظيم بيئات التنمية المحلية المعزولة على محطة العمل الخاصة بي. تم تطوير المنهج تحت تأثير العوامل التالية:


  • تحتاج اللغات المختلفة IDEs المختلفة وسلاسل الأدوات ؛
  • قد تستخدم المشاريع المختلفة إصدارات مختلفة من سلاسل المفاتيح والمكتبات.

يتمثل النهج في تطوير حاويات داخل LXD تعمل محليًا على كمبيوتر محمول أو محطة عمل مع إعادة توجيه إخراج الرسومات إلى المضيف.


التكوين على سبيل المثال أوبونتو 20.04 .


يتم عرض الأفكار حول الخيارات والأسباب في نهاية المقالة.


1. تثبيت LXD


في Ubuntu 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 :0DISPLAY ;
  • $ 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: . Ubuntu : $ lxc launch ubuntu/20.04 dev1.


:


$ lxc exec dev1 -- bash

Firefox VS Code ( ):


$ 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 ubuntu:


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

Firefox:


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

, — ssh.


, — .


5.


, , , . , , , . OpenSSL , .


:


  • (KVM, VirtualBox ..) — , , Windows ( , Linux) ;
  • (Cloud9 , Eclipse Che ..) — , , — ;
  • Docker — , , .

. : , (Puppet, Ansible ..), Docker. LXD , — $ lxc launch images:ubuntu/16.04 dev16.


, — , . .




All Articles