New bloody for Apr21.

4 days ago by danmcd
Page History
  1. Installing OmniOS 
  2. Quickstart 
  3. From CD/iso 
  4. From USB 
  5. Using Vagrant 
  6. In the Cloud 
  7. From the network 
  8. Set up a Kayak server 
  9. Set up a Kayak client config 
  10. Install a client 
  11. In A Non-OmniOS Environment 
  12. Post-Install 

Installing OmniOS #

OmniOS is designed to be run on server class systems rather than laptops or generic workstations. You may have luck with this hardware, but there is a good chance you will find your hardware unsupported.

A list of supported hardware is on the illumos Hardware Compatibility List

If you find yourself with hardware for which drivers are not present in the standard release, you may install drivers yourself by dropping out to a shell and installing the drivers manually. Please note that while the installation menu offers a selection for installing additional drivers, this functionality is not present in the OmniOS installer, and will be removed shortly.

Quickstart #

  • Vagrant Boxes
  • If you're using vagrant <= 1.2.2, this requires the vagrant-guest-omnios plugin (vagrant plugin install vagrant-guest-omnios)

From CD/iso #

  • Get the ISO file for the desired release:
    • Current stable release (r151020, omnios-r151020-4151d05):
      md5 (OmniOS_Text_r151020.iso) = 108ca2652973ed7bb4e06a68178327c1
      sha1 (OmniOS_Text_r151020.iso) = 06c2e262e1f3eacf59b29951ab524f34f48432ef
    • LTS release (r151014, omnios-2fb9a48):
      md5 (OmniOS_Text_r151014.iso) = 7af7045aa9f7f35f04cbc875c280a49e
      sha1 (OmniOS_Text_r151014.iso) = b8e50b0b9a1134fffac471042c328700e3269c79
    • Bloody release (r151021, omnios-master-c561ad5255):
      md5 (r151021-20170421.iso) = 04f6d243ef7024dcce26f34dd3931578
      sha1 (r151021-20170421.iso) = 9af83fb3b7f12d5eb8d73d331ebb4776f8bdb14a
      sha256 (r151021-20170421.iso) = fcb612aef41bdf038ebd246c6dc955f4e19072bbb7d3050f4a2cee59a72958ec

NOTE: The Bloody ISO is now using the Kayak Interactive Installer. It also has a new naming scheme and more checksums. Do not follow the directions below, but follow those on the Kayak Interactive Installer page.

  • Boot the disk and follow the directions. Aside from selecting a disk on which to install and a timezone, there are no options (to modify rpool creation options for an ISO install, see ISO install rpool customization). All configuration of the system happens on first boot by you: the administrator. You use the same tools to initially configure the machine as you would for ongoing maintenance.
  • The system installs a root user with a blank password. This makes logging in via console supremely simple and logging in remotely simply impossible. Once you've logged in the first time, you can set a root password with the passwd command. If you wish, enable remote root login via ssh by editing the /etc/ssh/sshd_config file and changing the PermitRootLogin option to yes; do so at your own risk.

From USB #

  • Like CD images, your choices are current stable, LTS, or bloody:

NOTE: The Bloody USB image is now using the Kayak Interactive Installer. It also has a new naming scheme and more checksums.

These images may be written to your USB drive with dd, like so:

dd if=/path/to/image.usb-dd of=/path/to/device bs=1M

Where /path/to/device is the base device (e.g., /dev/sdc in Linux, /dev/disk2 in MacOS X, and /dev/rdsk/c0t0d0p0 in illumos. It's very important that you use rdsk instead of dsk; your USB won't boot otherwise!)

Boot and follow the same directions as for CD/iso above (including the Kayak Interactive Installer for bloody).

Using Vagrant #

Vagrant is a system for managing and provisioning virtual machines with tools like Chef, Ansible, and Puppet. It's an easy way to try out an OmniOS system.

Unless otherwise noted, all baseboxes feature:

  • 40 GB disk allocated as a single zpool.
  • Vagrant default insecure ssh keys, with password-less sudo.
  • omniti-ms publisher.

To use OmniOS Vagrant baseboxes, we strongly recommend that you refer to boxes we provide through the Atlas catalogue. Only the baseboxes provided under the omnios/ namespace are official. We use a standard naming scheme for all of our baseboxes, which is simply the release number or name. Thus, our current LTS release's basebox is named omnios/r151014 and the bloody release is omnios/bloody.

OmniOS Baseboxes on Atlas

Our baseboxes also use a semantic versioning scheme where the major version is the release number (minus the "r"), the minor version is the ISO install media sequence number, and the patch version is incremented whenever we create a new basebox from the same ISO install media (generally for minor fixes or updates to pre-installed packages). Our bloody release's basebox is the only exception, since it has no release number - instead, the basebox version is simply the $year.$month.$day of the bloody install media from which the basebox was created.

Getting started with one of our baseboxes is as simple as (shown here for r151014):

$ vagrant init omnios/r151014
$ vagrant up

