<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The blog of Karl Majer... &#187; jumpstart</title>
	<atom:link href="http://www.karlmajer.com/tag/jumpstart/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.karlmajer.com</link>
	<description>Life on my own terms...</description>
	<lastBuildDate>Mon, 28 Mar 2011 17:04:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Multi-OS Installation: Configuring the Solaris Environment</title>
		<link>http://www.karlmajer.com/2008/01/25/multi-os-installation-configuring-the-solaris-environment/</link>
		<comments>http://www.karlmajer.com/2008/01/25/multi-os-installation-configuring-the-solaris-environment/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 10:30:46 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[jumpstart]]></category>
		<category><![CDATA[os installation]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/2008/01/25/multi-os-installation-configuring-the-solaris-environment/</guid>
		<description><![CDATA[This article will discuss configuring Intel and Sparc Solaris for use in the Multi-OS installer. On successful boot of the intel media, the user will be greeted by the Solaris, blue and green text installer as if they had booted off of CD or DVD media. Sparc Solaris will require a bit more work as [...]]]></description>
			<content:encoded><![CDATA[<p>This article will discuss configuring Intel and Sparc Solaris for use in the Multi-OS installer. On successful boot of the intel media, the user will be greeted by the Solaris, blue and green text installer as if they had booted off of CD or DVD media. Sparc Solaris will require a bit more work as it makes use of native boot files and images.</p>
<p>Configuring Intel Solaris is similar to Linux. The low level startup boot process is the same as Windows and Solaris, mainly the use of a PXE loader to start the process, however in order to keep the top level menuing consistent for the client, and to work around a dhcpd configuration issue, it was required to chain together Sun’s version of PXEgrub with PXELinux.</p>
<p>In both the Intel and Sparc cases, a request to boot is dropped on the wire, the dhcpd server accepts the request and issues a reply packet containing the IP address for the PXE client, the IP address of the next server to speak to, and the filename that the PXE client needs to request, still PXELinux for the first stage. For Sparc Solaris, the filename that the bootloader needs to request is not a PXE loader, but instead is the actual Solaris supplied boot file.</p>
<p>The operating system makes use of the PXE Loader configuration. Please go read that post if you have yet to do so as general configuration details are described in that article.</p>
<p>Please take note that a conscious design decision was made at this point to chain the bootloaders to present a mostly unified menu system to the end user. It is possible to create an Intel Solaris stanza in the dhcpd.conf and add the mac addresses of each host that would need to boot off of pxegrub instead of pxelinux. However, this would require the modification of the configuration and restarting of the dhcpd service for each new intel host added.</p>
<p>Since, in the environment, there were an exceptionally small number of Sparc hosts to be installed, and new Sparcs were added intermittently at best, it was considered more desirable to touch the dhcpd files only for the Sparcs rather than the often multiple installs/day required of the Intel machines. This would then allow the scheduling of dhcpd restarts during a maintenance window.</p>
<p>There was one modification made to the dhcpd.conf file which needs to be made regardless of the architecture. The following option statements need to be added to the file somewhere near the PXElinux lines that were added to support PXE booting.</p>
<blockquote><p> option SUNW.root-mount-options code 1 = text;<br />
option SUNW.root-server-ip-address code 2 = ip-address;<br />
option SUNW.root-server-hostname code 3 = text;<br />
option SUNW.root-path-name code 4 = text;<br />
option SUNW.swap-server-ip-address code 5 = ip-address;<br />
option SUNW.swap-file-path code 6 = text;<br />
option SUNW.boot-file-path code 7 = text;<br />
option SUNW.posix-timezone-string code 8 = text;<br />
option SUNW.boot-read-size code 9 = unsigned integer 16;<br />
option SUNW.install-server-ip-address code 10 = ip-address;<br />
option SUNW.install-server-hostname code 11 = text;<br />
option SUNW.install-path code 12 = text;<br />
option SUNW.sysid-config-file-server code 13 = text;<br />
option SUNW.JumpStart-server code 14 = text;<br />
option SUNW.terminal-name code 15 = text;</p></blockquote>
<p>These vendor specific lines assign human readable names to the various SUNW codes that are used to set various parameters such as the root path, the swap file, and the like.</p>
<p>The pxelinux menu entry needs to be changed to point to the location of the Sun PXEgrub file placed in the boot tree, and a menu.lst file will need to be created to support that bootloader. The single Solaris entry in my environment looks like this:</p>
<blockquote><p> label solaris<br />
kernel /boot/grub/pxegrub.0</p></blockquote>
<p>In my boot directory you can find a grub directory containing the files pxegrub.0 and menu.lst. The menu.lst file is grub’s version of the default entry. It must always be named menu.lst either via the actual filename or through a tftp filename remap. After reading through the Solaris pxegrub source it seems highly likely that this filename cannot be changed via a vendor ID code in the dhcpd.conf file despite what the manpages say.</p>
<p>The three line Solaris 10 entry in my sample menu.lst looks like:</p>
<blockquote><p> title Solaris 10 Interactive<br />
kernel /images/SOL_10_U3_x86_64/boot/multiboot kernel/unix &#8211; install nowin dhcp -B install_media=172.16.32.16:/export/install/images/SOL_10_U3_x86_64<br />
module /images/SOL_10_U3_x86_64/boot/x86.miniroot</p></blockquote>
<p>The first line is the title as it will appear in the grub menu. The second describes the kernel file to load including all switches passed to the kernel. Given the strange wrapping, please take note that the line ends with the install_media stanza found in the SOL_10_U3_x86_64 directory. Finally, the final line specifies the module the kernel will need to load in order to run properly.</p>
<p>For an Intel installation, the prep work is completed and there remains only the image to prepare. For the sparc image, the dhcpd.conf file will need to be edited each time a new sparc host is added and the following stanza will need to be added and/or updated:</p>
<blockquote><p> group {<br />
vendor-option-space SUNW;<br />
option SUNW.JumpStart-server &#8220;172.16.32.16:/export/JS/sol8/configs&#8221;;<br />
option SUNW.install-server-hostname &#8220;gorgon&#8221;;<br />
option SUNW.install-server-ip-address 172.16.32.16;<br />
option SUNW.install-path &#8220;/export/install/images/SOL_9_U8_x86&#8243;;<br />
option SUNW.root-server-hostname &#8220;gorgon&#8221;;<br />
option SUNW.root-server-ip-address 172.16.32.16;<br />
option SUNW.root-path-name &#8220;/export/install/images/SOL_9_U8_x86/Solaris_9/Tools/Boot&#8221;;<br />
next-server 172.16.32.16;</p>
<p>host solclient01 {<br />
hardware ethernet 00:0c:29:e3:e9:94;<br />
fixed-address 172.16.33.69;<br />
option host-name &#8220;solclient01&#8243;;<br />
option SUNW.sysid-config-file-server=&#8221;172.16.32.16:/export/install/jumpstart&#8221;;<br />
}<br />
}</p></blockquote>
<p>Each new sparc addition will require the addition of a new host substanza in this group. You’ll need to gather the mac address of the new host as well as assign it a static IP address. Once the configuration file has been updated, simply restart dhcpd and the configuration changes are complete. As a side note, installations were done using a small preallocated pool of statics outside the dhcpd range and then the host was reconfigured once the installation was complete.</p>
<p>Now that dhcpd has been setup, we can setup the images. Substitute x86_64 with SPARC as appropriate in the examples.  Note that the solaris media comes on DVDs and so there is only a single image to copy.</p>
<blockquote><p> mkdir /export/install/images/SOL_10_U3_x86_64 # or the path for the real vers.<br />
mkdir -p /mnt/{1,2,3,4…N} # one per ISO<br />
mount -o loop /path/to/iso/SOL_10_U3_x86.iso /mnt/1<br />
…<br />
mount -o loop /path/to/iso/SOL_10_U3_x86.iso /mnt/N<br />
.<br />
tar -C /mnt/1 cpvf &#8211; | tar -C /export/install/images/SOL_10_U3_x86_64/ -xpf -</p></blockquote>
<p>When finished, in /export/install/images/SOL_10_U3_x86/ directory you should have the following directories: boot, Solaris_10, and a Copyright and installer file. Note that there is only a single ISO released from Sun. If the host is 64 bit capable the Solaris OS will boot in 64 bit mode. If the host is only 32 bit capable the OS will boot on its 32 bit kernel. The directory naming of _64 was chosen to remain consistent with the other directory names.</p>
<p>Next confirm that the boot/ directory contains the files you supplied paths to in the grub menu.lst, mainly multiboot and x86.miniroot:</p>
<blockquote><p> ls -al /export/install/images/SOL_10_U3_x86_64/boot/<br />
grep boot /export/install/boot/menu.lst</p></blockquote>
<p>And that concludes all of the image prep necessary. The next item to configure is the apache server to ensure it can serve the http content from the /export/install mountpoint.  To do so we need to edit the configuration of apache and add a section allowing the webserver to find our content at /images/. Edit the httpd.conf and add the following in an appropriate location, or use this snippet to create a new file uniquely named along the lines of install.conf in the httpd/conf.d directory, if present.</p>
<blockquote><p> Alias /images/ /export/install/images/<br />
&lt; directory &gt;<br />
Options Indexes FollowSymLinks<br />
AllowOverride Limit<br />
Order allow,deny<br />
Allow from all<br />
&lt; /directory &gt;</p></blockquote>
<p>Apache needs to then be restarted or HUP’ed for the configuration changes to take effect.</p>
<p>Unless the entire installation is being done over HTTP, Solaris also introduces the need for an NFS server for the image shares. How this is done will be dependent on your operating system, but assuming the nfs software is installed on the machine, in order to nfs export /export/install one needs to try one of the following:</p>
<blockquote><p> Linux:<br />
edit /etc/exports and add<br />
/export/install *(ro)<br />
service nfsd restart</p>
<p>Solaris:<br />
edit /etc/dfs/dfstab and add<br />
share -F nfs -o ro -d “Image Mounts” /export/install</p></blockquote>
<p>All that is left now is to test the individual components:</p>
<p>First we need to make sure dhcpd is running:</p>
<blockquote><p> ps -ef | grep dhcpd</p></blockquote>
<p>Next we ensure apache is running:</p>
<blockquote><p> ps -ef | grep httpd</p></blockquote>
<p>Next ensure that nfsd is running:</p>
<blockquote><p> ps -ef | grep nfs</p></blockquote>
<p>Now we make sure that the repository is in proper order:</p>
<blockquote><p> ls -al /export/install/boot/pxelinux # check for pxelinux<br />
ls -al /export/install/boot/grub/pxegrub # check for pxegrub<br />
ls -al /export/install/boot/grub/menu.lst # check for pxegrub’s menu file<br />
ls -al /export/install/boot/default # check for the default menu file for your entry<br />
ls -ald /export/install/images/SOL_10_U3_x86_64 # ensure the image is there<br />
ls -ald /export/install/images/SOL_10_U3_x86_64/boot # should return 3 files: grub, multiboot, x86.miniroot</p></blockquote>
<p>Now we make sure that tftp is working as expected (remember that tftp was chrooted to /export/install so everything will be relative to that path):</p>
<blockquote><p> tftp localhost<br />
cd images/SOL_10_U3_x86_64/boot/<br />
get x86.miniroot</p></blockquote>
<p>Next we ensure the apache is serving content properly.</p>
<blockquote><p> wget http://localhost/images/SOL_10_U3_x86_64/boot/x86.miniroot</p></blockquote>
<p>if, for some reason, you dont have wget on your server you can do it manually using telnet:</p>
<blockquote><p> telnet localhost 80<br />
HEAD /images/SOL_10_U3_x86_64/boot/x86.miniroot HTTP/1.0</p></blockquote>
<p>Finally we test the NFS shares. Mount the filesystem on another machine if possible:</p>
<blockquote><p> mount -o ro yourserver:/export/install /mnt<br />
cd /mnt/images/SOL_10_U3_x86_64/boot<br />
ls -al x86.miniroot</p></blockquote>
<p>This essentially concludes the work required to net install a Solaris installation.</p>
<p>After finishing the configuration, all that is left is to reboot the machine and netboot using the F12 key, and then select the newly added menu entry from the pxelinux menu when prompted. Grub will then start and present its menu to you. From there select the entry you desire and then just wait until you reach the Solaris blue and green configuration screens.</p>
<p>Again, If you have any problems or questions, drop me a line and I’ll see what I can do to help. If there is interest in the topic, moving from an interactive installation to the configuring of jumpstart may be discussed in a later article should there be interest in the topic. If this article sounds familiar it is because I followed the guidelines I established in the Linux article. ;)</p>
<p>&gt;&gt;&gt; Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2008/01/25/multi-os-installation-configuring-the-solaris-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The General Infrastructure</title>
		<link>http://www.karlmajer.com/2008/01/15/the-general-infrastructure/</link>
		<comments>http://www.karlmajer.com/2008/01/15/the-general-infrastructure/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 19:34:50 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[dhcpd]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[jumpstart]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[os installation]]></category>
		<category><![CDATA[ris]]></category>
		<category><![CDATA[smbd]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[tftpd]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/?p=12</guid>
		<description><![CDATA[The production system and the prototype were built on differing operating systems. Solaris 10 was initially used to allow for native Solaris Jumpstart procedures for Jumpstarting Solaris 9 on both Intel and Sparc. While migrating the completed prototype to RHEL 5.0 64, the Sparc Solaris issues, Sparc lacking  pxe boot loader capabilities to boot the [...]]]></description>
			<content:encoded><![CDATA[<p>The production system and the prototype were built on differing operating systems. Solaris 10 was initially used to allow for native Solaris Jumpstart procedures for Jumpstarting Solaris 9 on both Intel and Sparc. While migrating the completed prototype to RHEL 5.0 64, the Sparc Solaris issues, Sparc lacking  pxe boot loader capabilities to boot the operating system, were addressed by adding the appropriate stanzas to the dhcpd configuration files.</p>
<p>Unless otherwise specified, the Solaris installation was built from the source tarball, whereas the Linux installation came from an official RedHat RPM. This typically accounts for any version differences found between the two operating systems.</p>
<p>The network services required to fully netboot and install a machine are as follows:</p>
<ul>
<li>At the lowest level there is a dhcp server listening for initial boot requests. ISC&#8217;s dhcpd server, specifically version 3.0.6 which was the current version at the time. On the RHEL machine, version 3.0.5, was used.</li>
<li>A tftp server is required to make the necessary files available. The files in question could be either pxe bootloaders for Linux and Solaris 10, the actual boot files in the case of Solaris 9, and the WINNT bootloader in the case of Windows. Tftp-hpa version 0.42 was chosen as the tftp server of choice as it supported the remapping of file paths in requests, and offered tcp wrappers as an added bonus.</li>
<li>An HTTP server is made available on the network to support Solaris jumpstart and Linux kickstart. The server offers media for both of the installation processes. The Apache that shipped with Solaris 10, Apache/2.0.58, and the Apache that shipped with RHEL 5, Apache/2.2.3, worked without a problem.</li>
<li>An NFS server is made available on the network to support Solaris installations including jumpstart. The server offers the entire media tree to any client that may desire it. Linux NFS servers may have problems with Solaris clients on anything other than NFSv2. The converse is not true.</li>
<li>To support windows, a CIFS needed to be offered. Samba was picked as it is the primary software of choice. Version 3.023c-2 was used on RHEL, 3.025c on Solaris.</li>
<li>RIS Services are required to properly net install a Windows machine. The software used was a python implementation of the binl server and is covered in greater detail in the Windows section.</li>
<li>Additionally, OS ISOs for every operating system to be installed must be obtained for both the Windows and Unix environments. This must be done in accordance to appropriate licensing for each respective OS.</li>
</ul>
<p>The delivered product was capable of installing: Linux RHEL 3,4,5 32 and 64 bit variants, Solaris 9, 10, both intel and sparc at multiple releases, Windows 200[03], XP, both 32 and 64 bit including the unpatched and last two service pack levels. All in all a total of 27 windows offerings, 6 Solaris offerings, and 6 Linux offerings were available to any server or desktop that supported pxe booting.</p>
<p>More to come&#8230;</p>
<p>&gt;&gt;&gt; Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2008/01/15/the-general-infrastructure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a Multi-OS Installation Host</title>
		<link>http://www.karlmajer.com/2008/01/15/building-a-multi-os-installation-host/</link>
		<comments>http://www.karlmajer.com/2008/01/15/building-a-multi-os-installation-host/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 17:20:57 +0000</pubDate>
		<dc:creator>Karl Majer</dc:creator>
				<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[dhcpd]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[jumpstart]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[os installation]]></category>
		<category><![CDATA[ris]]></category>
		<category><![CDATA[smbd]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[tftpd]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.karlmajer.com/?p=11</guid>
		<description><![CDATA[Recently a client expressed interest in having me build an installation environment wholly contained on a single, preferably unix, server. The client had a requirement of being able to Kickstart any RedHat/Fedora Linux distribution they chose, Jumpstart Solaris 9 &#38; 10 for Sparc and Intel, and net install a wide range of windows installations. The [...]]]></description>
			<content:encoded><![CDATA[<p>Recently a client expressed interest in having me build an installation environment wholly contained on a single, preferably unix, server. The client had a requirement of being able to Kickstart any RedHat/Fedora Linux distribution they chose, Jumpstart Solaris 9 &amp; 10 for Sparc and Intel, and net install a wide range of windows installations. The unix installation environments were straightforward, both taking advantage of the pxe bootloader environment. Linux uses pxelinux, and Solaris uses a Sun modified version of pxegrub. Windows was an entirely different issue.</p>
<p>After a bit of research I decided to use a combination of the theory behind the Ultimate Deployment Appliance (UDA) VM, available from <a href="http://www.vmware.com/appliances/directory/232">http://www.vmware.com/appliances/directory/232</a> , VMWare&#8217;s appliances directory, as well as the information found on the RIS for Linux site located at <a href="http://oss.netfarm.it/guides/pxe.php">http://oss.netfarm.it/guides/pxe.php</a> around which the UDA is built.UDA v1.4 was already capable of booting a considerable variety of 32 bit windows images, however it lacked the ability to easily add 64 bit images. Additionally, there was no need for the pretty HTML GUI that the package offered and so they were omitted in favor of a pxelinux and pxegrub menu system.</p>
<p>This series of articles will describe how the system was built as well as provide examples on how to build your own. It will be written in several parts, at least one for each of Solaris, Linux, and Windows, and the Windows article may be further subdivided into several more.</p>
<p>More will follow as time permits.</p>
<p>&gt;&gt;&gt; Karl</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlmajer.com/2008/01/15/building-a-multi-os-installation-host/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

