skoleni:uzivatelske_zaklady_virtualizace

Uživatelské základy virtualizace

Tady budeme probírat jak a co jde dělat s virtuálkama z pohledu uživatele.

Samozřejmně použití je moc

Izolace, abstrakce nad HW, scalability, resiliency, HA, co ja vim, atd.

Misto spousty HW nam staci jeden pocitac a diky virtualkam si na nem muzeme vyzkouset i veci ktere by ho mohli udelat nepouzitelnym (uz jste si nekdy vyzkouseli `rm -rf /`?) nebo bysme na ne potrebovali vic pocitacu (sitovani, vzdalena sprava), nebo si nechceme zaflakat svoje vlastni prostredi. Nebo chceme zkusit FreeBSD, Windows, Redox OS, Android, atd.

Je potreba vedet, ze je nejaka HW virtualizace, je to rychly, ale da se tim emulovat jen stejna nebo velmi podobna architekture (i686 na x86_64), v SW toho jde vic, ale je to pomalejsi. Mozna ukazat rozdil jak bootuje TCG masina (bez KVM). Taky se hodi zminit, ze je neco jako nested virt a muzeme pustit KVM virtualku v KVM virtualce. Jde to i dal, ale pak se to exponencialne zpomaluje (pro srandu: https://rwmj.wordpress.com/2014/07/03/super-nested-kvm/)

Máme spoustu možností, ale abysme nemuseli řešit co a jak, tak pouzijeme to, co mame. To znamena, ze když na základní Workstation instalaci kliknu na aktivity a napíšu „virt“, tak mi vyskočí „Boxy“ (Gnome Boxes), tam je unattended instalace fakt otazkou par kliknuti (je potreba aspon fedora 30). Jeste zajimavejsi mi prijde, ze to stejne jde za pomoci virt-installu (v manualove strance staci hledat „unattended“). To se da pekne automatizovat. Dalsi vec, jeste rychlejsi, je pouzit zbuildeny image – virt-builder ma na to spoustu moznosti. Unattended instalace pouziva kickstart (popr. preseed), coz je v podstate konfiguracni soubor pro instalator, muze si ho kazdy napsat, automatizovat instalaci nekolika ruznych stroju atd. Po instalaci je vygenerovany kickstart v /root, takze se da nainstalovat jedna masina normalne, vsechno si u toho nastavit, pak vzit ten kickstart co tam zustane a pouzit ho na instalaci. pokud mame kickstart, tak unattended instalace pres virt-install uz ma jen tu vyhodu, ze muze sama vymyslet kolik pameti, disku atd. pro tu VM nastavi.

  • Integrovany v mgmt app / Samostatny
  • Graficky / textovy / aplikacni (nazvy blbe, ale nevedel jsem jak to rozdelit, mozna to nerozdelovat)

Zkratka popsat / ukazat / vysvetlit zakladni rozdily:

  • Boxes
  • Virt-manager
  • virt-viewer
  • cockpit
  • ssh

A k tomu nejake zajimave veci v .ssh/config, jak pouzit ssh-keygen a ssh-copy-id. Zjistit jak funguje gnome-keyring a bud ukazat to a nebo mozna ssh-agent / gpg-agent –enable-ssh-support.

Co vsechno by nekdo mohl nejak „napadnout“. kazdy jeden vzdaleny pristup ma nejake moznosti, VNC (bud prava na unix socketu nebo heslo, popr. na jedno pouziti - smazane po pripojeni), SPICE (heslo, prip. na jedno pouziti, ale uz umit TLS), ssh (slaba hesla), stejne jak verime tomu kdo ma pristup na roota na pocitaci kde mame neco jako uzivatel, tak stejne tak musime verit tomu kdo vlastni pocitac na kterem nam pustil VM (modulo SEV/SGX, atd., ale to uz je extrem, to tu popisovat nebudem, jen aby kdyztak nekdo vedel kde si zjistit detaily). Jak se zmenila bezpecnost kdyz jsem si vytvorili klic? Jak kdyz jsme ho pridali do keyringu/agenta? Da se toho tu udelat i vic, ale klidne bych pak udelal bezpecnost #2 po par dalsich odstavcich/kapitolach.

Nevim, jestli boxes neco takoveho ma, popr. jestli ty masiny z boxes budeme moct ovladat i pres neco jineho (virt-manager, virsh, cockpit). Myslim, ze pouzivaji tranzientni domeny jenom, tak to mozna nepujde, to je potreba jeste nejak vymyslet. Ale mam vedle sebe na to cloveka, tak kdyby bylo potreba, tak muzu zjistit. Zkratka je potreba ukazat jak se dela snapshot (checkpoint), jak se na nej revertuje (mozna rict, ze je rozdil mezi bezicim a nebezicim snapshotem), idealni na vyzkouseni rm -rf / (a ukazky, ze i kdyz pouziji -f (coz by nemeli jen tak), tak uz to tak jednoduche neni (a toho, jak to nekdy stejne jednoduche byt muze, ze Eriku ;-) )), nejaky srandy k tomu atd. (na zaujmuti jich a i napad pro ne na zaujmuti studentu).

Ssh je pripojene po siti. Virtualni sit je na hostovskem pocitaci. Ukazat s ip l, ip a, ip r, zminit nejake stare veci jako ifconfig, brctl, ale spis preferovat iproute2. Ukazat co je kam pripojeny, co ma ktera VMka, jak to vypada z jejiho pohledu, atd. Nevim, jestli pres Boxes nebude v qemu jenom SLIRP (-net user), snad ne a pouziva to nejaky bridge-helper aspon. Ale cockpit/virt-manager bude mit pristup na qemu:/system, takze to pujde urcite. Dns, dhcp, atd. Bezi na hostovi, ukazat (zakladne), nacmarat na tabuli, popsat jak se VMka dostane na externi sit. Firewall tim padem funguje, da se ukazat jak neco zakazat/povolit (nejakou sluzbu), popr. kdyz si odstrihnem SSH, tak to opravit pres cockpit/virt-viewer. ==== Zbytek ==== Zminit, ze automatizovat jde fakt dost veci, sprava a nastaveni (ansible, extra parametry virt-builderu atd.) se daji pouzit na vyplneni casu, ale ze zkusenosti si myslim, ze budem radi kdyz se stihnou ty zaklady. Ale pro info na to budeme mit dalsi skoleni.

  • skoleni/uzivatelske_zaklady_virtualizace.txt
  • Poslední úprava: 2019/10/11 16:47
  • autor: nert