Please note that we no longer provide Chef Solo as part of the default install on any of our baseboxes, and instead recommend using the shell provisioner to bootstrap your choice of configuration management tools. Additionally, beginning with our baseboxes for r151014, we no longer install (or support) VirtualBox Guest Additions due to incompatibilities.

In the Cloud #

NOTE: Be sure to consult here to know how to find a community AMI, like ours.

OmniOS AMI names are of the form:
"OmniOS <release> <LTS/stable> <optional non-default setting> <AMI creation date: YYYYMMDD>"
We provide the AMI Names below. (Note that AMI IDs are specific to region.)

Amazon Public AMIs for r151006

Region AMI Name
all regions OmniOS r151006 LTS 20160520

Amazon Public AMIs for r151014

Region AMI Name
all regions OmniOS r151014 LTS 20170407
all regions OmniOS r151014 LTS OpenSSH 20170407

Amazon Public AMIs for r151020

Region AMI Name
all regions OmniOS r151020 Stable 20170407

From the network #

The Kayak network installer enables installation over a network utilizing PXE, DHCP and HTTP. It is a replacement for Solaris Automated Installer (AI) that delivers some new features:

  • Support for mirrored rpool
  • ZFS compression on by default for rpool
  • Installation image delivered as ZFS dataset

Kayak comes with a working boot kernel and miniroot, but you will need to create the installation image yourself.

Set up a Kayak server #

  • Install Kayak server and kernel files:
    sudo pkg install system/install/kayak system/install/kayak-kernel service/network/tftp
  • (r151014 and earlier) Activate TFTP server by adding the following line to /etc/inetd.conf and running the "inetconv" command. This will create an SMF service, network/tftp/udp6. Note that "udp6" nevertheless serves BOTH IPv4 and IPv6.
    tftp    dgram   udp6    wait    root    /usr/sbin/in.tftpd      in.tftpd -s /tftpboot
  • (r151016 and later) Activate the TFTP server (note that "udp6" nevertheless serves BOTH IPv4 and IPv6):
    sudo svcadm enable tftp/udp6:default
  • Activate the Kayak service. This provides an HTTP server which serves files from /var/kayak/kayak. Client installation logs will be uploaded to /var/kayak/logs. Available installation images, client configs and logs will be visible from the main index page.
    sudo svcadm enable svc:network/kayak:default
  • Fetch the ZFS installation image. This is a ZFS root filesystem from a default installation. During Kayak installation this is decompressed and received to create the local root filesystem. Save the bzip file to /var/kayak/kayak. It should appear under "Available Images" on your server's index page.
  • If this is not the same OS version as your kayak host, you may need to update /tftpboot/boot/grub/menu.lst to include your new image.
  • (OPTIONAL) Create the installation image if you don't wish to use the one provided. This requires a ZFS dataset to act as a container for the image. The image will be placed in /var/kayak/kayak as <release>.zfs.bz2 Note that because this step manipulates kernel drivers as part of building the image, it must be run in the global zone. If you want to use a non-global zone as your Kayak server, you can do the build step on a global zone and copy the file to the Kayak server.
    sudo zfs create rpool/kayak_image
    cd /usr/share/kayak
    sudo gmake BUILDSEND=rpool/kayak_image install-web

With a little reorganization, you can also serve multiple OS releases from one Kayak server

TODO: show how to customize the installation image above and beyond the "entire" incorporation.

Set up a Kayak client config #

Kayak client configs are snippets of bash script that get executed during installation.

  • On your Kayak server, copy /usr/share/kayak/sample/000000000000.sample to a file in /var/kayak/kayak with a name matching the hex values of the client's MAC address in all caps, e.g. "010203ABCDEF".
  • Edit this file as needed. See the client documentation for details on the possible settings.

Install a client #

Configure your DHCP server to direct the client to the Kayak server's address and set the boot file to be "pxegrub".

If you are using ISC DHCP, the entry for your host might look like:

host installz {
  filename "pxegrub";
  option host-name "installz";
  hardware ethernet 01:02:03:AB:CD:EF;

Where next-server is the IP of your Kayak server.

PXE-boot the client. To avoid an endless loop of installation, do not make network the default boot device. Most server firmware allows a certain keypress to modify the boot order temporarily, such as F11 or F12.

The installer will attempt to bring up all available network interfaces and will attempt DHCP configuration on all of them in parallel. If your system is connected to multiple networks that contain DHCP servers, you may get undesirable results.

If the installation succeeds, the client reboots unless NO_REBOOT is set in the client config. If installation fails, you can get a shell prompt by entering the username "root" and a blank password. Once you have finished, either reset the system power or reboot with:

. /kayak/ && Reboot

The usual 'reboot' command is non-functional in the miniroot environment.

In A Non-OmniOS Environment #

If you already have a PXE setup on another platform, you can set it up to install OmniOS clients. See PXEfromNonOmniOS where Gavin Sandie shows how he set it up in a Debian environment.

Post-Install #

See the Admin Guide for post-install steps, and the MoreInfo page for links to external sources of additional documentation.

If you used the ISO installer and want to set up a mirrored root pool, see Mirroring A Root Pool