Proxmox: preparare un container con Tailscale a bordo

| |

Oltre a permetterti di mettere in piedi delle macchine virtuali “complete“, Proxmox consente di creare dei container Linux (LXC) che possono tenere in piedi servizi e applicazioni con un utilizzo molto ottimizzato di risorse e applicando un isolamento in grado di tenere “nel recinto” quello specifico servizio, un po’ come funziona con Docker (a dirla in parole molto povere e senza fare la punta al piffero). Se vuoi saperne di più ti rimando direttamente alla documentazione ufficiale (in inglese) che trovi all’indirizzo pve.proxmox.com/wiki/Linux_Container.

Quello che nello specifico oggi andiamo a mettere in piedi è un LXC dedicato a Tailscale, utile per poter raggiungere molto rapidamente le macchine virtuali e l’host Proxmox stesso con zero fatica. Dico zero fatica perché – rispetto a quanto già disponibile in maniera più che semplice in documentazione ufficiale (tailscale.com/kb/1133/proxmox) – c’è uno script pubblico che può fare l’intero lavoro sporco al posto tuo.

Creazione di un LXC

Se non lo hai mai fatto prima dovrai collegarti al tuo nodo Proxmox e scaricare uno o più template per creare dei LXC.
Spostati nel tuo storage locale – generalmente local (pve) dove pve è il nome che hai dato al tuo nodo Proxmox – e quindi in CT Templates, quindi fai clic sul pulsante “Templates” per aprire il popup all’interno del quale troverai tutti i template pubblicamente disponibili e scaricabili.

Io per convenienza / rapidità ho scaricato il template di Debian 12 (e poi di Alpine Linux per altri esperimenti), tu puoi procedere come meglio credi.

Fatto questo passaggio sarai pronto a creare il tuo primo container, basterà un clic sul pulsante “Create CT” e specificare le varie necessità nel percorso guidato da Proxmox.

Installazione di Tailscale

Tutto quello che c’è da sapere sull’installazione di Tailscale su Proxmox e/o direttamente in un LXC è documentato agli indirizzi tailscale.com/kb/1133/proxmox e tailscale.com/kb/1130/lxc-unprivileged ma, come già anticipato, c’è uno script che può (parzialmente) occuparsene al posto tuo.

Progetto ospitato da GitHub, Proxmox Helper Scripts ti facilita la vita perché ti permette di richiamare rapidamente script di installazione / configurazione servizi e applicazioni per Proxmox, e lo puoi raggiungere all’indirizzo tteck.github.io/Proxmox. Ci sono arrivato da un messaggio nel forum di Proxmox e sono molto contento di averlo scoperto.

Tra gli script disponibili c’è anche quello dedicato a Tailscale in LXC e lo si lancia semplicemente con una stringa dalla console del tuo nodo Proxmox:

bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/add-tailscale-lxc.sh)" -s 106

Dove al posto del 106 dovrai inserire l’ID reale del container che tu hai creato sul tuo Proxmox. Una volta lanciato il comando e confermato di aver modificato il 106 con l’ID corretto, lo script penserà al resto.

Proxmox: preparare un container con Tailscale a bordo 2

Tutto pronto.
Riavvia il LXC, manca da affrontare l’ultimo passaggio.

Quello che dovrai fare ora è tirare in piedi il servizio di Tailscale e quindi collegare il LXC al tuo account così da poterlo gestire come fosse una nuova macchina a tua disposizione. Per collegarti in console al LXC puoi usare direttamente l’interfaccia web di Proxmox oppure puoi collegarti al tuo nodo e poi lanciare un:

lxc-attach --name 106

Dove al posto di 106 dovrai inserire l’ID reale che hai assegnato al tuo container sul tuo nodo Proxmox. A quel punto verrai proiettato come utente di root (se arrivi dal medesimo utente precedentemente connesso al nodo) sul container (LXC) all’interno della stessa finestra di Terminale e potrai lanciare i comandi necessari. In questo caso – dovendo avviare il servizio di Tailscale – dovrai semplicemente richiamare tailscale up e poi effettuare il login, autorizzando poi la nuova macchina a entrare nella tua Tailnet.

Prima di concludere ti consiglio anche di andare a dare un’occhiata a questo paragrafo della documentazione Tailscale dedicata a Proxmox: tailscale.com/kb/1133/proxmox/#resolvconf-within-lxc.

Questione di backup

Paragrafo inizialmente non previsto per la pubblicazione dell’articolo ma che mi interessa assolutamente includere perché sono abbastanza certo che ti tornerà utile. Se il tuo nodo Proxmox effettua automaticamente backup su uno storage esterno (nel mio caso il NAS Synology di casa) è possibile che andrai incontro a un errore di backup causato dal fatto che il LXC sia Unprivileged:

Proxmox: preparare un container con Tailscale a bordo 3

Per risolverlo ho seguito il suggerimento che è nato in una discussione del forum di supporto di Proxmox (questa: forum.proxmox.com/threads/backup-lxc-containers-fail.99940, ma anche questa: forum.proxmox.com/threads/cannot-backup-only-lxc-to-nfs-vm-works.90797) e ho quindi ho attivato l’opzione che costringe Proxmox a scrivere in una cartella temporanea locale prima di spostare il tutto sulla cartella dello storage montato in NFS.

Vai quindi a modificare tramite vi il file /etc/vzdump.conf e inserisci prima di #tmpdir: DIR la stringa tmpdir: /var/tmp/.

Non c’è un valido motivo per non modificare già la stringa proposta di default (e commentata) dal file di configurazione di vzdump, semplicemente preferisco lasciare lì il tutto e inserire la mia modifica non commentata. Se in futuro arriverà un aggiornamento del software (e a me è già successo) ti verrà richiesto se sovrascrivere il file contenente la tua modifica o mantenerlo (mantenendo però così anche la vecchia versione del software). Ti conviene far sovrascrivere il file di configurazione con quello proposto dal software e poi applicare nuovamente la stessa modifica, non costa poi così tanta fatica.

# vzdump default settings

tmpdir: /var/tmp/
#tmpdir: DIR
#dumpdir: DIR
#storage: STORAGE_ID
#mode: snapshot|suspend|stop
#bwlimit: KBPS
#performance: [max-workers=N][,pbs-entries-max=N]
#ionice: PRI
#lockwait: MINUTES
#stopwait: MINUTES
#stdexcludes: BOOLEAN
#mailto: ADDRESSLIST
#prune-backups: keep-INTERVAL=N[,...]
#script: FILENAME
#exclude-path: PATHLIST
#pigz: N
#notes-template: {{guestname}}

Lanciando un nuovo backup stavolta è andato a buon fine (occhio solo che nella cartella di appoggio temporanea ci sia sufficiente spazio disco per poter ospitare i backup di ciascuna tua macchina / LXC per il tempo necessario poi allo spostamento verso lo storage finale).

Dubbi? Domande? Opere? Omissioni? Usa l’area commenti che trovi qui di seguito! 😁✌️

#KeepItSimple


Grazie a:
wissenschaft.com.ng/blog/ssh-into-a-proxmox-lxc-container

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Inline Feedbacks
View all comments