Tuesday Oct 21, 2008

JET 4.4.7 released

I've just released JET 4.4.7 internally. Bruce is in the process of putting together a new bundle including 4.4.7 for the external download, so it'll arrive in couple of weeks. If you need it NOW just ask nicely. :-)


The latest  version currently available externally is 4.4, and we've added a bunch of features since then. Here's a brief overview of what's new/changed/fixed:


  1. 6660631: Disabling UFS logging no longer works.
  2. 6673213: Selecting dhcp should automatically select grub if required.
  3. 6675467: JET needs to workaround Nevada installation bug 6633017.
  4. 6315828: JET "shutup_sendmail" variable does not work on Solaris 10.
  5. 6526561: Typo in make_client, missing r on JS_error line 130.


  1. 6656549: Add ability to do fdisk commands in the profile.


  1. 6694299: SUNWjet fails to install on system with super long group.
  2. 6690411: base_config_profile_fdisk needs to be ingored for sparc.
  3. 6698860: "rarp" service should not be enable by JET (on dhcp builds)


  1. 6706581: JET needs to support ZFS root installs. This is a pretty big one, with the inclusion of 5 new base_config variables. Might require a separate blog article to explain, but as usual, the comments in the template should get you on the way.


  1. 6735314: JET incorrectly sets NFSMAPID_DOMAIN to "dynamic".
  2. 6735318: JET should support noatime mount options.
  3. 6740625: JET client_environment should never output a warning message.


Never released.


  1. 6675467: (again, as we need to apply workaround for Sol10 U6 as well)
  2. 6761787: JET custom_files should allow the overwritten file to be backed up. (inspiration from Christopher Hubbell)

Summary of Changes

