giovedì 17 marzo 2011

AVVIO AUTOMATICO DI PIU' MACCHINE VIRTUALI - VIRTUALBOX -DEBIAN 6 SQUEEZE

Installando virtualbox su una debian 6 "squeeze" mi è capitato di dover avviare al boot del sistema le macchine virtuali create.
Ho fatto qualche ricerca ed ho trovato degli script shell da inserire nella cartella /etc/init.d per avviare come servizio la virtual machine creata, ma con scarsi risultati..
Alla fine ho risolto editando il file /etc/rc.local inserendo le seguenti righe prima di exit 0:

sudo -u utente /usr/lib/virtualbox/VBoxManage startvm "nome_virtual_machine1" --type headless
sudo -u utente /usr/lib/virtualbox/VBoxManage startvm "nome_virtual_machine2" --type headless

sostituendo ad utente il nome dell' utente ed i relativi privilegi con cui si vuol far girare la macchina, ed a nome_virtual_machine1 il nome dellla macchina da avviare (lasciando le virgolette).
Basta inserire una riga per ogni macchina che si vuole avviare.
Questo fa si che al boot parta la macchina virtuale senza alcuna finestra grafica o terminale (headless) nel desktop, in background, si consiglia quindi di avviare una macchina con desktop remoto attivo o con almeno un server ssh in esecuzione.
Se volete fermare la macchina senza killarla brutalmente, potete dare da qualsiasi terminale il comando:
VBoxManage controlvm "nome_virtual_machine1" savestate
,questo salverà lo stato della macchina spegnendola, potrete cosi' effettuare le vostre modifiche e riavviarla.

10 commenti:

  1. Grazie mi è tornato davvero utile!

    RispondiElimina
  2. felice d'esserti stato d'aiuto, a presto !

    RispondiElimina
  3. e se volessi far partire il terminale grafico della macchina?

    Io ho provato ad inserire in un bash il comando con l'opzione --type gui o sdl...ma la vm viene avviata e stoppata immediatamente....cosa che da terminale non avviene.... :( :( :(

    RispondiElimina
  4. La soluzione migliore consiste nell' installare "ssh server" sulla macchina in cui vuoi il terminale, e connetterti sia dallo stesso pc che fa girare le macchine virtuali, che con gli altri in rete semplicemente digitando: ssh Utente@IndirizzoMacchina
    Spero di esserti stato utile.
    ..ps: ok l'anonimato ma almeno con un nome ti puoi presentare..
    a presto, ciao.

    RispondiElimina
  5. Scusami! :-/ E' vero almeno il nome potevo metterlo!!

    Sono Alessandro.

    Si,chiaro un ssh è sempre meglio...ma purtroppo è una macchina 2003 server...e per non creare troppi problemi ad altri tecnici meno esperti avevo bisogno che si aprisse anche la parte grafica.

    Cmq la magica tecnologia dopo alcune prove ha deciso di aprirmi la parte grafica!! :-)

    Il comando alla fine del bash che ho creato è quello hai postato tu con l'opzione --type gui

    "VBoxManage startvm Server2003-R2 --type gui"
    "sleep 20"

    Forse lo sleep gli dà il tempo di avviarsi...bah...ti dico solo che ho lanciato lo stesso comando per circa 15 volte...poi per magia...si è deciso a lasciarla partire!!

    Grazie!

    Alessandro

    RispondiElimina
  6. ok, non avevo capito quello che intendevi...
    cmq grazie per l'apporto.
    a presto ciao!
    max

    RispondiElimina
  7. Ciao sono roberto...
    volevo sapere una curiosita .. allo spengimento del "server" la macchina virtuale avviata in precendeza come si spenge?

    RispondiElimina
  8. Ciao Roberto, allo spegnimento del server e' il demone di virtualbox che si occupa di fare lo shutdown della macchina, ovvio che se stacchi brutalmente la corrente questo non viene effettuato. A presto ciao

    RispondiElimina
  9. ciao M@x grazie per la tua risposta ... no , ponevo la domanda perche controllando i tempi mi sono accorto che se spengo la macchina virtuale avviata graficamente con la procedura standard (avvio chiudi sesseeione ecc.. - o utilizzando il comando poweroff) ci mette per lo meno 1-2 minuti, invece spengendo il server ci mette molto molto meno ...

    RispondiElimina
  10. Beh.. l'unica cosa che mi viene da pensare è che quando fai shutdown della vm con server operativo probabilmente ha carico di lavoro da gestire e per questo è più lento, mentre, quando spegni tutto il server magari dei processi sono già down e ci mette di meno; ma è una supposizione, se qualcun altro ha idee in merito, benvenga..

    RispondiElimina