Cloud with rain
.:G
G:.
0 and 1 serie, black on white
pulled card
myjsp.feelinglinux.com
ver. 1.1.9-4
Hallo, welcome to my world.
Here you can find some stuff about computer science.
<<< Enjoy your visit! >>>
0 and 1 serie, white on black

Installazione Oracle VirtualBox e creazione di macchine virtuali

        Scritto: Giansante Gabriele, 12/10/2016     

- Cos'e' Oracle VirtualBox
- Installazione VirtualBox
- Creazione macchina virtuale con Linux CentOS (6.5)
- Lavorare in ssh sulla macchina virtuale

Cos'e' Oracle VirtualBox

VirtualBox e' una piattaforma di virtualizzazione completamente gratuita, mantenuta e sviluppata da Oracle.
Questa piattaforma viene installata su macchine reali (host) dove consente di creare macchine virtuali (guest) con diversi tipi di processore, hardware (dipendente comunque da quello del computer host) e vari sistemi operativi.
Ottima per effettuare test, esperimenti, ma anche per creare server o pc virtuali da usare per i piu' svariati scopi.
Ad esempio, le macchine virtuali, possono essere usate per (elenco non esaustivo)
  • sviluppare applicazioni per ambienti e sistemi operativi diversi
  • verificare le criticita' nella migrazione di applicazioni da una versione ad un'altra di un sistema operativo
  • risparmiare sui costi creando diversi server virtuali su un unica macchina host
  • testare sistemi operativi non conosciuti

In questo articolo si vedra' come installare velocemente VirtualBox su un PC con sistema operativo Windows 10. Volendo, potrebbe essere installata anche su altri sistemi operativi, come Linux.
Come semplice esempio di utilizzo, nella VirtualBox verra' creata una macchina virtuale (guest) dove sara' installato il sistema Linux CentOS 6.5.
La macchina virtuale ed il linux installato saranno poi configurati in modo da poter accettare connessioni tramite client SSH solo dal sistema host.

Lo scopo finale e' dare una minima idea di come iniziare con VirtualBox e di cosa ci si puo' fare.
Pubblicita'

Installazione VirtualBox

L'installazione e' abbastanza semplice.
Innanzitutto occorre procurarsi il software di installazione all'indirizzo
https://www.virtualbox.org/
In particolare, la versione che ho scaricato ed installato e' la "VirtualBox 5.1.6 for Windows hosts".
Cominciamo con l'installazione eseguendo il software scaricato.
Installazione, scelta package

Selezione package da installare
Fra i package in evidenza nello screenshot c'e', nella sezione "networking", il "VirtualBox Host-Only networking", importante in quanto consente di avere un'interfaccia di rete virtuale apposita per la comunicazione esclusiva fra l'host ed il sistema guest. E' molto utile, per esempio, in fase di testing se non si vuole avere la macchina virtuale aperta (visibile) al mondo intero.
Una volta scelti i package opportuni (si possono tranquillamente lasciare selezionati quelli di default) e deciso di procedere oltre (tasto "next"), arriva l'avviso che la connessione sulla scheda di rete verra' momentaneamente interrotta per essere ripristinata successivamente.
Avviso interruzione rete

Avviso interruzione rete
Sembra banale, ma bisogna fare attenzione ad eventuali shell remote, sessioni ssh, ecc. eventualmente aperte, dal momento che con molta probabilita' verranno chiuse o rese inattive (salvare ogni lavoro dipendente dalla connessione di rete).
Si puo' sempre annullare l'operazione e ricominciare di nuovo.
Durante le fasi successive potrebbe essere chiesto di installare il controller USB targato Oracle necessario all'utilizzo dei dispositivi USB lato host sulla macchina guest.
Installazione controller USB Oracle

Richiesta installazione controller USB Oracle
Non dovrebbero esserci ulteriori problemi, se cosi' vogliamo chiamarli.
Una volta terminata l'installazione, la VirtualBox e' pronta ad essere avviata.
Ecco come appare la schermata principale dell'applicazione alla sua prima esecuzione, quando ancora non sono state create macchine virtuali.
Primo avvio

