Puntino #1: Virtualizzazione

Benvenuti in questa nuova rubrica – a cadenza rigorosamente casuale! – che gli amici de Ilpuntotecnicoeadsl mi forniscono l’occasione di gestire e che si affianca alla sezioni già presenti sul portale. Negli articoli che pubblicherò – in ordine rigorosamente casuale! – intendo proporre perlopiù brevi guide sulla base della mia esperienza quotidiana in ambito informatico. Ma attenzione…non vi offrirò soluzioni originali a problemi complessi, chi vi scrive non è un consumato professionista, bensì un comune appassionato: piuttosto vi offrirò, o proverò ad offrirvi, indicazioni generali, tracce, suggerimenti, con l’auspicio che rappresentino spunti di elaborazione personale o condivisa, in una esposizione il più semplice e corretta possibile, ma senza pretesa di autorevolezza e validità assolute. Il tutto scevro, sia chiaro, da intenti meramente pubblicitari. A latere non escludo l’eventualità di trattare altre tematiche, ad esempio recensioni o riflessioni di natura variabile.

Nell’articolo inaugurale seguiamo l’installazione in ambiente Linux, compresi cenni generali alle impostazioni, di un programma di virtualizzazione (detto anche hypervisor), i cui tipici scenari di impiego sono rappresentati da ambienti di collaudo e di esercizio di cui è richiesta rapida ed efficace distribuzione – esigenza questa soddisfatta dalla flessibilità nella gestione risorse virtuali – piuttosto che da ambienti in cui è fondamentale la compatibilità con sistemi operativi non supportati in parte od in toto dall’hardware recente.
Dopo aver utilizzato nel corso del tempo buona parte delle soluzioni via via disponibili (VirtualBox, KVM, XenServer e Hyper-V tra gli altri), per il mio Ubuntu server domestico la preferenza è andata ai programmi della VMware, Inc., nello specifico Workstation Pro – al momento giunto alla versione 14 – poiché nel mio uso personale si è rivelato nel complesso il più versatile, stabile, ottimizzato, efficiente (in particolare nella gestione della console video), inoltre fornisce driver di significativa qualità per l’ottimizzazione risorse degli ambienti virtualizzati.
Tra gli svantaggi ricordiamo l’essere a pagamento e closed source (sono però open source i driver per ambiente guest *nix).

Premessa: Workstation Pro è un hypervisor di tipo 2 (detto anche hosted) modellizzato sulla base del paradigma client/server. La componente server – avviata come insieme di processi dedicati sulla macchina host – supervisiona l’esecuzione delle VM (virtual machine) e delle funzionalità correlate, la componente client – eseguita su chiamata utente sulla macchina host o su macchina remota – consente la personalizzazione del client medesimo e la gestione delle VM (locali e remote).

Per accedere al download del programma è formalmente richiesta registrazione sul website ufficiale, ma una volta recuperato il link il file risulta accessibile senza credenziali. A titolo esemplificativo riporto QUI l’attuale link al pacchetto di installazione per ambiente Linux.

Installazione, configurazione ed utilizzo possono avvenire con alcuni limiti in pura modalità a riga di comando (l’eseguibile principale per la gestione delle VM è /usr/bin/vmrun), inevitabile nel caso in cui stiate operando su macchina fisica con sistema operativo privo di interfaccia grafica (headless), oppure in modalità grafica (con interfaccia locale se disponibile oppure remota via X11 forwarding, in entrambi i casi avviabile con l’eseguibile /usr/bin/vmware).

Seguiamo ora il processo di installazione elencando i passaggi via riga di comando seguiti dai corrispettivi via interfaccia grafica (N.B.: screenshot acquisiti da sessione via X11 forwarding):

  • rendiamo eseguibile il file

misterftth@test:/tmp$ chmod +x VMware-Workstation-Full-14.0.0-6661328.x86_64.bundle

  • eseguiamo il file con credenziali root ed accettiamo le EULA (con tasto “q” è possibile saltare direttamente alla richiesta di accettazione)

misterftth@test:/tmp$ sudo ./VMware-Workstation-Full-14.0.0-6661328.x86_64.bundle
Extracting VMware Installer...done.
You must accept the VMware Workstation End User License Agreement to
continue. Press Enter to proceed.

1.2 "Documentation" means that documentation that is generally

(…)

Do you agree? [yes/no]:

