Per eseguire il test di alcune configurazioni ed applicativi è spesso necessario sfruttare un ambiente virtualizzato. Questo permette di verificare se con determinati setting è possibile eseguire azioni specifiche o avviare processi senza errori. Ecco perché in rete è disponibile un'ampia disponibilità di software dedicati alla virtualizzazione.
In questa guida parleremo di Proxmox, una pratica piattaforma di virtualizzazione open source a cui è possibile accedere anche da una comoda Web interface. Proxmox può infatti essere configurato all'interno di un server Linux cosi da renderlo accessibile agli utenti connessi ad una rete locale.
Proxmox dà accesso ad una serie di strumenti e tool con cui creare e gestire delle istanze virtualizzate con un determinato setting di storage e risorse hardware. Nel dettaglio andremo a configurare Proxmox su Raspberry Pi. La nota board ARM low-cost è perfetta per tale scopo in quanto può essere posizionata anche vicino ad un router, senza occupare tanto spazio.
L'ambiente hardware
Per eseguire la virtualizzazione di più istanze è necessario disporre di un hardware di partenza abbastanza prestante. Ecco perché consigliamo di seguire questa guida solo se si ha a disposizione la più recente edizione del Raspberry Pi con il massimo taglio di memoria RAM disponibile.
Tali specifiche consentono di eseguire senza problemi un piccolo bacino di Virtual Machine. Ovviamente questa configurazione è destinata solo a scopi didattici o per piccoli progetti casalinghi. Se dovete eseguire la virtualizzazione di decine di istanze è necessaria una soluzione molto più potente di Raspberry Pi.
Per quanto concerne la prima configurazione del device saranno necessarie inoltre periferiche come mouse, tastiera, monitor, SSD/MicroSD, cavi HDMI ed ethernet ed alimentatore USB-C.
Configurazione iniziale di Raspberry Pi OS
Diamo inizio alla guida scaricando il file ISO di Raspberry Pi OS, la distribuzione Linux basata su Debian e dedicata al device, oltre ovviamente ad un imaging tool. Per semplicità vi consigliamo di affidarvi a Raspberry Pi Imager. Tale utility open source è infatti perfetta per i nostri scopi.
Dunque avviamo quest'ultima e selezioniamo "Choose OS" per impostare il media d'installazione della distribuzione. Successivamente indichiamo al tool, da "Choose Storage", quale device utilizzare per il flash. Infine avviamo il tutto con "Write".
Il procedimento di flash dura diversi minuti, i tempi variano in base alla porta USB/adattatore che abbiamo usato. Ultimata la procedura colleghiamo tutte le periferiche a Raspberry Pi ed eseguiamo il primo avvio ed il wizard di configurazione iniziale della distribuzione.
Impostazione dell'IP statico su Raspberry Pi
Dopo il setup di Raspberry Pi OS apriamo la shell ed iniziamo la configurazione preliminare per l'installazione di Proxmox. Dunque controlliamo se sono disponibili degli upgrade:
sudo apt update && sudo apt upgrade -y
Ora dobbiamo impostare il device in modo tale che usi un IP statico. Per prima cosa procediamo a verificare il nostro network setup:
ip r | grep default
Ecco un output d'esempio:
default via 192.168.0.1 dev eth0 proto dhcp src 192.168.0.200 metric 202
Prendente nota del primo IP mostrato, ovvero "192.168.0.0". Questo IP è il router address. Prendiamo nota anche dell'IP presente nel file di configurazione resolv.conf
:
sudo nano /etc/resolv.conf
# Generated by resolvconf
nameserver 192.168.0.2
Ora che abbiamo sia il nameserver che il router IP possiamo modificare il file di configurazione del client DHCP a dovere. Apriamolo da shell con nano:
sudo nano /etc/dhcpcd.conf
Si aprirà quindi un file come questo:
interface <IPSTATICOASSEGNATOALLARETEACUISIETECONNESSI>
static ip_address=<IPSTATICODELRASPBERRY>/24
static routers=<ILROUTERIP>
static domain_name_servers=<ILDNSIP>
Ecco un esempio di configurazione:
interface <192.168.1.12>
static ip_address=<192.168.1.13>/24
static routers=<192.168.0.1>
static domain_name_servers=<1.1.1.1>
Come potete notare abbiamo impostato un IP statico per l'interface a cui siamo connessi, ovvero la porta ethernet o il WIFI. Poi abbiamo indicando al sistema l'IP del router e quello del DNS che preferiamo utilizzare. In questo esempio sfruttiamo quello di Cloudflare ma possiamo anche affidarci all'8.8.8.8 di Google oppure impostare un DNS server dedicato.
Salviamo il file appena modificato con CTRL+O e chiudiamo l'editor di testo nano con CTRL+X. Per rendere operative tali modifiche dobbiamo eseguire un reboot del device:
sudo reboot
Dopo il riavvio possiamo testare se tutto funziona correttamente lanciando questo comando da shell:
hostname -I
che deve restituirci come output l'IP statico impostato in precedenza.
Installazione di Proxmox su Raspberry Pi OS
Ora dobbiamo modificare l'host file in modo tale da preparare il terreno per Proxmox:
sudo nano /etc/hosts
Troviamo al suo interno una stringa del genere:
127.0.0.1 ilvostrohostname
che deve essere modificata con l'IP che abbiamo configurato prima:
192.168.1.13 ilvostrohostname
Salviamo le modifiche come fatto in precedenza e passiamo al setting di una password per l'utente di root. Ci servirà per accedere alla Web interface di Proxmox:
sudo passwd root
Purtroppo Proxmox non è presente nei repository ufficiali di Raspberry Pi OS, quindi dobbiamo installare dei PPA (Personal Package Archive) di terze parti. Recuperiamo la relativa chiave GPG con curl
:
curl -L https://mirrors.apqa.cn/proxmox/debian/pveport.gpg | sudo tee /usr/share/keyrings/pveport.gpg >/dev/null
ed aggiungiamo il repository extra dedicato ai sistemi ARM64:
echo "deb [deb=arm64 signed-by=/usr/share/keyrings/pveport.gpg] https://mirrors.apqa.cn/proxmox/debian/pve bookworm port" | sudo tee /etc/apt/sources.list.d/pveport.list
Aggiorniamo poi APT della modifica:
sudo apt update
Quindi installiamo finalmente il tutto:
sudo apt install ifupdown2 proxmox-ve postfix open-iscsi pve-edk2-firmware-aarch64
Durante l'installazione dei pacchetti l'utente deve seguire un breve wizard. Per il nostro progetto consigliamo di selezionare l'opzione "Local Only" ed di impostare un mail name per Postfix. Potete usare quello che preferite come il vostro nome utente.
Accedere alla Web interface di Proxmox
Se tutto dovesse andare per il meglio potremo accedere alla WebGUI di Proxmox semplicemente digitando un URL nel browser:
https://192.168.1.13:8006
8006
è la porta su cui è in ascolto Proxmox. Per eseguire il login dobbiamo sfruttare la password impostata in precedenza e come nome utente si dovrà usare "root".
Come potete notare l'interfaccia è davvero comoda e completa. Proxmox consente di creare ed amministrare un ventaglio di macchine virtuali da remoto con pochi semplici click.