Prima esecuzione VirtualBox
Creazione macchina virtuale con Linux CentOS (6.5)

Siamo pronti a creare la prima macchina virtuale, in pratica un vero e proprio "computer" configurabile a piacere dal punto di vista dell'hardware e del sistema operativo, sempre tenendo conto dei limiti della macchina host su cui e' installata la VirtualBox.

Per iniziare il processo di creazione della macchina virtuale, premere l'apposito pulsante "Nuova" in altro a sinistra (vedere ultimo screenshot del paragrafo precedente).
Stiamo creando una macchina virtuale completamente nuova, per cui i passi da seguire sono i seguenti:
  1. Configurazine macchina virtuale
  2. Creazione macchina virtuale
  3. Avvio macchina virtuale e installazione sistema operativo
Configurazine macchina virtuale

Appena premuto il pulsante "Nuova", si entrera' nella "modalita' guidata" di configurazione.
Nella modalita' guidata, la finestra e' semplice e consente di scegliere sia il tipo di sistema operativo che sara' installato (e' selezionabile addirittura un "raccapricciante" Windows 3.1) che il nome della macchina virtuale (nome che verra' usato per identificarla).
Premendo l'apposito pulsante, si puo' passare alla "modalita' esperta" (vedi prossimo screenshot) che espande la finestra mostrando anche le opzioni di configurazione della RAM e del disco fisso.
Modalita' esperta

"Modalita' esperta" di configurazione
Le opzioni di configurazione, quando possibile, mostrano i limiti fisici dell'hardware virtuale in base all'hardware del sistema host.
Per esempio, qui si nota come il sistema host possieda 8Gb di RAM, ma come ne siano selezionabili massimo 5Gb per stare tranquilli e far girare senza problemi il sistema guest al massimo delle potenzialita' sul sistema host. Non si tratta comunque di un limite vincolante.

Oltre alla CPU, e' possibile decidere se creare subito un disco fisso virtuale o, per esempio, usarne uno gia' creato in precedenza.
Ho stabilito che questa macchina virtuale avra' a disposizione 1Gb di RAM e che verra' creato un nuovo disco virtuale. La selezione della versione linux non ha una grande rilevanza, comunque ho scelto RedHat Linux in quanto alla fine CentOS non e' altro che un RedHat Linux.

Siamo pronti ad avviare la creazione (pulsante "Crea"). La creazione consiste nella configurazione del disco (abbiamo scelto di creare subito il disco virtuale) e nell'aggiunta alla lista dei dispositivi virtuali di un nuovo sistema con le caratteristiche che gli abbiamo dato oltre ad altre caratteristiche comuni stabilite in automatico (scheda di rete, scheda grafica, ecc.).
Configurazione disco virtuale

Configurazione disco virtuale
Il disco virtuale sara' simulato con uno o piu' file all'interno del filesystem della macchina host.
Si puo' decidere che tipo di file verra' generato, la sua dimensione (tenendo conto dello spazio libero sul filesystem host) ed il tipo di allocazione dello spazio (dimensione fissa o dinamica).
Non e' indispensabile che il file del disco virtuale sia collocato nel path predefinito, ovvero quello dove viene creata la cartella relativa alla configurazione della macchina virtuale (mi propone "C:\Users\<mioUtente>\VirtualBox VMs\Test_Centos6_64bit"). Potenzialmente, puo' essere situato in un hardisk fisico diverso. E' quello che ho fatto io nell'esempio, dal momento che il path che mi ha proposto si trova su un disco SSD a capacita' ridotta.
Configurato anche il disco virtuale, si procede alla preparazione del relativo file.
Preparazione disco virtuale

Preparazione disco virtuale
Ci mette un poco a seconda di come e' stato configurato il disco. Alla fine abbiamo la nostra macchina virtuale pronta all'uso a meno di qualche altra piccola configurazione.
Fine creazione macchina virtuale

Fine creazione macchina virtuale
Selezionando una macchina virtuale dall'elenco (qui se ne vede una sola) e' possibile, tramite i pulsanti in alto a sinistra, modificarne le opzioni ed avviarla. Fra le opzioni, alcune le vorremo modificare sicuramente, tipo (ma non solo)
  • aggiunta di una o piu' schede ethernet oltre a quella preconfigurata
  • modifica opzioni scheda video
  • modifica del numero di CPU assegnate (per i multi-core almeno una dovrebbe rimanere per il sistema host)
  • modifica dispositivi di sistema come il lettore ottico, ecc.
La macchina virtuale, a questo punto, dovrebbe essere stata inserita ed essere pronta all'uso.
Se proviamo ad avviarla con l'apposito pulsante (freccia verde verso destra), possiamo osservare il processo di boot in un'apposita finestra, come fosse uno schermo di un vero calcolatore. Ovviamente al momento non abbiamo ancora installato un sistema operativo ed otterremo un messaggio di errore con la richiesta di fornire indicazioni su un possibile disco di avvio per la macchina virtuale
Richiesta disco di avvio

Richiesta disco di avvio
Dovrebbe essere indicato un lettore ottico o qualsiasi altro supporto "reale" avviabile e contenente un sistema operativo installabile. Nel mio caso, "J" e' il lettore ottico del sistema host.
Veniamo al sistema operativo. Tempo fa ho scaricato dal sito
https://www.centos.org/
le immagini gratuite della distribuzione linux CentOS 6.5 e le ho masterizzate in due dvd. Utilizzero' questa per comodita', ma puo' essere utilizzata una qualsiasi altra distribuzione o altro sistema operativo.
Infilo il primo DVD nel lettore ottico e riavvio la macchina virtuale
Avvio installazione sistema operativo

Avvio installazione sistema operativo
Lo scopo di questo articolo non e' quello di mostrare come si installa un sistema operativo, quindi procedero' velocemente.
Ho seguito i seguenti passi:
  1. portato a termine l'installazione di linux CentOS 6.5
  2. rimosso il DVD e riavviato il sistema in modo da caricare linux della macchina virtuale
  3. configurato il sistema (ad eccezione dell'ssh che vedremo piu ' avanti)
  4. verificato con browser il funzionamento della connessione internet. Infatti, la rete funziona subito regolarmente, dopo aver fatto attenzione a modificare preventivamente la configurazione in modo tale da rendere attiva la scheda di rete di default
  5. aggiornato il sistema con "yum" (dopo gli update e' diventato CentOS 6.8)
Navigazione dalla macchina virtuale

Navigazione dalla macchina virtuale

Lavorare in ssh sulla macchina virtuale

Questo paragrafo e' opzionale e rispecchia solo una delle tantissime possibilita' di utilizzo di un sistema virtuale.
Utilizzando il sistema CentOS appena installato, viene qui descritto come disabilitare la scheda di rete principale e come aggiungere una seconda scheda abilitata esclusivamente alla comunicazione fra sistema host e sistema virtuale guest.
Lo scopo e' quello di essere in grado di lavorare tramite SSH sulla macchina virtuale usando questa seconda scheda di rete. Inoltre voglio che l'SSH lavori su una porta diversa da quella standard (es.33000, numero a caso), giusto per non farmi mancare nulla!
Pubblicita'
Per prima cosa bisogna spegnere la macchina virtuale, se e' accesa.
Selezioniamola nell'elenco e premiamo il pulsante "Impostazioni". Essendo la configurazione praticamente quella di default, dovremmo vedere, sotto "Rete", un'unica scheda impostata (Scheda 1). Questa scheda la disabiliteremo dopo da linea di comando.
Aggiungiamo una nuova scheda (Scheda 2). Abilitiamola ed impostiamo i seguenti valori
  • Connessa a: Scheda solo host
  • Nome: VirtualBox Host-Only Ethernet Adapter
Rete esclusiva host-guest

Rete esclusiva host-guest
Per abilitare l'SSH secondo le modalita' volute, abbiamo bisogno di procedere cosi':
  • determinare l'indirizzamento della eth1 (la nuova scheda creata)
  • aggiungere la regola al firewall per poter ricevere connessioni sulla porta 33000 e su eth1
  • modificare la porta dell'ssh da 22 a 33000
  • modificare la configurazione di eth1 per avere un IP fisso invece che dinamico con dhcp
  • riavviare e testare
Avviamo il sistema operativo della macchina virtuale ed apriamo un terminale.
Dal terminale digitiamo i seguenti comandi soffermandoci su ognuno di quelli numerati e sulle relative istruzioni
        [simpleuser@serverTest ~]# su - root
    (1) [root@serverTest ~]# ifconfig
    (2) [root@serverTest ~]# vi /etc/sysconfig/iptables
    (3) [root@serverTest ~]# vi /etc/ssh/sshd_config
    (4) [root@serverTest ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
        [root@serverTest ~]# reboot

Il comando (1) ci dice su che indirizzo e' stata configurata eth1. Dovrebbe essere un indirizzo del tipo "192.168.56.101" con maschera "255.255.255.0". Se cosi' fosse, sicuramente l'host dovrebbe avere un idirizzo del tipo "192.168.56.1" con maschera "255.255.255.0". Si puo' verificare l'IP della controparte host anche attraverso il comando "ipconfig /all" lanciato da linea di comando Windows (cmd).
Stabiliti gli indirizzi IP di host e guest, possiamo passare ai comandi successivi.

Il comando (2) ci consente di aggiungere una regola firewall apposita per consentire la comunicazione in ssh sul canale host-guest.
Cercare nel file "iptables" la regola relativa alla porta 22 (quella di default dell'ssh). Commentare la riga ed aggiungere
-A INPUT -p tcp -m tcp -s 192.168.56.1 -d 192.168.56.101 --dport 33000 -j ACCEPT
con cui informiamo il firewall che deve consentire la comunicazione in ingresso da parte del sistema host.

Il comando (3) permette di modificare la porta d'ascolto del demone ssh. La porta usata, la 33000, e' una porta a caso fra quelle disponibili.
Cercare la riga contenente
Port 22
scommentarla, se necessario, e sostituire al 22 (porta SSH di default) il numero 33000.

Infine, il comando (4) ci consente di assegnare all'interfaccia di rete eht1 un IP statico invece che uno dinamico acquisito tramite DHCP.
All'interno di "ifcfg-eth1", cambiare il valore di "BOOTPROTO" da "dhcp" a "none" ed aggiungere le proprieta' "IPADDR" e "NETMASK" come segue (lasciando invariato il resto).
    IPADDR=192.168.56.101
    BOOTPROTO=none
    NETMASK=255.255.255.0


Le modifiche sono state apportate, non rimane che eseguire il reboot e provare a connettersi in "ssh" al sistema virtuale.
Se tutto e' andato bene e ci si e' connessi tramite ssh, una volta dentro, si puo' disabilitare la "eth0" con il comando
    # /etc/sysconfig/network-scripts/ifdown eth0
In questo modo l'unico accesso al sistema sara' quello host-guest sulla eth1.
Per ripristinare la "eth0", eseguire
    # /etc/sysconfig/network-scripts/ifup eth0


Quanto visto rappresenta solo una minuscola parte delle potenzialita' offerte da VirtualBox.

Hai trovato utile questo articolo?
Aiutami a condividerlo o metti un "mi piace".
Grazie mille!


Gli strumenti di condivisione (Google+, Facebook) sono visibili in alto a destra solo dopo aver accettato la policy di utilizzo dei cookie per questo sito.
FAQ - Come faccio a cambiare la mia scelta?

 

Strumenti (myjsp.feelinglinux.com)
Gioco: allenamento con la tastiera Strumenti di codifica/decodifica URI (%-encoding) e Base64 Strumenti di calcolo online per IP e Reti
QUIZ GAME
Quiz game

Cerca @myjsp.feelinglinux.com

Pubblicita'