User Tools

Site Tools


virtualbox

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
virtualbox [2010/02/17 08:56] 172.26.0.166virtualbox [2010/07/04 20:05] 172.26.14.218
Line 1: Line 1:
-===== VirtualBox =====+====== VirtualBox ======
 VirtualBox is a free/opensource Hypervisor from Sun Microsystems.  It has performance on par with VMware and is very mature.  We have two virtualization servers, [[biovbox]] and biovboxtesting. VirtualBox is a free/opensource Hypervisor from Sun Microsystems.  It has performance on par with VMware and is very mature.  We have two virtualization servers, [[biovbox]] and biovboxtesting.
  
   * [[http://www.virtualbox.org|VirtualBox homepage]]   * [[http://www.virtualbox.org|VirtualBox homepage]]
 +  * [[http://ubuntuforums.org/showthread.php?t=646613|Tips to optimize Linux guests and hosts]]
 ===== Create a VM ===== ===== Create a VM =====
 Copy an ISO to your home directory: Copy an ISO to your home directory:
Line 50: Line 51:
 ==== Autostart VMs at host boot ==== ==== Autostart VMs at host boot ====
 ---- ----
-Two Methods: 
  
- * VBoxTool http://vboxtool.sourceforge.net/+How do I get my VirtualBox Guest VM’s to start and stop when the host system reboots, shutdown, or starts.
  
- * Script from http://www.kernelhardware.org/virtualbox-auto-start-vm-centos-fedora-redhat/+Solution / Answer:
  
-VBoxTool currently consist only of a set of scriptsWith this scripts, virtual  +Create an init.d script so that VirtualBox Guest VM are controlled as system service
-machines of VirtualBox in Linux headless server can be controlledStart, stop,  +VBoxTool http://vboxtool.sourceforge.net
-save, backup and show status of sessions in batch mode from the command line.+
  
-Usage and installation is tested only on UbuntuPlease report if a specific  +http://www.kernelhardware.org/virtualbox-auto-start-vm-centos-fedora-redhat
-function is not working in another environment, say OpenSUSE, Fedora, etc.+
  
-INSTALLATION+---- 
 +Create Config File for vboxcontrol service script 
 + 
 +<code># mkdir /etc/virtualbox</code 
 +<code># touch /etc/virtualbox/machines_enabled</code> 
 +The file “machines_enabled” located in “/etc/virtualbox” is where we list the names of the Guest VM’s that we want vboxcontrol to control. 
 + 
 +To get a list of your current Guest VM names execute the following command and notice the name is in ” “: 
 +<file> 
 +$ VBoxManage list vms 
 +"Centos_HDLES_x86_1" {5087b02a-5816-4c76-b302-c13175623023} 
 +"Centos_HDLES_x86_3" {bcae660a-f627-46d6-8c95-9da97363eeea} 
 +"Centos_HDLES_LAMP" {3907173c-cc15-4820-a930-f0bb3c13cb7e}</file> 
 +Add Guest VM’s to “machines_enabled” include one VM name per line 
 +<file> 
 +# vi /etc/virtualbox/machines_enabled 
 +Centos_HDLES_x86_1 
 +Centos_HDLES_x86_3 
 +Centos_HDLES_LAMP</file> 
 +Add VirtualBox VM Service script 
 + 
 +Create new init.d service script file and give execute permissions 
 + 
 +<code># touch /etc/init.d/vboxcontrol</code> 
 +<code># chmod 755 /etc/init.d/vboxcontrol</code> 
 +Copy the following code into file “/etc/init.d/vboxcontrol” 
 + 
 +<code bash> 
 +#! /bin/sh 
 +# vboxcontrol   Startup script for VirtualBox Virtual Machines 
 +
 +# chkconfig: 345 98 02 
 +# description: Manages VirtualBox VMs 
 +# processname: vboxcontrol 
 +
 +# pidfile: /var/run/vboxcontrol/vboxcontrol.pid 
 +
 +### BEGIN INIT INFO 
 +
 +### END INIT INFO 
 +
 +# Version 20090301 by Kevin Swanson <kswan.info> based on: 
 +# Version 2008051100 by Jochem Kossen <jochem.kossen@gmail.com> 
 +# http://farfewertoes.com 
 +
 +# Released in the public domain 
 +
 +# This file came with a README file containing the instructions on how 
 +# to use this script. 
 +
 + 
 +# Source function library. 
 +if [ -f /etc/init.d/functions ] ; then 
 +. /etc/init.d/functions 
 +elif [ -f /etc/rc.d/init.d/functions ] ; then 
 +. /etc/rc.d/init.d/functions 
 +else 
 +exit 1 
 +fi 
 + 
 +################################################################################ 
 +# INITIAL CONFIGURATION 
 +VBOXDIR="/etc/virtualbox" 
 +VM_USER="vmadmin" 
 +USE_NAT="no" 
 + 
 +export PATH="${PATH:+$PATH:}/bin:/usr/bin:/usr/sbin:/sbin" 
 + 
 +if [ -f $VBOXDIR/config ]; then 
 +. $VBOXDIR/config 
 +fi 
 + 
 +SU="su $VM_USER -c" 
 +VBOXMANAGE="VBoxManage -nologo"
  
-Note. Precede commands with 'sudo' when not operated as root.+################################################################################ 
 +# FUNCTIONS
  
-* Place the main script script/vboxtool in /usr/local/bin+# Determine if USE_NAT is set to "yes" 
 +use_nat() { 
 +if [ "$USE_NAT" = "yes" ]; then 
 +return `true` 
 +else 
 +return `false` 
 +fi 
 +}
  
-* Make vboxtool executable:  +log_failure_msg() { 
-    chmod +x /usr/local/bin/vboxtool+echo $1 
 +}
  
-* Place the init script script/vboxtoolinit in /etc/init.d+log_action_msg() { 
 +echo $1 
 +}
  
-* Make vboxtoolinit executable:  +# Check for running machines every few seconds; return when all machines are 
-    chmod +x /etc/init.d/vboxtoolinit +# down 
-   +wait_for_closing_machines() { 
-* Activate the init script vboxtoolinit: +RUNNING_MACHINES=`$SU "$VBOXMANAGE list runningvms" | wc -l` 
-    update-rc.d vboxtoolinit defaults 99 10 +if [ $RUNNING_MACHINES != 0 ]; then 
-   +sleep 5 
-* Create a folder /etc/vboxtool. In here, two config files have to be created, see +wait_for_closing_machines 
-  configuration section below, type 'vboxtool help' for more instructions. +fi 
-   +}
-Note. To remove vboxtoolinit from autostart: update-rc.d -f vboxtoolinit remove+
  
-CONFIGURATION+################################################################################ 
 +# RUN 
 +case "$1" in 
 +start) 
 +if [ -f /etc/virtualbox/machines_enabled ]; then
  
-NoteConfiguration from vboxtool does *not* taking place on *running* sessions,  +cat /etc/virtualbox/machines_enabled | while read VM; do 
-so save or stop all sessions before issueing the autostart command.+log_action_msg "Starting VM: $VM ..." 
 +$SU "$VBOXMANAGE startvm "$VM" -type vrdp" 
 +RETVAL=$? 
 +done 
 +touch /var/lock/subsys/vboxcontrol 
 +fi 
 +;; 
 +stop
 +# NOTE: this stops all running VM's. Not just the ones listed in the 
 +# config 
 +$SU "$VBOXMANAGE list runningvms" | while read VM; do 
 +log_action_msg "Shutting down VM: $VM ..." 
 +$SU "$VBOXMANAGE controlvm "$VM" acpipowerbutton" 
 +done 
 +rm -f /var/lock/subsys/vboxcontrol 
 +wait_for_closing_machines
  
-Create /etc/vboxtool/machines.conf: +;; 
-    <session name>,<VRDP-port>+start-vm) 
 +log_action_msg "Starting VM: $2 ..." 
 +$SU "$VBOXMANAGE startvm "$2" -type vrdp" 
 +;; 
 +stop-vm) 
 +log_action_msg "Stopping VM: $2 ..." 
 +$SU "$VBOXMANAGE controlvm "$2" acpipowerbutton" 
 +;; 
 +poweroff-vm) 
 +log_action_msg "Powering off VM: $2 ..." 
 +$SU "$VBOXMANAGE controlvm "$2" poweroff" 
 +;; 
 +status) 
 +echo "The following virtual machines are currently running:" 
 +$SU "$VBOXMANAGE list runningvms" | while read VM; do 
 +echo -n "$VM (" 
 +echo -n `$SU "VBoxManage showvminfo ${VM%% *}|grep Name:|sed -e 's/^Name:s*//g'"` 
 +echo ')' 
 +done 
 +;; 
 +*) 
 +echo "Usage: $0 {start|stop|status|start-vm <VM 
 +name>|stop-vm <VM name>|poweroff-vm <VM name>}" 
 +exit 3 
 +esac
  
 +exit 0
 +</code>
 +Add vboxcontrol service to chkconfig registry
  
 +<code># chkconfig --add vboxcontrol</code>
 +Tell chkconfig to create symlinks for runlevels and activate service vboxcontrol
  
 +<code># chkconfig vboxcontrol on</code>