wiki:VmServer
Last modified 6 months ago Last modified on 04/14/14 13:17:45

The BOINC server virtual machine

This VM is for use as a BOINC server. It has all the BOINC server prerequisites installed, the BOINC software installed and compiled, and user accounts and permissions set up. It's ready to run ~/boinc-master/tools/make_project and go.

The VM image is for VirtualBox, an open-source VM system. It is a 64-bit image; you need a 64-bit processor to run it.

The OS is Debian 7 "Wheezy" (64-bit).

The BOINC software version is from 12 April 2014.

Download (477 MB)

Thanks to Christian Beer for creating this.

Notes:

  • The passwords can be found in the file README-vbox-image that is part of the zip file. The root (or su) password is 'rootpw'. There is a user account 'boincadm' with password 'boincadmpw'; build software under this account. Change these passwords immediately.
  • The BOINC software on this VM is not necessarily the latest version. If you want the latest version, run
    $ ~/update_master.sh
    $ ~/configure_server.sh
    $ ~/make_server.sh
    
  • The Linux/PHP/MySQL/Apache software on this VM is not necessarily the latest version. If you want the latest version, use 'apt-get update' and 'apt-get upgrade'. Please change the mirror locations in /etc/apt/sources.list before upgrading!
  • The "sudo" command is available as user "boincadm" and there is an OpenSSH server running by default.

Network Access

VirtualBox provides two ways to access the network from the VM: Bridged Ethernet and NAT (Network Address Translation). These are selected in the configuration section of the VirtualMachine. Please power down the VM before changing this value. We recommend that you start with Bridged Ethernet.

If you somehow change the MAC address of the VM (e.g. cloning the VM) you also have to edit the file /etc/udev/rules.d/70-persistent-net.rules after first startup of the VM. The file should look like this:

$ cat /etc/udev/rules.d/70-persistent-net.rules
 
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
 
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:bc:85:01", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
 
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:bc:85:02", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

delete the line that ends with NAME="eth0" and rename eth1 to eth0. Use the command:

$ sudo nano /etc/udev/rules.d/70-persistent-net.rules

restart the VM after this.

General info about network configuration under Debian is in the Debian Reference.

Bridged Ethernet

In this mode, the VM will act like a separate machine on your network. Scanning the network will reveal two machines, your host and the VM. Outgoing and incoming connections are possible.

We recommend that you give the VM a static IP address. To do this, edit /etc/network/interfaces. For example:

# The primary network interface
auto eth0

iface eth0 inet static
address 141.142.234.9
netmask 255.255.255.0
gateway 141.142.234.1
dns-search yourdomain.edu
dns-nameservers a.b.c.d

Where a.b.c.d is your DNS server IP address (you can supply more than one).

Edit /etc/resolv.conf to include

nameserver a.b.c.d

where a.b.c.d is the DNS server IP address

You should also add the IP address and hostname of the VM to your hosts file. To do this edit C:\Windows\system32\drivers\etc\hosts (if the host is Windows) or /etc/hosts (as root; if the host is Unix) with an editor, and add for example:

141.142.234.9 debian6.localdomain

With this you can connect a client from your host machine to your VM. If you're using a proxy to access the internet you should add 'debian6.localdomain' to your list of exceptions in your browser. You won't need a proxy to resolve a local address.

Alternatively, you can get an IP address via DHCP. We don't recommend this because clients will get confused if the IP address changes. To do this, edit /etc/network/interfaces to include:

iface eth0 inet dhcp

This will work if your network has a DHCP server configured to issue IP address to new hosts.

At this point, for the network changes to take effect, you may want to restart the Linux VM:

$ sudo reboot

NAT

In this mode, the VM shares the IP address of the host machine in order to make outgoing connections (access Internet sites from within the VM). Scanning the network will only reveal one machine. Incoming connections to the VM are generally not possible, so this mode is not recommended.

However, this limitation can be circumvented using port forwarding. To do this, use the VirtualBox Manager (Edit > Network), change the Attached to: option to NAT, click on Advanced then Port Forwarding. More information in Configuring port forwarding with NAT.