Getting started

The following steps will tell you how to build and install the Node image into a VM for testing.

Prerequisities

Node is mainly developed on rpm based distributions like Fedora and CentOS 7. The main requirements are:

  • git
  • qemu
  • python
  • python-requests
  • python-pep8
  • pyflakes
  • python-nose
  • python-sh
  • libguestfs
  • libguestfs-tools
  • libvirt-python
  • lorax
  • virt-install

Bootstrap

The starting point is the ovirt-node-ng which is currently living in the ovirt-node-ng repository:

git clone git://gerrit.ovirt.org/ovirt-node-ng.git
git submodule update --init --recursive

Building the image

To build the ovirt-node-ng-image.squashfs.img image from the ovirt-node-ng-image.ks you now just need to run the following command and be patient:

# To build the squashfs image (liveimg):
make squashfs

NOTE: This will download a lot of packages from the internet

The now available squashfs image can not directly be booted. It can only be fed to dracut for booting, or to anaconda for installation.

Installing and booting the image

To be able to boot the squashfs, you first need to install it. This can be done by running:

make installed-squashfs

This will install the previously generated squashfs image to the installed-ovirt-node-ng-squashfs.raw disk image. The auto-installation ensures that LVM Thin is used, otherwise the upgrade and rollbacks would not work.

This disk image can be booted in KVM and used for debugging and testing.

NOTE: A root password can be set in the ci-image-install.ks kickstart before the install.

Making Changes

The appliance image itself is defined by the ovirt-node-ng-image.ks file. Any change to that file will lead to a change in the appliance.

Note that some changes (i.e. root password) might be overriden or deactivated at installation time by directives in the ci-image-install.ks

Once you did a change you can commit the change and post it to oVirt Gerrit for review.