You must accept the VMware OVF Tool component for Linux End User
License Agreement to continue. Press Enter to proceed.

1.2 "Documentation" means that documentation that is generally provided to

(…)

Do you agree? [yes/no]:

 

 

 

 

 

 

  • scegliamo se abilitare la verifica degli aggiornamenti all’avvio del programma, configurazione utile soltanto nel caso di utilizzo in modalità grafica

Would you like to check for product updates on startup? [yes]:

  • scegliamo se aderire al VMware’s Customer Experience Improvement Program, non influenza né l’installazione né l’utilizzo del programma

Join the VMware
Customer Experience Improvement Program ("CEIP")? If you prefer not to
participate in VMware's CEIP for this product, you should select "No"
below. You may join or leave VMware's CEIP for this product at any
time. [yes]:

  • scegliamo l’utente abilitato alla gestione remota del server Workstation Pro tramite client, di base è utilizzato quello con cui siamo connessi al sistema, successivamente è possibile gestire i permessi in maniera granulare (soltanto in modalità grafica)

Please enter the user that will initially connect to Workstation
Server. Without setting this correctly, you will not be able to share
VMs with other users. Additional users and administrators can be
configured later in Workstation by selecting "Shared VMs" and clicking
"Permissions". [misterftth]:

  • scegliamo la cartella di destinazione delle VM condivise, vale a dire quelle che possono essere gestite in remoto dal client Workstation Pro

Please choose a directory for your shared virtual machines.
[/var/lib/vmware/Shared VMs]:

  • scegliamo la porta TCP da utilizzare per la connessione HTTPS al server Workstation Pro, necessaria per la gestione remota delle VM condivise

Please enter the port to use for https access to Workstation Server.
(HTTPS port:) [443]:

  • inseriamo la licenza, è possibile inserirla in seguito (senza registrazione il programma offre 30 giorni di valutazione gratuita con funzionalità complete)

Enter license key. (optional) You can enter this information later.:

  • confermiamo per procedere all’installazione

The product is ready to be installed. Press Enter to begin
installation or Ctrl-C to cancel.

