/ovirt-node

This is a mirror for http://gerrit.ovirt.org, for issues use http://bugzilla.redhat.com

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

Some notes on node image deployment

Nodes are provided in ISO format.  These ISO images can be deployed by either:
1. Writing the image to a CD
2. Writing the image to USB flash using livecd-iso-to-disk utility
3. Creating pxe bootable files using livecd-iso-to-pxeboot utility

To burn a Node image to a usb stick accessible as /dev/sdb:
livecd-iso-to-disk --format /usr/share/ovirt-node-image/ovirt-node-image.iso /dev/sdb

To create vmlinuz and initrd images suitable for pxe booting:
livecd-iso-to-pxeboot /usr/share/ovirt-node-image/ovirt-node-image.iso

The output of livecd-iso-to-pxeboot is a directory called tftpboot that has the
following files in it:
./pxelinux.0
./pxelinux.cfg/default
./vmlinuz0
./initrd0.img

The vmlinuz0/initrd0.img files can be imported into a cobbler server or any
other PXE/tftp server.  pxelinux.cfg/default provides a template for
configuring the pxe server to export the Node image:

DEFAULT pxeboot
TIMEOUT 20
PROMPT 0
LABEL pxeboot
      KERNEL vmlinuz0
      APPEND rootflags=loop initrd=initrd0.img root=/ovirt-node-image.iso rootfstype=auto ro liveimg check rootfstype=iso9660 elevator=deadline
ONERROR LOCALBOOT 0

In addition, PXE booted Nodes rely on the PXE server passing the mac address
of the pxe interface to the kernel.  This is provided by using the IPAPPEND 2
parameter as follows:

DEFAULT pxeboot
TIMEOUT 20
PROMPT 0
LABEL pxeboot
      KERNEL vmlinuz0
      IPAPPEND 2
      APPEND rootflags=loop initrd=initrd0.img root=/ovirt-node-image.iso rootfstype=auto ro liveimg check rootfstype=iso9660 elevator=deadline
ONERROR LOCALBOOT 0

THE DRY MODE
============================
oVirt Node provides a way to simulate/debug the installer or the menu setup without need to generate an iso, it's possible use
RHEL/Centos/Fedora based distro, this schema is called the 'dry mode'.

First, clone the repo, install needed packages and create default ovirt file:
    $ git clone git://gerrit.ovirt.org/ovirt-node
    $ cd ovirt-node
    $ sudo yum install PyPAM cracklib-python python-gudev python-urwid python-augeas python-lxml -y
    $ sudo touch /etc/default/ovirt

RHEL/CentOS <= 6
============================
Simulating the installer locally:
    $ovirt-node> cd src
    $ovirt-node/src> python -m ovirt.node.installer.__main__ --debug --dry

Simulating the setup locally:
    $ovirt-node> cd src
    $ovirt-node/src> python -m ovirt.node.setup.__main__ --debug --dry

Fedora or CentOS/RHEL >= 7
============================
Simulating the installer locally:
    $ovirt-node> cd src
    $ovirt-node/src> python -m ovirt.node.installer --debug --dry

Simulating the setup locally:
    $ovirt-node> cd src
    $ovirt-node/src> python -m ovirt.node.setup --debug --dry

Log available at:
    /tmp/ovirt-node.debug.log