Skip to content
daleghent edited this page Nov 21, 2014 · 14 revisions

Building

The easiest way to build is to use vagrant. This will download a suitable base box and install prerequisites.

git clone [email protected]:mistifyio/mistify-os.git
cd mistify-os
git fetch
git checkout 20141121
vagrant up

Once the box is booted, you can vagrant ssh into it then run:

cd /vagrant
./buildmistify --builddir /home/vagrant/build \
               --buildroot /home/vagrant/buildroot \
               --buildroottag 20141121

Make sure the above is ran inside vagrant.

The build will take about 45 minutes depending on your hardware.

Testing

The build will produce a kernel and an initrd. This can be used to netboot. There is a helper script included that will produce an iso as well:

cd /vagrant
scripts/make-iso /home/vagrant/build/mistify/images mistify.iso

On the host side of vagrant, you can now burn this iso or boot a vm from it. Note, when using a VM you must use a product that supports nested virtualization. Vmware Fusion/Workstation does, but VirtualBox does not.

When using VMWare Fusion, for example, create a blank VM to boot from the iso with 1+ SCSI disks. When booting, enter y when asked about creating a Zpool.

The root password is LetMeIn2

The test script included in test/test-api.sh can be ran with the IP address of the new VM as its only argument. It requires curl and jq.

Known Issues

  • By default, the init scripts will setup all non-loopback interfaces for DHCP. For the tests to run, you should create a bridge named br0 and add interfaces to it.
  • On shutdown or reboot, you will get a warning that can be ignored for now: WARNING: could not determine run level
  • If an image fails to download, it will be stuck in the pending status. You can delete it to try again: curl -X DELETE http://<ip>:8080/images/<image-id>
  • Build takes a long time. Currently, we rebuild the build toolchain. In the future, we will cache it and possibly download on first build.
  • If not using vagrant to provision a build host, you need to install the packages that the vagrant provision would install.
  • The unmounting of filesystems during a reboot or halt is unclean

Notes

Clone this wiki locally