-
Notifications
You must be signed in to change notification settings - Fork 128
Oz architecture
Oz was created to facilitate the automatic installation of operating systems. One of the key features of the design is that it always uses the native operating system tools to do installs. This ensures that after installation, the disk image that Oz leaves behind is exactly the same as if the installation CD had been used on a bare-metal machine.
Oz has the ability to do 3 major things:
- Install operating systems.
- Customize operating systems.
- Generate metadata (ICICLE) about operating systems.
The first operation that Oz can do is to install operating systems. By default, Oz has enough built-in knowledge to install minimal operating systems with little input. Oz just needs to be told which operating system to install, and where the installation media is, and it can do the rest. The steps that Oz goes through to do an operating system install are roughly:
- Download the installation media.
- Generate an automated installation file (e.g. kickstart, winnt.sif, etc).
- Generate a modified installation media that includes the installation file.
- Run the native installer in a KVM (or Qemu) guest.
- At the end of installation, shutdown the guest.
The second operation that Oz can do is to customize operating systems. In this case "customize" means to install additional packages and files into the operating system. This is always done as a separate step from installation for a few reasons:
- It reduces the chances of failure during the initial operating system install.
- It uses the native tools (yum, apt-get, etc) to do installation.
- It allows customization of operating systems that were not initially installed via Oz.
- Modify the operating system disk image to allow remote access.
- Start up the operating system in a tightly controlled KVM guest.
- Run remote commands (ssh, etc) to install packages and files.
- Shut down the operating system.
- Undo the changes done in step 1.