A lot of the changes are bug fixes, but a number of them begin to make use of some of the new Solaris features, or leverage new ways of doing things. The most important of these is the ability for JET to install ZFS boot Solaris. This applies to Nevada build 90 and above, as well as the imminently to be released Solaris 10 Update 6. Other things that are kinda cool is the ability for JET to fdisk your disk for you when doing an install, as well as set noatime mountpoint options (which more and more people seem tobe doing by default now.


Thursday Aug 21, 2008

Really Nice JET Tutorial

Joerg Moellenkamp has written a pretty cool 16 part tutorial on Jumpstart using JET here. It's already linked at the JET wiki page.


Thursday Aug 07, 2008

JET server using Nevada and iso images

Things have been slightly problematic on the JET server running on Nevada front mainly due to 2 issues.

  1. There is/was a bug in cpio (See BugID 6686818) which meant that setup_install_server didn't copy the media correctly.
  2. setup_install_server on earlier Solaris releases didn't understand zfs, therefore it was difficult to copy onto a zfs filesystem.

Why not just use iso images?

Why not indeed? I'm in the habit fo simply downloading and keeping the .iso images for all releases, and I used to then "expand" it by lofimounting and then running setup_install_server. I realised I really didn't need to do that, I could just use the lofi mounted image, and get away from having to ever run setup_install_server, and not need to use up double the space per O/S image I wanted to keep.

 So.. what was missing?

I needed a way to lofiadm, mount and nfs share the Solaris media. Also because x86 builds also lofi mount the boot directory and mount it into the /tftpboot directory, I'd also need to lofimount a lofimounted filesystem as well.

Firstly I did everything manually to ensure that everything works fine, then I wrote a script, which reads a config file (which lives in /opt/SUNWjet/etc).

Inline here:

#!/usr/bin/ksh -p
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.

# sanitize PATH, and ensure required components are in front
export PATH

BINDIR="`cd ${0%/\*}; pwd`"
ETCDIR="`cd ${BINDIR}/../etc; pwd`"

export PATH


if [ "$#" != "0" ]; then
	echo "Usage: $0"
	echo " "
	exit 1

# Check to see if the media locations file exists.

for iso in `cat ${MEDIALOC} | grep -v "\^#" | awk '{print $1}'`
	lofiname="`lofiadm | awk '$2 == iso {print $1;}' iso=$iso`"
	if [ -z  "${lofiname}" ]; then
		lofiname="`lofiadm -a $iso`"
		echo "Added $iso as lofi filesystem: $lofiname"
	mp="`cat ${MEDIALOC} | awk '$1 == iso {print $2;}' iso=$iso`"
	mounted="`df -k | awk '$1 == lofiname && $6 == mp {print $6;}' lofiname=
$lofiname mp=$mp`"
	if [ -z "${mounted}" ]; then
		mount -F hsfs $lofiname $mp
		echo "Mounted $lofiname at $mp"
 	shared="`share | awk '$2 == mp {print $2;}' mp=$mp`"
	if [ -z "${shared}" ]; then
		share -o ro,anon=0 $mounted
		echo "Shared $mounted"
	# Deal with lofi mount in x86
	mountboot="`cat /etc/vfstab | awk '$1 == mpboot {print $3;}' mpboot=\\"$m
	if [ -n "${mountboot}" ]; then
	bootmounted="`df -k | awk '$1 == mpboot {print $6;}' mpboot=\\"$mp/boot\\"
		if [ -z "${bootmounted}" ]; then
			mount $mountboot
			echo "Remounted $mountboot"

It parses the solaris_iso_locations file which looks like this (I've attached my filled out one)

# This file is used to specify the mountpoints for iso images. You need
# to create the mountpoint, update this file, and then run /opt/SUNWjet/bin/
# share_isos. This will lofimount all isos listed here. You will then
# need to run add_solaris_location for each image as normal.
# You should run the share_isos command everytime the JET server is
# rebooted.
/backup/Solimages/s10sparc_0508.iso    /export/install/iso/Solaris_10_0508s
/backup/Solimages/s10x86_0508.iso    /export/install/iso/Solaris_10_0508x
/backup/Solimages/solarisdvdb90x.iso    /export/install/iso/Solaris_11_b90x
/backup/Solimages/solarisdvdb90s.iso    /export/install/iso/Solaris_11_b90s


What it does.

In short, it reads the config file and mounts (if not already mounted) the iso images on the path specified. It will then NFS share the mountpoint, and parse the /etc/vfstab and do the /tftpboot lofi mounts if necessary. (NOTE: add_install_client creates those entries in /etc/vfstab the first time it is run for that O/S. You MUST edit the /etc/vfstab and change the mount_at_boot flag to "no", otherwise your booting your JET server will fail.)

Running share_isos produces the following:

# /opt/SUNWjet/bin/share_isos
Mounted /dev/lofi/2 at /export/install/iso/Solaris_10_0508s
Shared /export/install/iso/Solaris_10_0508s
Mounted /dev/lofi/3 at /export/install/iso/Solaris_10_0508x
Shared /export/install/iso/Solaris_10_0508x
Remounted /tftpboot/I86PC.Solaris_10-1
Mounted /dev/lofi/4 at /export/install/iso/Solaris_11_b90x
Shared /export/install/iso/Solaris_11_b90x
Remounted /tftpboot/I86PC.Solaris_11-6
Mounted /dev/lofi/5 at /export/install/iso/Solaris_11_b90s
Shared /export/install/iso/Solaris_11_b90s
# /opt/SUNWjet/bin/share_isos

 Note: if you run share_isos again, it does nothing as everything is already mounted and shared, so its easy to re-run it whenever you want just to confirm it's all good. (I considered having JET call it automatically, but I'm not completely sure how I want to do that yet. Well thought out suggestions welcomed.)

The bottom line is that I can now easily use my laptop running Nevada and a ZFS filesystem and use it as a JET server for any version of Solaris without ever needing to run "setup_install_server". And the bonus is I've now got about 12GB of space back!!


Monday May 15, 2006

JET 4.3 now available

We've finally made the latest version of JET (the same version currently available in the N1 SPS product) available for download on the Sun download site (linked at the Bigadmin page below.). (This is exactly the same paragraph as my previous JET 4.1 availability blog, but the rest should be different. Honest)

What's new in 4.3

The main difference between 4.1 and 4.3 (4.2 was available for a short time internally, but I broke something and so never released it externally) is that JetNEWBOOT (the module that allows you to grub boot) has been merged into the core JET framework. The allocation method is now called "grub" instead of "newboot", and you need to use it for all Solaris x86/x64 installs above Sol 10 U1.

We've also added support for Wanbooting, and there is a seperate module (called JetWANBOOT) which allows this, but we had to make several changes to core JET to allow the module to work properly. (not major changes, just little tweaks).

Finally, we've fixed a bundle of minor bugs, and ensured that JET works with the latest Solaris Express and OpenSolaris releases.


As always, you can get help on how to use JET via the alias jet@sun.com , and you can get even more help from the JETJumpstart group at Yahoo.

Marty Lee (co-author of JET who no longer works for Sun directly) has set up a website here which contains lots of help, tips and FAQs.

Thursday Jan 05, 2006

JET 4.1 now available

We've finally made the latest version of JET (the same version currently available in the N1 SPS product) available for download on the Sun download site (linked at the Bigadmin page below.). There is one major difference between JET 4.1 and the older version (JET 3.7.3), and that it that it now installs in /opt/SUNWjet instead of /opt/jet. The reason for this change is simply that now that it is a more "official" product, it should be installed in a more "official" sounding place. :-)


If you are installing/using JET for the first time, then simply install the package as normal, following the instructions at Bigadmin . You should also take the time to read the PDF file supplied in the SUNWjetd package.


Things might be a little trickier if you've already got JET 3.7.3 installed, and you want to keep you existing templates etc. The easiest way to accomplish this is to pkgrm all your existing JET packages. (SUNWjet, and all the packages that start with JET), and then mv /opt/jet /opt/SUNWjet. Finally install the new JET packages.

If you've created you own custom modules or scripts, you may need to check them to ensure you haven't hard-coded any /opt/jet paths in them.

New Features

Other than the path change, JET 4.1 is mainly a bug fix release of 3.7.3, although the bundle contains a JET module called JetNEWBOOT which allows you to install Sol 10 Update 1 and Solaris Express on x86/64 using Grub.


As always, you can get help on how to use JET via the alias jet-AT-sun.com , and you can get even more help from the JETJumpstart group at Yahoo.

Wednesday Sep 21, 2005

External JET discussion group formed

Just a quick note.

Will Warburton has started an external JET discussion group on Yahoo Groups called JETJumpStart-AT-yahoogroups-DOT-com. To join, just go to: JETJumpStart joining url

There's already a discussion there about the use of FLASH as a restore mechanism.....




« July 2016