VirtualBox 4.0 on SME Server v8 beta 6

 

Description

Below are instructions on how to install VirtualBox version 4 on a fresh install SME Server v8 beta 6 and higher. Plus installing and configuring phpVirtualBox to control (create, edit, remove) your virtual machine on its web interface. In addition, scripts to automatically start the vbox service and the virtual machines in case of power failure can be found at the end of this article.

 

Requirements

Computer with SME server version 8 beta 6 and higher installed.

Installation

  1. Setup SME Server v8 beta 6.
  2. Do a yum update.
  3. yum update
  4. If any updates were applied, update and reboot the server.
  5. signal-event post-upgrade
    signal-event reboot
  6. Check your current kernel.
  7. uname -r
  8. Install kernel-devel to get the latest development tree.
  9. Use this command only if you have a PAE kernel installed:
    yum install kernel-PAE-devel kernel-headers
    Otherwise,
    yum install kernel-devel kernel-headers
  10. Check if the compiler (GCC) is installed. If not installed, install it.
  11. yum install gcc
  12. Update SME, and reboot again
  13. signal-event post-upgrade
    signal-event reboot
  14. Change your kernel boot options
  15. Optionally, for best results with SME 8.x and earlier versions, modify /etc/grub.conf, adding divider=10 to the kernel boot options in order to reduce the idle CPU load with VirtualBox. For example, if your kernel boot line is kernel /vmlinuz-2.6.18-238.19.1.el5 ro root=/dev/main/root change it to kernel /vmlinuz-2.6.18-238.19.1.el5 ro root=/dev/main/root divider=10

  16. Create a symbolic link
  17. NOTE: Be careful if you cut-and-paste the command below. In some terminal windows, from some browsers, the parts of the command in bold font do not paste correctly. Pay particular attention to the dashes (-) and the backticks (`). There aren't any single quote marks in the command below - they are all supposed to be backticks.
    ln –s /usr/src/kernels/`uname –r`-`uname-m` /lib/modules/`uname -r`/build
  18. Check that the symbolic link was properly created by doing a directory listing.
  19. NOTE: Be careful if you cut-and-paste the command below. In some terminal windows, from some browsers, the parts of the command in bold font do not paste correctly. Pay particular attention to the dashes (-) and the backticks (`). There aren't any single quote marks in the command below - they are all supposed to be backticks.
    ls /lib/modules/`uname -r`/build
  20. Install the Fedora Epel repository using the instructions on http://wiki.contribs.org/Epel.
  21. Install Dynamic Kernel Module Support (DKMS)
  22. yum install --enablerepo=epel dkms
  23. Install the VirtualBox repository using the instructions http://wiki.contribs.org/VirtualBox_Repository.
  24. Install VirtualBox (At the time of the last update to these instructions, the latest version was v4.1-2).
  25. yum install --enablerepo=virtualbox VirtualBox-4.1
  26. Review the VirtualBox installation log to ensure that the installation was successful.
  27. tail /var/log/vbox-install.log
  28. Remove the compiler install (for security best practices)
  29.  rpm -e gcc
  30. Update SME, and reboot again
  31. signal-event post-upgrade
    		signal-event reboot
  32. Setup VirtualBox as a service so it starts automatically after a reboot.
  33. cp /etc/rc5.d/S30vboxdrv /etc/rc7.d/.
    cp /etc/rc5.d/S35vboxballoonctrl-service /etc/rc7.d/.
    cp /etc/rc5.d/S35vboxweb-service /etc/rc7.d/.
  34. Create a ''vbox.cfg'' file on your /etc/vbox/.
  35. nano /etc/vbox/vbox.cfg
    vbox.cfg should have this content.
    VBOXWEB_USER='root'
    VBOXWEB_HOST=127.0.0.1
    VBOXWEB_PORT=18083
    Note: Without the vbox.cfg, vbox services on your rc7.d folder will not start.
  36. Login to the server-manager page and create an ibay for phpvbox.

    For instructions on how to create and configure an ibay, please see http://wiki.contribs.org/SME_Server:Documentation:Administration_Manual:Chapter14.

    After creating the ibay, do not forget to assign a password.
  37. Before we install [http://code.google.com/p/phpvirtualbox/ phpVirtualBox], make sure you install SOAP first.
  38. yum install php-soap
  39. Install phpVirtualBox
  40. cd /tmp
    wget `wget -q -O - http://phpvirtualbox.googlecode.com/files/LATEST.txt` -O phpvirtualbox-latest.zip
    unzip phpvirtualbox-latest.zip
    Note: at the time of the last update, the latest version was 4.1-2. Please adjust the following for later versions.
    cd phpvirtualbox-4.1-2
    cp –R * /home/e-smith/files/ibays/phpvbox/html
  41. Create a tmp folder inside the /phpvbox/html folder.
  42. cd /home/e-smith/files/ibays/phpvbox/html
    mkdir tmp
    chmod 777 tmp/
  43. Create a config file using the example file provided.
  44. cp config.php-example config.php
  45. Open ''config.php'' (located on your /phpvbox/html/ folder). Uncomment some lines (by removing the '#' at the beginning of the line).
  46. nano /home/e-smith/files/ibays/phpvbox/html/config.php
  47. Disable authentication of ''vboxwebsrv'' (this is not recommended, but at this stage, this is the only setup that works). Login to the server's SSH and type this command.
  48. vboxmanage setproperty websrvauthlibrary null
  49. Install VirtualBox extension pack to enable support for USB 2.0 devices, VirtualBox RDP and PXE boot for Intel cards. Please install the extension pack with the same version as your installed version of VirtualBox!

    You can find the extension packs here. The following commands download and install the extension pack for VirtualBox 4.1.2.

  50. wget http://download.virtualbox.org/virtualbox/4.1.2/Oracle_VM_VirtualBox_Extension_Pack-4.1.2-73507.vbox-extpack
    vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.2-73507.vbox-extpack
  51. Update SME, and reboot again
  52. signal-event post-upgrade
    signal-event reboot

    At this point, VirtualBox should now be configured and running correctly. To check this, we will now log into the ibay we created for phpVirtualBox and attempt to create a new virtual machine.If you encounter problems, please recheck that you have setup VirtualBox as a service so it starts automatically after a reboot, and that your vbox.cfg file is configured correctly. To manage VirtualBox and any virtual machines, use the command line utility VBoxManage. See VBoxManage --help . For a list of available switches for VBoxManage, see http://www.virtualbox.org/manual/ch08.html this list.

    Finally,

  53. Open a terminal window to the SME Server and create a directory to store the virtual machine images.
  54. mkdir -p /var/lib/VirtualBox/VMs
  55. Download the VirtualBox Guest Additions iso for later installation into your virtual machine guests.
  56. mkdir -p /var/lib/VirtualBox/addons
    cd /var/lib/VirtualBox/addons
    wget http://download.virtualbox.org/virtualbox/4.1.2/VBoxGuestAdditions_4.1.2.iso
  57. Using a web browser, go to http://yourdomain.com/phpvbox and connect to the phpVirtualBox web application.
    • From the menu provided, go to select File->Preferences.
    • Select the General tab.
    • Change the Default Machine Folder: to /var/lib/VirtualBox/VMs
  58. Creating a Virtual Machine

  59. Using a web browser, go to http://yourdomain.com/phpvbox to create your virtual machine.
    • Create a new virtual machine (e.g. vmXP)
    • Enable network card (either NAT or Bridged) so you can connect to your new VM console.
    • Open an RDP client (run->mstsc) then type your server's domain name (e.g. mydomain.com) or ip address e.g. (192.168.100.1)
  60. Install the VirtualBox Guest Additions iso into your newly setup VM.

Automatically Start Virtual Machine

  1. Edit your vbox file on /etc/sysconfig/
  2. nano /etc/sysconfig/vbox
    vbox code should look like this:
    # Virtual box machines to autostart
    # Example to start 2 machines
    #       VBOX_AUTOSTART = "MachineName1 MachineName2"
    
    VBOX_AUTOSTART="vmXP"
    
  3. Edit your vbox file located on /etc/init.d/
  4. #!/bin/sh
    #
    # chkconfig: - 91 35
    # description: Starts and stops vbox autostart VMs.
    
    ### BEGIN INIT INFO
    # Provides: vbox
    # Required-Start: $network $named $vboxdrv
    # Required-Stop: $network $named
    # Default-Start:
    # Default-Stop: 0 1 2 3 4 5 6
    # Short-Description: Autostart some Virtual Box VMs
    # Description: Autostart some Virtual Box VMs that are mentioned in /etc/sysconfig/vbox file
    # Written by Alex Amiryan
    ### END INIT INFO
    
    . /etc/rc.d/init.d/functions
    
    MANAGE_CMD=vboxmanage
    
    [ -r /etc/sysconfig/vbox ] && . /etc/sysconfig/vbox
    
    prog=$"Virtual Box Machines"
    
    start()
    {
            echo -n $"Starting $prog: "
            RETVAL=0
    
            for vbox_name in ${VBOX_AUTOSTART}
            do
                SERVS=1
                echo -n "${vbox_name} "
                daemon $MANAGE_CMD startvm "${vbox_name}" -type headless >/dev/null 2>&1
                RETVAL=$?
                [ "$RETVAL" -eq 0 ] || break
            done
            if [ -z "$SERVS" ]; then
                echo -n "no virtual machines configured "
                failure
                RETVAL=6
            else
                if [ "$RETVAL" -eq 0 ]; then
                    success $"vbox startup"
                    touch /var/lock/subsys/vbox
                else
                    failure $"vbox start"
                fi
            fi
            echo
            return "$RETVAL"
    }
    
    stop()
    {
            echo -n $"Shutting down $prog: "
            for vbox_name in ${VBOX_AUTOSTART}
            do
                echo -n "${vbox_name} "
                runuser root -c "$MANAGE_CMD -q controlvm "${vbox_name}" savestate" >/dev/null 2>&1
            done
            RETVAL=$?
            [ "$RETVAL" -eq 0 ] && success $"vbox shutdown" || \
                failure $"vbox shutdown"
            echo&2
            exit 3
            ;;
    esac
    

Vsmart Extensions

Call or email us now