Utworzono zgłoszenie.
Produkt: xfcedebian (Konfiguracja XFCE dla Debiana)
Komponent: main (xfcedebian w gałęzi main)
Rodzaj zgłoszenia: ulepszenie
Temat: Wirtualizacja w immudex
Opis zgłoszenia: Zastanowić się na przeniesiem wirtualizacji w immudex, z zestawu pakietów obowiązkowych do addonu. Jeśli tak to:
- Dać możliwość zainstalowania wyłącznie pakietu 'virt-manager', do obsługi serwerów KVM.
- Utworzyć addon z pakietem konteneryzacji, np. 'distrobox'.
Status zgłoszenia został zmieniony z Przyjęty na W trakcie
Synchronizacja repozytoriów. Usunięcie z xfcedebian (priv) instalacji
pakietów odpowiedzialnych za KVM. Utworzenie addona KVM dla immudex (priv) z usuniętych
pakietów.
Właśnie zakończyłem testować dockera. Distrobox jak i docker mają szansę działać
na immudex. Oczywiście nie bez problemów otóż:
- Distrobox tworzy nieuprzywilejowane kontenery, które mają zamontowany rootfs wraz z opcjami nodev oraz
noexec, co powoduje że nie możemy ich wykorzystać do budowy immudex czy librewolf. Zaletą tego typu
kontenerów jest to, że działają out-of-box i poza klasyczną zmianą katalogu domowego nie trzeba nic robić
- Jeśli chcemy utworzyć uprzywilejowane kontenery, to są one zapisywane w /var/lib/containers, ale
skopiowanie tego katalogu wraz z uprawnieniami do datastore i podmontowanie z użyciem opcji -B pozwala
nam tworzyć kontenery na datastore.
- W przypadku dockera nie ma takiego podziału, rootfs kontenerów nie używa ww. opcji do montowania,
ale kontenery domyślnie są zapisywane na /var/lib/docker. Rozwiązanie z distrobox tutaj niestety
nie działa i trzeba faktycznie wskazać demonowi dockera nowy katalog. Do tego celu przygotowałem
odpowiednie narzędzie. Docker również ma wpływ na działanie takich narzędzi jak immudex-crypt
oraz immudex-padlock, tworzy urządzenie w katalogu /dev/mapper, które jest błednie wykrywane przez te
narzędzia. Poprawiłem te błędy.
- Inną kwestią jest izolacja kontenerów tworzonych za pomocą tych metod. Docker posiada swój rootfs,
natomiast distrobox podmontowuje katalogi naszego hosta. Zatem mamy z poziomu kontenera distrobox
dostęp do datastore. Czy tego chcemy? To już sprawa osobista.
- Warto dodać, że kontenery dockera uruchamiają się szybciej nie mniej jednak irytujące może być to
że po wylogowaniu taki kontener zostaje zatrzymany, ponieważ jego proces macierzysty zostaje
zakończony. W distrobox to nie występuje.
Myślę, że wszystkie te możliwe zmiany będą dostępne w postaci addonów, tak aby każdy użytkownik
mógł zdecydować czego chce używać o ile chce używać czego kolwiek.
Usunięto z projektu xfcedebian instalację pakietów odpowiedzialnych
za KVM, zostały one przeniesione do addonu kvm w projekcie immudex. Z pliku bazowego immudex do
wcześniej wspomnianego addonu zostało dodane polecenie, którego zadaniem jest dodanie tworzonego
użytkownika do grup libvirt oraz libvirt-qemu. Wcześniej ta czynność była częścią jednego z
poleceń tworzących użytkownika (dodanie go do odpowiednich grup). Poza wydzieleniem instalacji
KVM z wyżej wymienionych projektów do addony immudex - przez co jego instalacja nie jest już
domyślna - utworzono dodatkowy addon virt_manager - instalujący tylko i wyłącznie menedżer maszyn
wirtualnych - pozwoli to na połącznie się z serwerem KVM - dla komputerów, których parametry
sprzętowe nie pozwalają na wydajną wirtualizację (chromebooki, laptopy sprzed 2010). Motywacją
do ujęcia pojedynczego polecenia w addon był fakt iż domyślna instalacja pakietu virt-manager
za pomocą programu APT, zainstaluje całe środowisko KVM (co nie jest pożądane) - niezbędne jest
dodanie modyfikatora (--no-install-recommends).
Jako addony zostały dodane dwa środowiska konteneryzacji: docker.io oraz distrobox (podman).
Poza instalacją owych systemów addony wprowadzają również po dwa (dedykowane dla każdego ze
środowisk) narzędzia pozwalające na tworzenie oraz uruchamianie kontenerów na datastore
(narzędzie immudex-X-swap-root, gdzie X oznacza: docker lub distrobox) oraz zmuszenie owych
systemów do zwolnienia blokad (odblokowania) zasobów znajdujących się na datastore w celu jego
poprawnego zamknięcia (narzędzie immudex-X-unlock-ds, gdzie X oznacza: docker lub distrobox).
Poza zmianami w kodzie wymagane również było zaznaczenie wyżej wymienionych zmian na stronie
projektu poprzez dodanie do tabeli ww. zmian oraz informacji o tym, że nie są domyślnie dostępne
a ich instalacja wymaga ingerencji użytkownika (addon).
Status zgłoszenia został zmieniony z W trakcie na Zakończony