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