HomeLab 3. dio— kreiranje VMa u Proxmoxu

Dickobraz
6 min readMar 4, 2024

--

Nastavljamo serijal članaka o kućnom laboratoriju, započeli smo sa uvodom u kojem pojašnjavam pojmove i što planiram odraditi, a nakon toga je slijedio članak sa instalacijom Proxmoxa na miniPC. Idemo na slijedeći korak: instalacija Virtualne mašine (VM) u Proxmox.

Članci iz serijala:

I ovaj put ćemo se poslužiti Proxmox helper skriptama koje se mogu pronaći na: https://tteck.github.io/Proxmox/. Ovaj put iskoristit ćemo cjelinu “Operating System” te unutar njega odabiremo “Ubuntu 22.04 VM”.

  • Krećemo sa otvaranjem Administracijskog sučelja u Proxmoxu u web browseru
  • Otvoriti konzolu kao root (Datacentar-<ime koje ste dali prilikom instalacije>>_ Shell). Alternativno, mogli smo se ulogirati kao root i sa remote računala i putem Puttya ako ste slijedili sve korake iz prethodnog članka. Međutim, preporuka je da se ova instalacija odradi preko Administracijskog sučelja Proxmoxa.
  • U konzolu upisujemo:
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/ubuntu-vm.sh)"
  • Pojavljuje se ekran sa opcijom na nastavak instalacije. Odabiremo “Yes” i nastavljamo dalje.
  • Na ekranu “Use Default Settings?” odabiremo “Yes”.
  • Na ekranu “Storage Pools” biramo disk na koji će se VM instalirati — odabiremo “local-lvm”, pritiskom na “space” tipku na tipkovnici, te sa TAB tipkom odabiremo “Ok” za nastavak instalacije.
  • Nakon što je instalacija završena unutar Admin sučelja Proxmoxa pojavit će se nova Virtualna mašina “100 (ubuntu)” — odmah ispod naziva vašeg servera.
  • Klikom na VM otvaraju se dodatne opcije za konfiguraciju
  • Prvo ćemo “pojačati hardware” tj. dodati još malo resursa ovoj mašini, jer će ona sadržavati Docker i preko nekoliko aktivnih servisa. Stoga kliknemo na “Hardware”
  • Odaberemo opciju “Memory”, zatim klik button “Edit”, te upisujemo 8192 (8GB), te potvrđujemo odabir klikom na “OK”
  • Slijedeća opcija je “Processors”, gdje ćemo ostaviti 1 socket, ali ćemo dodati 3 jezgre (“Cores”) — “OK” potvrđuje
  • Označavanjem “Hard Disk (scsi0)” aktivira opcije “Disk Action” unutar kojeg biramo “Resize”. Tu sam upisao “5”.
  • Ako ste u prethodnom članku slijedili “dodatne upute” među prvima je bila “Uključivanje PCI prosljeđivanja” koja omogućuje direktan pristup hardwareu Virtualnoj mašini. Dakle, ako to niste odradili, ovaj korak možete preskočiti, ali ako jeste, kliknite na “Add” iz padajućeg izbornika odaberite “PCI Device”. U novom prozoru odaberite “Raw Device”, a pod “Device” odaberite “Alter Lake-N [UHD Graphics]”, te kliknite na “Add”

Malo smo pojačali VM sa RAMom, jezgrama procesora i direktnim pristupom grafičkoj kartici, te bi nam to, barem teoretski, trebalo omogućiti normalan rad svih servera, čak i u slučaju transcodinga streamova.

Slijedeća opcija za konfiguraciju je “Colud-Init”

  • Pod “User” upisujemo “root”
  • U “Password” polje passwrod za korisnika
  • “Upgrade packages” odznačite “Upgrade packages”
  • Pod “IP Config (net0)” ćemo upisati slijedeće:

“IPv4/CIDR” — upisao sam “192.168.0.165/24”, pod “Gateway (IPv4) “ — “192.168.0.1” te odabrao checkbox “Static“ kod “IPv4” opcije.

Zašto baš tako i da li i vi morate odraditi isto?! Ne morate isto, sve ovo ovisi o vašoj lokalnoj mreži (LANu) na koju ste spojeni putem telekom modema. U mojem slučaju Proxmox server se nalazi na IP adresi 192.168.0.164/24 sa Gatewayom koji glasi 192.168.0.1. Budući da je u mojoj lokalnoj mreži (LANu) adresa 192.168.0.165 slobodna, nju sam odlučio dodijeliti “media serveru” na kojoj će se nalaziti Docker. Gatweay je isti, a opciju “Static” sam odabrao jer želim da mi “media server” uvijek ima istu adresu i da tu adresu mogu upisati u svoj hosts file na windowsima. Kod vas situacija može biti malo drugačija, druge IP adrese, ali princip bi trebao biti isti.

