metztli

NAME
SYNOPSIS
DESCRIPTION
FEEDBACK
AUTHOR
SEE ALSO

NAME

metztli - a set of shell scripts to bootstrap openSUSE installation

SYNOPSIS

stage_1.sh CONFIGDIR [TARGETROOT]

stage_2.sh CONFIGDIR TARGETROOT

stage_3.sh CONFIGDIR TARGETROOT

stage_4.sh CONFIGDIR TARGETROOT

stage_m.sh CONFIGDIR TARGETROOT IMAGENAME

stage_u.sh CONFIGDIR TARGETROOT

DESCRIPTION

metztli is an analogue of debootstrap tool for openSUSE that is implemented by means of a set of shell scripts. It was found useful despite of existance of more powerful kiwi tool.

metztli installs openSUSE system from scratch into selected directory or mounted disk image. The default installation consists of the base package set but it is also possible to define a package set to install. Moreover metztli can part disk image for you and mount the partitions. Execution of custom scripts in chroot environment to final customize of installed system is also possible.

metztli consists of several scripts stage_?.sh that should be executed successively. You also need a configuration tree for installation. The configuration tree consists of files stage?.conf and also one directory stage_4. You can find examples in config directory. Please consult to it.

A description of the configuration tree.

stage_1.conf contains a list of repositories that will be used for installation.

stage_2.conf contains variables PREINSTALL and RUNSCRIPTS A set of neccessary packages is defined by means of them. Probably you don’t need to change it but you can consult to file /usr/lib/build/configs/*.conf from build package.

stage_3.conf contains variable INSTALL that defines a list of packages to install (it is merged with PREINSTALL list). You can add any package that can be found in repositories defined in stage_1.conf

stage_5.conf is optional for case when partitioner isn’t used.

stage_4/root contains the files that will be copied to ready root tree. It is useful to store configuration files for the system.

stage_4/scripts contains scripts that will be executed in chroot of ready root tree. It is useful for running insserv, useradd, depmod, etc...

How does it work.

stage_m.sh is an optional stage. When you run it, the script creates the disk image file IMAGENAME then parts it as described in CONFIGDIR/stage_5.conf and mount partitions to TARGETROOT.

stage_u.sh is for umounting.

stage_1.sh initializes repositories listed in CONFIGDIR/stage_1.conf at TARGETROOT tree. zypper packaging tool is used in this version.

stage_2.sh downloads and unpacks the packages listed in PREINSTALL variable. It also creates device files. You need superuser privileges to run this script. After the execution was completed TARGETROOT is ready for package installation because it contains all of needed scripts, tools and files (like /bin/bash or /dev/null). Is is important for running preinstall/postinstall scripts of packages.

stage_3.sh performs overall installation of all packages listed in INSTALL. You need superuser privileges to run this script.

stage_4.sh copies the config files from CONFIGDIR/stage_4/root and executes the scripts from CONFIGDIR/stage_4/scripts in TARGETROOT chroot. You need superuser privileges to run this script.

What is next

You can use your just installed system for running something in chroot or run it in virtual machine. Use grub documentation to learn how to configure bootloader from the postinstall scripts.

FEEDBACK

Please send your questions, patches and any feedbacks to

matwey.kornilov (at) gmail.com

AUTHOR

Matwey V. Kornilov (matwey.kornilov (at) gmail.com)

SEE ALSO

kiwi