Installing VMware Workstation 14.0.0
Configuring...
[######################################################################] 100%
Installation was successful.

 

La gestione via riga di comando offre il vantaggio di non richiede altro che un qualsiasi semplice emulatore di terminale, garantendo massime reattività e fruibilità, ma è bene chiarirne i limiti: a livello base è possibile gestire lo stato delle VM e configurarne le impostazioni, inoltre ad un livello avanzato è possibile configurare le impostazioni generali del programma ed i permessi di gestione delle VM condivise, non è invece possibile creare le VM (se non tramite scomodi workaround).
Di fatto una volta create le VM desiderate e configurati gli eventuali permessi aggiuntivi nel caso di quelle condivise è possibile accantonare l’interfaccia grafica.

I principali file di configurazione del programma sono contenuti in /etc/vmware (componente server) e ~/.vmware (componente client), mentre quelli delle VM nella directory di ogni singola VM.
Condividono tra loro la sintassi di compilazione e riportano in maniera trasparente le impostazioni imputate da interfaccia grafica, pertanto nel dubbio sulle modifiche da voler o poter apportare è possibile procedere per analogia e confronto applicando prima le modifiche da interfaccia grafica per poi valutare l’esito nei file di configurazione e decidere.
Sono modificabili tramite qualsiasi editor a riga di comando (la mia preferenza ricade su nano).

In /etc/vmware evidenziamo:

  • netmap.conf e networking
    definiscono la configurazione delle interfacce di rete virtuali
  • i file in ./vmnetX
    integrano la configurazione delle interfacce di rete virtuali
  • i file in ./ssl
    sono chiave e certificato SSL, sostituibili con i propri in modo da evitare il messaggio di sicurezza in fase di connessione remota alle VM condivise
  • ./hostd/authorization.xml
    definisce la configurazione dei ruoli e dei permessi per la gestione VM condivise
  • ./hostd/datastores.xml
    definisce il percorso di archiviazione delle VM condivise
  • ./hostd/vmAutoStart.xml
    definisce il comportamento delle VM condivise a fronte di avvio e spegnimento della macchina host
  • ./hostd/vmInventory.xml
    definisce l’inventario delle VM condivise disponibili sulla macchina host

Per attualizzare le modifiche manuali ai file di configurazione di rete è necessario riavviare il relativo servizio

sudo vmware-networks --stop ; sudo vmware-networks --start

e per attualizzare le modifiche agli altri file è necessario riavviare il processo del server VMware

sudo service vmware-workstation-server restart

In ~/.vmware evidenziamo:

  • inventory.vmls
    definisce l’inventario delle VM disponibili sulla macchina host
  • preferences
    raccoglie le impostazioni personalizzate dell’interfaccia grafica imputate nel menu Edit/Preferences

Le modifiche manuali a questi file vengono acquisite ad ogni avvio dell’interfaccia grafica, per evitare conflitti è bene eseguire le modifiche ad interfaccia grafica chiusa.

Nella dir di ogni VM – di base ~/vmware/$NomeVM per quelle non condivise e /var/lib/vmware/Shared VMs/$NomeVM per quelle condivise – evidenziamo:

  • $NomeVM.vmx
    definisce la configurazione della VM
  • $NomeVM.vmxf
    integra la configurazione della VM

Le modifiche manuali a questi file vengono acquisite ad ogni avvio della singola VM, per evitare conflitti è bene eseguire le modifiche a VM spenta.

E nella pratica?!
Da interfaccia grafica ho creato una libreria di VM, una per ogni sistema operativo guest di mio interesse, VM che mantengo aggiornate e che utilizzo come campione, evitando installazioni ex novo ogni qual volta ho necessità di ripristinare lo stato iniziale delle corrispettive VM attive (e per ambienti di test sono necessità frequenti…) : in questa maniera è sufficiente cancellare il contenuto della specifica directory $NomeVM di esercizio e copiarvi il contenuto della corrispettiva directory $NomeVM campione. Onde evitare di dover allineare i file di inventario, è necessario mantenere per le VM attive i nomi originari delle directory $NomeVM campione ed i nomi originari dei relativi file. Se vi è esigenza di gestire in esercizio più VM con il medesimo sistema operativo – VM che quindi dovranno necessariamente avere nomi directory/file univoci – è possibile utilizzare il comando clona disponibile da interfaccia grafica oppure procedere con la copia avendo cura di allineare manualmente tutti i riferimenti a directory/path/nomi nei file di inventory e nei file di configurazione delle VM.

Note finali:

  • il fratello minore VMware Player, che è scaricabile senza registrazione e può essere utilizzato gratuitamente senza limiti di tempo, offre le medesime principali funzionalità di virtualizzazione, ma con alcuni limiti nelle funzionalità secondarie (per esempio non consente l’abilitazione del server VNC per il controllo remoto delle VM né la condivisione delle VM)
  • se avete esigenza di utilizzare in remoto la console video nativa attraverso router/firewall assicuratevi di aprire anche la porta TCP 902
  • la prova di installazione utilizzata per l’articolo è avvenuta in ambiente virtuale nidificato: ho installato Workstation Pro in un ambiente Ubuntu server test in esecuzione all’interno dell’instanza Workstation Pro in esecuzione su host fisico, potendo così a tutti gli effetti eseguire VM appunto nidificate. Ciò grazie, scusate il gioco di parole, alla virtualizzazione delle istruzioni di virtualizzazione del processore.
    La corrispettiva impostazione nel file vmx è vhv.enable = "TRUE".
  • la directory di ogni VM contiene anche i file di log, il cui comportamento è modificabile sull base di alcuni parametri nel file vmx:
    logging = "FALSE" per disabilitare la funzione
    log.rotateSize = “dimensione massima espressa in byte”
    log.keepOld = “livello rotazione (0,1, n)”
    log.fileName = “/dir/nomefilelog”
  • per avviare una VM in modalità headless (quindi host privo di interfaccia grafica ed assenza di X11 forwarding) ricordatevi di posporre l’opzione nogui al comando vmrun /dir/$NomeVM/NomeVM.vmx
  • la guida utente ufficiale di Workstation Pro 14 è QUI

 

Per dubbi, curiosità, approfondimenti, segnalazioni eventuali lasciate un commento oppure contattatemi sul forum, arrivederci al prossimo appuntamento!

Copyright 2017 Tutti i diritti riservati.
La presente guida non può essere copiata, modificata, distribuita, con alcun mezzo senza l’esplicita autorizzazione dell’autore e dello staff de ilpuntotecnicoeadsl.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*