## About

Cuni installs unix network installers. The aim of cuni is to
be able to install any unix from any unix via network:

 * cuni creates a structure usable for PXE-networkbooting and installing

To make use of what cuni provides, you need to run a tftp server
to be able to install clients over the network.

Cuni is a very basic infrastructure tool and helps you to setup
and upgrade install servers.

## Using cuni

Type ***cuni*** and read the usage description.

### Getting cuni

    git clone git://git.schottelius.org/cuni

## Using the unix installers

Most unix installers have different semantics for execution.
Some of them are able to do automatic installations, some of
them even need a hint on what to boot from where.

It is planned to make this information available directly in
cuni, but until then, examples on how to use them are provided
here:

### Debian/Ubuntu

 * Can be automated using Preseed

Syslinux sample code:

    LABEL debian_lenny_amd64
      MENU LABEL Debian Lenny amd64
      KERNEL syslinux/pxechain.com
      APPEND ::debian/amd64/lenny/pxelinux.0

### OpenBSD

Syslinux sample code:

    # works, needs "openbsd/bsd.rd"
    LABEL openbesdtest
       MENU LABEL OpenBSD
       KERNEL syslinux/pxechain.com
       APPEND ::openbsd/pxeboot


## Adding a new OS installer

Assume, you want to add support for the installer of OS "kroet", which requires
the arguments "version" and "arch".

    * Define arguments needed
    kroet_args="version arch"

    # Add code here, that is executed in the destination directory
    cuni_kroet()
    {
      # MUST Define ddir: subdirectory which contains the actual installer
      ddir="${arch}/${version}"

      # MUST Define bootfile: file that should be booted
      bootfile="$ddir/pxelinux.0"

      # create os specific directory structure
      # get os specific installer
    }

## Testing a new OS installer

You can test the new installation with qemu for example:

    qemu-kvm -boot n -net nic -net user,hostname=cunitest,tftp=/home/services/tftp/root,bootfile=/pxelinux.0
