$ git clone https://github.com/mirage/mirage-vagrant-vms.git
$ cd mirage-vagrant-vms
This currently contains support for Ubuntu 14.04 LTS ("Trusty Tahr"), Ubuntu 14.10 ("Utopic Unicorn"), Debian 7.8.0 ("wheezy") and Citrix XenServer 6.5.0.
XenServer support imported from https://github.com/jonludlam/packer-xenserver.
First, install Oracle's Virtualbox. Download the appropriate installer for your platform from https://www.virtualbox.org/wiki/Downloads and follow the instructions.
Note that you need a reasonably recent version -- at time of writing, 4.3.4
has been observed to fail to build, while 4.3.26 has been observed to work.
Reports of other working or failing versions welcome! (Perhaps as pull requests
to this file in this repo :)
Next, install Vagrant. On OSX I use homebrew so I do this as follows:
$ brew tap phinze/cask
$ brew install brew-cask
$ brew cask install vagrant
$ vagrant --version
Vagrant 1.4.3
Then, install Packer. Again, using homebrew this becomes:
$ brew tap homebrew/binary
$ brew install packer
Build a new box using packer:
$ make {ubuntu-14.04,ubuntu-14.10,debian-7.8.0,xenserver-6.5.0}-box
Bring it up and provision it using vagrant:
$ make {ubuntu-14.04,ubuntu-14.10,debian-7.8.0,xenserver-6.5.0}-vagrant
Connect to it via ssh:
$ cd {ubuntu-14.04,ubuntu-14.10,debian-7.8.0,xenserver-6.5.0} && vagrant ssh
Finally, within a box, make sure you add ~/bin to your $PATH to use
0install installed binaries (specifically, opam).
Subsequently, vagrant halt will stop the VM (or the usual shutdown -h now
when logged into it), vagrant up will restart it, and vagrant ssh to login.
The following networking instructions need to be updated.
At the risk of this becoming a "general" Xen networking tutorial (as if such a thing were possible)...
virtualbox
[ dom0 ] [ mirage-domU ]
[ 100.64.0.2 ] [ 100.64.0.3 ]
[ vifN.0 ]
| |
+---[ xenbr0 ]---+
|
|
[ eth2 ]
|
|
On host:
vboxmanage list hostonlyifs
vboxmanage list dhcpservers
On dom0:
sudo xm network-list mort-www
network interface configuration. eth0-N, xenbr0
auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth2
bridge_stp off
bridge_waitport 0
bridge_fd 0
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto eth1
iface eth1 inet static
address 172.16.0.2
netmask 255.255.255.0
#VAGRANT-END
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto eth2
iface eth2 inet static
address 100.64.0.2 <*>
netmask 255.255.255.0 <*>
#VAGRANT-END
Lines marked <*> move to the xenbr0 config from the eth2 config, and the eth2 config marked as manual not static. This makes connection from dom0 to mirage-domU work.
DHCP server config. subnets from which addresses should be responded with.
subnet 100.64.0.0 netmask 255.255.255.0 {
range 100.64.0.2 100.64.0.254;
# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}