Pokretanje Ubuntu VMa

Sve smo konfigurirali, možemo pokrenuti Virtualnu mašinu klikom na “Start”. Nakon toga moramo otvoriti konzolu i to radimo na način da se klikne na strelicu dolje kod opcije “>_ Console” u headeru, te odaberemo “xterm.js”

Nakon što se VM bootala i mi smo se ulogirali kao root vrijeme je za daljnju konfiguraciju.

Prvo ćemo krenuti sa SSHom upisivanjem slijedeće linije:

sed -i -e 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' -e 's/^PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
rm /etc/ssh/sshd_config.d/60-cloudimg-settings.conf
systemctl restart sshd

Nakon toga kreirat ćemo novog korisnika (umjesto <testuser> upišite željeni login za tog korisnika. Nakon toga slijedi unos passworda za tog korisnika, ponovni upis passworda i to su obavezni podaci. Ostatak (ime, prezime), možete slobodno preskočiti.

adduser testuser

Nakon toga slijedi dodavanje tog korisnika u sudoers listu (omogućavanje tom korisniku admin/root ovlasti). To se radi na slijedeći način (umjesto testuser upišite username vašeg korisnika):

usermod -aG sudo testuser

Došlo je vrijeme za isprobavanje da li SSH radi i da li se možemo spojiti na našu VM sa udaljenog računala. Za spajanje na media server u windowsima se može iskoristiti Putty, pa ćemo ovdje i to ukratko opisati.

Putty možete pokrenuti i bez instalacije, na način u Download sekciji odaberete “putty.exe”. Nakon downloada pronađite ga na disku i pokrenite aplikaciju.

  • Upišemo IP adresu (u mojem slučaju): 192.168.0.165
  • Kliknemo na “Open”
  • Otvara se ekran sa ssh keyom koji prihvaćamo klikom na “Accept”
  • te upisujemo prvo username, a nakon toga i password za tog korisnika.

I to je to. Ulogirani smo SSHom na naš media server. U slučaju da ne želim stalno upisivati podatke o IPu, u Puttyu, ispod Saved Sessions upisujemo ime, a nakon toga “Save”. Učitavanje snimljene konfiguracije se radi pritiskom na tipku “Load” :).

Možemo dodati IP adresu i u hosts datoteku (kao što smo radili i sa Proxmoxom). Path glasi:

C:\Windows\System32\drivers\etc\hosts

Instalacija Guest Agenta, Dockera..

Nakon što smo riješili spajanje putem SSH na naš mediaserver, vrijeme je za nastavak konfiguracije istog. Preporučio bih da se ovo odradi putem puttya sa korisnikom kojeg smo ranije kreirali.

Prvi korak je da postanemo root i to ćemo napraviti ovako:

testuser@mediaserver:~$ sudo su

Nakon upisivanja passworda (passworda od korisnika, ne root password) možete provjeriti da li ste sada zaista root upisivanjem komande whoami i trebali bi dobiti nešto poput:

root@mediaserver:/home/testuser# whoami
root
  • instalacija Guest Agenta (ovo upisujte liniju po liniju)
root@mediaserver:/home/testuser# apt-get update && apt-get -y upgrade
root@mediaserver:/home/testuser# apt-get install -y qemu-guest-agent

Nakon instalacije slijedi reboot

reboot

To će vas odlogirati sa servera. Pričekajte neko vrijeme (ili provjerite u Proxmox Admin sučelju) da li se mediaserver rebootao te se ponovno ulogirajte kao korisnik. Nakon što ste ulogirani na media server ponovite “sudo su”.

  • instalacija Dockera
sh <(curl -sSL https://get.docker.com)
  • instalacija Docker Composea
LATEST=$(curl -sL https://api.github.com/repos/docker/compose/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -sSL https://github.com/docker/compose/releases/download/$LATEST/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
docker compose version
  • na kraju slijedi instalacija Dockgea (grafičko web sučelje za baratanje sa Docker compose yaml datoteka.
mkdir -p /opt/{dockge,stacks}
wget -q -O /opt/dockge/compose.yaml https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml
cd /opt/dockge
docker compose up -d

Nakon instalacije web sučelje Dockgea bi trebalo biti na portu 5001, te ako u browser upišemo http://192.168.0.165:5001 (u mojem slučaju budući da smo VMu dali statičku IP adresu) otvorit će nam se Dockge.

I to je to, kreirali smo Virutalnu mašinu (VM) unutar Proxmoxa, korisnika koji se može spajati na nju putem SSH, novog korisnika, te instalirali Docker, Docker Compose i Dockge. Slijedeći korak je instalacija File Servera sa SMBom gdje ćemo imati dijeljeni disk, za sve Docker servise, kao i za sva ostala računala u mreži.

Članci iz serijala:

--

--