<?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 Adventures of Systems Boy! &#187; NetBoot</title>
	<atom:link href="http://systemsboy.com/category/netboot/feed" rel="self" type="application/rss+xml" />
	<link>http://systemsboy.com</link>
	<description>Big, Honkin' Systems Stuff</description>
	<lastBuildDate>Fri, 30 Dec 2011 23:09:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>APM Partition Boots Intel Macs</title>
		<link>http://systemsboy.com/2008/11/apm-partition-boots-intel-macs.html</link>
		<comments>http://systemsboy.com/2008/11/apm-partition-boots-intel-macs.html#comments</comments>
		<pubDate>Sun, 02 Nov 2008 19:06:57 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Lab]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NetBoot]]></category>

		<guid isPermaLink="false">http://systemsboy.com/?p=736</guid>
		<description><![CDATA[I&#8217;d thought that if you wanted to boot Intel Macs you needed to use the recently available GUID partition table, mainly because that&#8217;s what it says in Disk Utility when you format the drive. In fact, as it turns out (at least as of Mac OS X 10.5.5), using the Apple Partition Map (APM) boots [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d thought that if you wanted to boot Intel Macs you needed to use the recently available GUID partition table, mainly because that&#8217;s what it says in Disk Utility when you format the drive. In fact, as it turns out (at least as of Mac OS X 10.5.5), using the Apple Partition Map (APM) boots Intel Macs perfectly well. It&#8217;s exceedingly useful to have a partition format that will boot both architectures, particularly at the museum, where Intel and PPC Macs still very much coexist.</p>
<div id="attachment_741" class="wp-caption aligncenter" style="width: 480px"><a href="http://systemsboy.com/wp-content/uploads/2008/11/partitionmaps1.png"><img class="size-full wp-image-741" title="partitionmaps" src="http://systemsboy.com/wp-content/uploads/2008/11/partitionmaps1.png" alt="Disk Utility Partition Styles: Lies!" width="470" height="362" /></a><p class="wp-caption-text">Disk Utility Partition Styles: Lies!</p></div>
<p>In fact, my Mac is a G5, but all the new hardware is, of course, Intel-based. And I&#8217;m trying to create a master build image for setting up new machines. Generally the way I do this is by making a test build on a firewire partition. I can boot into this build and tweak it until it&#8217;s perfect. And when it is, I image it to an ASR disk image for <a href="http://systemsboy.com/category/netboot" target="_self">NetBooting</a>. I was worried that architecture limitations would make this painful — that booting into my test build partition would be impossible on my PPC Mac because of these restrictions. Glad to know I can just use the old reliable APM for everything and it&#8217;ll do what I need.</p>
<p>Not sure when or how they worked this out, or why the language in Disk Utility has gone unchanged. That fact does give me pause. But so far booting Intel Macs from APM partitions has worked perfectly for me on multiple machines.</p>
<p><strong>UPDATE:</strong><br />
More info at Apple&#8217;s <a href="http://developer.apple.com/technotes/tn2006/tn2166.html" target="_blank">Secrets of the GPT</a> Tech Note, via Jeff in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2008/11/apm-partition-boots-intel-macs.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>NetBoot Part 5</title>
		<link>http://systemsboy.com/2008/04/netboot-part-5.html</link>
		<comments>http://systemsboy.com/2008/04/netboot-part-5.html#comments</comments>
		<pubDate>Fri, 11 Apr 2008 15:41:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NetBoot]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2008/04/netboot-part-5/</guid>
		<description><![CDATA[So far this NetBoot/NetInstall thing is working out a thousand times better than I ever thought it would. I wish I&#8217;d done this years ago. Not only does it save time, it also reduces errors. This is often one of the most overlooked features of automating a process: the less human interaction in the process, [...]]]></description>
			<content:encoded><![CDATA[<p>So far this NetBoot/NetInstall thing is working out a thousand times better than I ever thought it would. I wish I&#8217;d done this years ago. Not only does it save time, it also reduces errors. This is often one of the most overlooked features of automating a process: the less human interaction in the process, the fewer mistakes can be made. I have only to compare the set of instructions I gave to last year&#8217;s crew for building a new system to the instructions for using the new NetInstall system to see evidence of this truism. The list of human actions to take — and, thus, potentially screw up — is significantly shorter using the new process. And that&#8217;s a beautiful thing.</p>
<p>At this point I&#8217;ve converted about half the staff to Leopard with the NetInstall system, and for the most part it&#8217;s been quick and painless for both me and them. Contrast with years past, where upgrading staff computers — which are both the most customized, and the most important to preserve the data of — has been fraught with tension and minor hiccups. This year I almost feel like I&#8217;ve forgotten something, it&#8217;s been so easy. But staff would surely let me know if there were problems. (I&#8217;m so knocking wood right now.)</p>
<p>I&#8217;ve also had an opportunity to test building multiple machines simultaneously. Yesterday I built five Macs at the same time, and, amazingly, all five built in about the same time it takes to build one — about a half an hour. I&#8217;m astounded. We should be able to build our new lab workstations this summer in a day. And still have time for a long lunch. And for the most part I&#8217;ll be able to offload that job to my assistants.</p>
<p>As I finish up the system, I&#8217;ve realized some things. First of all, it sort of reminds me of software development — or at least what I imagine software development to be like — because I&#8217;m building little tiny components that all add up to a big giant working whole. Also, as I write components, I find myself able to reuse them, or repurpose them for certain, specific scenarios. So, in a sense, the more I build, the easier the building becomes, as I imagine is true in software development. Organization is also key. I find myself with two repositories: one contains the &#8220;build versions&#8221; — all the resources needed to build the packages — and one contains the finished products — the packages themselves — organized into something resembling the physical organization (packages for staff computers in one area, packages for workstations in another, for instance). It&#8217;s shockingly fascinating to work on something like this, something that&#8217;s built from tiny building blocks and that relies very heavily on good organization. I&#8217;m really enjoying it so far, and I&#8217;m a little sad that the groundwork is built and it&#8217;s nearly done. There&#8217;s just something fundamentally satisfying about building a solid infrastructure. I guess that&#8217;s just something I innately like about my job.</p>
<p>The next step in this process, as I&#8217;ve alluded, will be to do a major build, i.e. our new batch of workstations when they come in the summer, and an update of all our existing computers — all-in-all about 40 machines. Between now and then there are sure to be some updates, so I&#8217;ll probably update my base config before we do the rest of the lab. And then will come the fun. I will report back with all the juicy details when that happens, in what will probably be the final installment of this series.</p>
<p>See you in summertime!</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2008/04/netboot-part-5.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>NetBoot Part 4</title>
		<link>http://systemsboy.com/2008/03/netboot-part-4.html</link>
		<comments>http://systemsboy.com/2008/03/netboot-part-4.html#comments</comments>
		<pubDate>Mon, 31 Mar 2008 21:11:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NetBoot]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2008/03/netboot-part-4/</guid>
		<description><![CDATA[So this is going great. I have a really solid Base OS Install, and a whole buttload of packages now. Packages that set everything from network settings to custom and specialized users. I can build a typical system in about 45 minutes, and I can do most of the building from my office (or any [...]]]></description>
			<content:encoded><![CDATA[<p>So <a href="http://systemsboy.com/2008/02/netboot-part-i.html">this</a> is going great. I have a really solid <a href="http://systemsboy.com/2008/02/netboot-part-2.html">Base OS Install</a>, and a whole <a href="http://systemsboy.com/2008/03/netboot-part-3.html">buttload</a> of packages now. Packages that set everything from network settings to custom and specialized users. I can build a typical system in about 45 minutes, and I can do most of the building from my office (or any other computer in the lab that has ARD installed).</p>
<p>I&#8217;m also getting fairly adept at making packages. A good many of my packages are just scripts that make settings to the system, so I&#8217;m getting pretty handy with the <span style="font-family:courier new;">bash</span> and quite intimate with <span style="font-family:courier new;">dscl</span>. But, perhaps most importantly, I&#8217;m learning how to make all sorts of settings in Leopard via the command-line that I never knew how to do.</p>
<p>The toughest one so far has been file sharing. In our lab we share all our Work partitions to the entire internal network over AFP and SMB. In the past we used SharePoints to modify the NetInfo database to do so, but this functionality has all been moved over to Directory Services. To complicate matters, SAMBA no longer relies simply on standard SMB configuration files in standard locations, and the starting and stopping of the SMB daemon is handled completely by <span style="font-family: courier new;">launchd</span>. So figuring this all out has been a headache. But I think I&#8217;ve got it!</p>
<p><strong>Setting Up AFP</strong><br />
Our first step in this process is setting up the share point for AFP (AppleFileshareProtocol) sharing. This wasn&#8217;t terribly difficult to figure out, especially now that I&#8217;ve been using Directory Services to create new users. To create an AFP share in Leopard, you use <span style="font-family:courier new;">dscl</span>. Once you grok the syntax of <span style="font-family:courier new;">dscl</span> it&#8217;s fairly easy to use. It basically goes like this:</p>
<div style="border: 1px solid #999999; overflow: auto; width: 100%; height: auto;">
<pre><span style="font-family:courier new;">command node -action Data/Source value</span></pre>
</div>
<p>The &#8220;Data Source&#8221; is the thing you&#8217;re actually operating on. I like to think of it as a plist entry in the database — like a hierarchically structured file — which it basically is, or sometimes I envision the old-style NetInfo structures. To get the needed values for my new share, I used <span style="font-family:courier new;">dscl</span> to look at a test share I&#8217;d created in the Sharing Preferences:</p>
<div style="border: 1px solid #999999; overflow: auto; width: 100%; height: auto;">
<pre><span style="font-family:courier new;">dscl . -read SharePoints/TEST</span></pre>
</div>
<p>The output looked like this:</p>
<div style="border: 1px solid #999999; overflow: auto; width: 100%; height: auto;">
<pre><span style="font-family:courier new;">dsAttrTypeNative:afp_guestaccess: 1
dsAttrTypeNative:afp_name: TEST
dsAttrTypeNative:afp_shared: 1
dsAttrTypeNative:directory_path: /Volumes/TEST
dsAttrTypeNative:ftp_name: TEST
dsAttrTypeNative:sharepoint_group_id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
dsAttrTypeNative:smb_createmask: 644
dsAttrTypeNative:smb_directorymask: 755
dsAttrTypeNative:smb_guestaccess: 1
dsAttrTypeNative:smb_name: TEST
dsAttrTypeNative:smb_shared: 1
AppleMetaNodeLocation: /Local/Default
RecordName: TEST
RecordType: dsRecTypeStandard:SharePoints</span></pre>
</div>
<p>Okay. So I needed to use <span style="font-family:courier new;">dscl</span> to create a record in the SharePoints data source with all these values. Fortunately, the &#8220;<span style="font-family:courier new;">sharepoint_group_id</span>&#8221; is not required for the share to work, because I&#8217;m not yet sure how to generate that number. But create the share with all the other values and you should be okay:</p>
<div style="border: 1px solid #999999; overflow: auto; width: 100%; height: auto;">
<pre><span style=";font-family:courier new;font-size:100%;">sudo dscl . -create SharePoints/my-share
sudo dscl . -create SharePoints/my-share afp_guestaccess 1
sudo dscl . -create SharePoints/my-share afp_name My-Share
sudo dscl . -create SharePoints/my-share afp_shared 1
sudo dscl . -create SharePoints/my-share directory_path /Volumes/HardDrive
sudo dscl . -create SharePoints/my-share ftp_name my-share
sudo dscl . -create SharePoints/my-share smb_createmask 644
sudo dscl . -create SharePoints/my-share smb_directorymask 755
sudo dscl . -create SharePoints/my-share smb_guestaccess 1
sudo dscl . -create SharePoints/my-share smb_name my-share
sudo dscl . -create SharePoints/my-share smb_shared 1</span></pre>
</div>
<p>This series of commands will create a share called &#8220;My-Share&#8221; out of the drive called &#8220;HardDrive.&#8221;</p>
<p>After modifying the Directory Services database, it&#8217;s always smart to restart it:</p>
<div style="border: 1px solid #999999; overflow: auto; width: 100%; height: auto;">
<pre><span style="font-family:courier new;">sudo killall DirectoryService</span></pre>
</div>
<p>And we need to make sure AFP is running by starting the daemon and reloading the associated Launch Daemons:</p>
<div style="border: 1px solid #999999; overflow: auto; width: 100%; height: auto;">
<pre><span style="font-family:courier new;">sudo </span><span style="font-family:courier new;">AppleFileServer</span><span style="font-family:courier new;">
</span><span style="font-family:courier new;">sudo </span><span style="font-family:courier new;">launchctl unload /System/Library/LaunchDaemons/com.apple.AppleFileServer.plist</span><span style="font-family:courier new;">
</span><span style="font-family:courier new;">sudo </span><span style="font-family:courier new;">launchctl load -F /System/Library/LaunchDaemons/com.apple.AppleFileServer.plist</span></pre>
</div>
<p>Not the easiest process, but not too bad. SMB was much tougher to figure out.</p>
<p><strong>Setting Up SMB</strong><br />
Setting up SMB works similarly, but everything is in a completely different and not-necessarily standard place. To wit, Leopard has two different <span style="font-family:courier new;">smb.conf</span> files: one that&#8217;s auto-generated (and which you should not touch) in <span style="font-family:courier new;">/var/db</span>, and one in the standard <span style="font-family:courier new;">/etc</span> location. Fortunately, it turned out, I didn&#8217;t have to modify either of these. But still, it led to some confusion. The way SMB is managed in Leopard is rather roundabout and interdependent. Information about SMB share is stored in flat files — one per share — in <span style="font-family:courier new;">/var/samba/shares</span>. So, to create our &#8220;my-share&#8221; share, we need a file named for the share (but all lower-case):</p>
<div style="border: 1px solid #999999; overflow: auto; width: 100%; height: auto;">
<pre><span style="font-family:courier new;">sudo touch /var/samba/shares/my-share</span></pre>
</div>
<p>And in that file we need some basic SMB info to describe the share:</p>
<div style="border: 1px solid #999999; overflow: auto; width: 100%; height: auto; font-family: courier new;"><span style="font-size:85%;">#VERSION 3<br />
path=/Volumes/HardDrive<br />
comment=HardDrive<br />
usershare_acl=S-1-1-0:F<br />
guest ok=yes<br />
directory mask=755<br />
create mask=644</span></div>
<p>Next — and this was the tough part to figure out — we need to modify one, single, very important preference file that basically informs Launch Services that SMB should now be running:</p>
<div style="border: 1px solid #999999; width: 100%; height: auto;"><span style="font-family:courier new;">sudo </span><span style="font-family:courier new;">defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server &#8220;EnabledServices&#8221; &#8216;(disk)&#8217;</span></div>
<p>This command modifies the file <span style="font-family:courier new;">com.apple.smb.server.plist</span> in our <span style="font-family:courier new;">/Library/Preferences/SystemConfiguration</span> folder. That file is watched by <span style="font-family: courier new;">launchd</span> such that when it is modified thusly, <span style="font-family: courier new;">launchd</span> knows to start and run the <span style="font-family:courier new;">smbd</span> daemon in the appropriate fashion. Still, for good measure, I like to reload the LaunchDaemon for the SMB server by hand. Don&#8217;t need to, but it&#8217;s a nice idea:</p>
<div style="border: 1px solid #999999; overflow: auto; width: 100%; height: auto;">
<pre><span style="font-family:courier new;">sudo </span><span style="font-family:courier new;">launchctl unload /System/Library/LaunchDaemons/com.apple.smb.server.preferences.plist
</span><span style="font-family:courier new;">sudo </span><span style="font-family:courier new;">launchctl load -F /System/Library/LaunchDaemons/com.apple.smb.server.preferences.plist</span></pre>
</div>
<p>That&#8217;s pretty much it! There are a few oddities: For one, the new share will not initially appear in the Sharing Preferences pane, nor will the Finder show it as a Shared Folder when you open the window.</p>
<div style="text-align: center;"><a href="http://bp0.blogger.com/_SsIcI-sERQQ/R_FUtRPckSI/AAAAAAAAAZA/dQ2k-ZAUEBA/s1600-h/SharedFolder.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5184017782779187490" style="cursor: pointer;" src="http://bp0.blogger.com/_SsIcI-sERQQ/R_FUtRPckSI/AAAAAAAAAZA/dQ2k-ZAUEBA/s400/SharedFolder.png" border="0" alt="" /></a></div>
<div style="text-align: center;">Shared Folder: This Won&#8217;t Show Without a Reboot<br />
(click image for larger view)<span style="font-size:85%;"><br />
</span></div>
<p>But the share will be active, and all will be right with the world after a simple reboot. (Isn&#8217;t it always!) Also, if you haven&#8217;t done it already, you may have to set permissions on your share using <span style="font-family:courier new;">chmod</span> in order for anyone to see it.</p>
<p>I was kind of surprised at how hard it was to set up file sharing via the command-line. But I&#8217;m glad I stuck with it and figured it out. It&#8217;s good knowledge to have.</p>
<p>Hopefully someone else will find it useful as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2008/03/netboot-part-4.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>NetBoot Part 3</title>
		<link>http://systemsboy.com/2008/03/netboot-part-3.html</link>
		<comments>http://systemsboy.com/2008/03/netboot-part-3.html#comments</comments>
		<pubDate>Mon, 31 Mar 2008 21:00:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Lab]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NetBoot]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2008/03/netboot-part-3/</guid>
		<description><![CDATA[I&#8217;ve become quite the package whiz, if I do say so myself. Actually, I&#8217;m probably doing something ass-backwards, but still, I wanted to share some of my working methods as they seem to be, well&#8230; Um&#8230; Working&#8230; One of the things I&#8217;m doing is using packages to run shell scripts that make computer settings (like [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve become quite the package whiz, if I do say so myself. Actually, I&#8217;m probably doing something ass-backwards, but still, I wanted to share some of my working methods as they seem to be, well&#8230; Um&#8230; Working&#8230;</p>
<p>One of the things I&#8217;m doing is using packages to run shell scripts that make computer settings (like network settings and user-creation) rather than actually installing files.</p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_SsIcI-sERQQ/R_FSOhPckRI/AAAAAAAAAY4/OTTzNlyh4DU/s1600-h/10.4Settings.png"><img style="cursor: pointer;" src="http://bp1.blogger.com/_SsIcI-sERQQ/R_FSOhPckRI/AAAAAAAAAY4/OTTzNlyh4DU/s400/10.4Settings.png" alt="" id="BLOGGER_PHOTO_ID_5184015055474954514" border="0" /></a></div>
<div style="text-align: center;"><span style="color: rgb(102, 102, 102);font-size:85%;" >PackageMaker: I Prefer the 10.4 Version of Packages</span><span style="color: rgb(102, 102, 102);font-size:85%;" ><br />(click image for larger view)</span></div>
<p>This can be done in PackageMaker by taking some creative liberties with preflight and/or postflight scripts. The only hitch is that PackageMaker insists that you install at least <span style="font-style: italic;">some</span> files onto the target system.</p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_SsIcI-sERQQ/R_FRTxPckOI/AAAAAAAAAYg/crjhPwrsLoc/s1600-h/PackageMaker-01.png"><img style="cursor: pointer;" src="http://bp2.blogger.com/_SsIcI-sERQQ/R_FRTxPckOI/AAAAAAAAAYg/crjhPwrsLoc/s400/PackageMaker-01.png" alt="" id="BLOGGER_PHOTO_ID_5184014046157639906" border="0" /></a></div>
<div style="text-align: center;"><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);">PackageMaker: Installing Scripts to /tmp</span></span><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);"><br />(click image for larger view)</span></span></div>
<p>So the majority of my packages contain only a single script. That script first gets installed to <span style="font-family:courier new;">/tmp</span>, thus fulfilling PackageMaker&#8217;s &#8220;must install files&#8221; directive.</p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_SsIcI-sERQQ/R_FRUBPckPI/AAAAAAAAAYo/3FrKUDcZr-0/s1600-h/PackageMaker-02.png"><img style="cursor: pointer;" src="http://bp3.blogger.com/_SsIcI-sERQQ/R_FRUBPckPI/AAAAAAAAAYo/3FrKUDcZr-0/s400/PackageMaker-02.png" alt="" id="BLOGGER_PHOTO_ID_5184014050452607218" border="0" /></a></div>
<div style="text-align: center;"><span style="color: rgb(102, 102, 102);font-size:85%;" >PackageMaker: A Postflight Script</span><span style="color: rgb(102, 102, 102);font-size:85%;" ><br />(click image for larger view)</span></div>
<p>The script then runs as a posflight script, and the last line of the script deletes the instance of the script in <span style="font-family:courier new;">/tmp</span>, just for good measure.
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_SsIcI-sERQQ/R_FRURPckQI/AAAAAAAAAYw/p3aOEQ6qOQw/s1600-h/RemoveTempScript.png"><img style="cursor: pointer;" src="http://bp0.blogger.com/_SsIcI-sERQQ/R_FRURPckQI/AAAAAAAAAYw/p3aOEQ6qOQw/s400/RemoveTempScript.png" alt="" id="BLOGGER_PHOTO_ID_5184014054747574530" border="0" /></a></div>
<div style="text-align: center;"><span style="color: rgb(102, 102, 102);font-size:85%;" >Shell Script: Removing the Script from /tmp</span><span style="color: rgb(102, 102, 102);font-size:85%;" ><br />(click image for larger view)</span></div>
<p>It could be argued that there&#8217;s no reason to create packages from scripts, that you could just as easily run the scripts directly in ASR, but packages offer a couple of advantages. For one, packages leave receipts, so it&#8217;s easy to check and see if something&#8217;s been set on a computer. For two, packages are easy to deal with; assistants and other SysAdmins know how they work and can easily understand how to use them. Need to change a machine&#8217;s settings? Don&#8217;t run a script. Hell, don&#8217;t even bother opening System Preferences. Just open and run a package. What could be easier (and less error-prone, I might add)? From an ease-of-use perspective, packages have a huge advantage. And ease-of-use adds efficiency. Which is why I not-so-suddenly find myself in the envious position of being able to build systems in about half the time (or less!) it used to take. That&#8217;s a huge improvement!</p>
<p>Using this method (and sound DNS) I&#8217;ve been able to write packages that configure network settings, create computer-specific users, set custom disk and file permissions, set up <span style="font-family:courier new;">autofs</span>, bind to our authentication server and set up SSH for password-less login.</p>
<p>Next on the list: File Sharing!</p>
<p>Should be fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2008/03/netboot-part-3.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>NetBoot Part 2</title>
		<link>http://systemsboy.com/2008/02/netboot-part-2.html</link>
		<comments>http://systemsboy.com/2008/02/netboot-part-2.html#comments</comments>
		<pubDate>Wed, 13 Feb 2008 18:31:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NetBoot]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2008/02/netboot-part-2/</guid>
		<description><![CDATA[So here&#8217;s the plan, as it stands right now. (Yes, I have a plan already! Yes, that was quick.) First, build an image that&#8217;s good for all workstations (laptops, staff machines, standard workstations, etc.) throughout the lab with: Base OS (Mac OS X Leopard 10.5) A DHCP network connection Apple applications Adobe applications Drag-and-drop applications [...]]]></description>
			<content:encoded><![CDATA[<p>So here&#8217;s the plan, as it stands right now. (Yes, I have a plan already! Yes, that <span style="font-style: italic;">was</span> quick.) First, build an image that&#8217;s good for all workstations (laptops, staff machines, standard workstations, etc.) throughout the lab with:
<ul>
<li>Base OS (Mac OS X Leopard 10.5)</li>
<li>A DHCP network connection</li>
<li>Apple applications</li>
<li>Adobe applications</li>
<li>Drag-and-drop applications</li>
<li>Other third-party applications</li>
<li>One admin user</li>
<li>ARD active</li>
</ul>
<p><span style="font-weight: bold;">IMAGE THIS SYSTEM</span><br />This becomes the base system build, the Master Image — the replacement system if a machine ever needs rebuilding. It is the only full system image. There is only one.</p>
<p>Everything else that is machine-type specific — that is, users, applications, application components, crontabs, <span style="font-style: italic;">anything</span> — gets turned into and installed via either a downloaded or hand-rolled package. So far I&#8217;ve been using Apple&#8217;s PackageMaker, which has matured a great deal since last I tried it. It&#8217;s pretty nice. I&#8217;m also taking a look at <a href="http://s.sudre.free.fr/Software/Iceberg.html">Iceberg</a>, which also looks to be pretty full-featured and nifty.</p>
<div style="text-align: center;">
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_SsIcI-sERQQ/R7M45IRPcsI/AAAAAAAAAVA/Z6d1BJzOUpw/s1600-h/Iceberg.png"><img style="cursor: pointer;" src="http://bp0.blogger.com/_SsIcI-sERQQ/R7M45IRPcsI/AAAAAAAAAVA/Z6d1BJzOUpw/s400/Iceberg.png" alt="" id="BLOGGER_PHOTO_ID_5166535751647589058" border="0" /></a><br />Iceberg: by White Box</div>
<div style="text-align: center;"> (click image for larger view)</p>
</div>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_SsIcI-sERQQ/R7M454RPctI/AAAAAAAAAVI/SNqkGwKXJqM/s1600-h/PackageMaker.png"><img style="cursor: pointer;" src="http://bp3.blogger.com/_SsIcI-sERQQ/R7M454RPctI/AAAAAAAAAVI/SNqkGwKXJqM/s400/PackageMaker.png" alt="" id="BLOGGER_PHOTO_ID_5166535764532490962" border="0" /></a><br />PackageMaker: by Apple<br />(click image for larger view)</div>
<p>These packages can be machine-type specific and stored in a simple folder hierarchy by machine type — laptop packages in the laptops folder, etc. — for organizational purposes. In addition to being machine-<span style="font-style: italic;">type</span> specific, packages can also, I believe, be <span style="font-style: italic;">machine</span> specific. That is, I think we can make settings like computer name and network settings using packages as well. So what we&#8217;re talking about here is a system of computer building that happens completely over the network, and that can be directed almost entirely from one ARD-toting computer, that computer being mine, of course. (I&#8217;ve always said, the sign of a good SysAdmin is that he never leaves his chair.)</p>
<p>I&#8217;ve gotten pretty good at making application packages, at this point (not that it&#8217;s terribly hard, mind you). My next step will be to learn how to make system settings with packages as well. My other next step is going to be, of course, creating the Master Build. None of this building happens &#8217;til summer. But still, something tells me it&#8217;s going to be smart to start this process now and see what crops up over the next couple of months.</p>
<p>As usual, I&#8217;ll be reporting any new and/or interesting developments.</p>
<p>Oh, and thanks to everyone who commented on the last post. The comments were extremely useful!</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2008/02/netboot-part-2.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>NetBoot Part 1</title>
		<link>http://systemsboy.com/2008/02/netboot-part-1.html</link>
		<comments>http://systemsboy.com/2008/02/netboot-part-1.html#comments</comments>
		<pubDate>Fri, 08 Feb 2008 22:02:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NetBoot]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2008/02/netboot-part-1/</guid>
		<description><![CDATA[My big, fat, self-assigned new project — or, as I like to call it, the bug up my butt — is system roll-outs. That is, I realized at some point two things. One, I am managing way more computers than ever before, and way more than I realized; and two, the scope and variety of [...]]]></description>
			<content:encoded><![CDATA[<p>My big, fat, self-assigned new project — or, as I like to call it, the bug up my butt — is system roll-outs. That is, I realized at some point two things. One, I am managing way more computers than ever before, and way more than I realized; and two, the scope and variety of these various systems has become increasingly wide. These realizations inevitably brought me crashing, headlong (yes, headlong) into a third and final revelation: I need to come up with a better system for managing machine builds and systems roll-outs.</p>
<p>Enter: NetBoot.</p>
<p>Actually, let me first explain how we&#8217;ve handled this in the past. When I began this job we had maybe 15-20 Macs running OS 9 briefly, and then OS X since about its inception. Mac OS 9 was notoriously easy to build. Just copy that shit and be done with it. But Mac OS X was a different beast entirely. Mac OS X was complicated. Moody. A tougher nut to crack. Mac OS X required me to delve into the dark arts of system cloning.</p>
<p>Cue thunder clap, scary music.</p>
<p>The process that eventually evolved was cloning over firewire. We&#8217;d build our master machine — a basic Mac OS install with all the latest updates and our requisite software — and then clone that to the other machines over firewire, with clients booted into our Master via firewire target disk mode. This was a quick and dirty way to build a bunch of systems. Once the group was built we could customize machines or groups of machines as we saw fit. For a lab of 15-20 Macs this has worked swimmingly. But our lab has grown slowly and steadily, and completely without my realizing it.</p>
<p>My latest count shows our lab at more like 50 Macs now. We&#8217;ve added a bunch of stuff: laptops, servers, more A/Vmachines of various configurations, a render farm, and of course more workstations. Using our old system of firewire cloning is becoming increasingly clumsy, slow and error-prone. We need a better way of doing things.</p>
<p>Okay, now. Enter: NetBoot!</p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_SsIcI-sERQQ/R6zkTqfEfII/AAAAAAAAAUA/7awx8psXPpg/s1600-h/NetBootInterface.png"><img style="cursor: pointer;" src="http://bp0.blogger.com/_SsIcI-sERQQ/R6zkTqfEfII/AAAAAAAAAUA/7awx8psXPpg/s400/NetBootInterface.png" alt="" id="BLOGGER_PHOTO_ID_5164753899160370306" border="0" /></a></p>
<p><span style="font-size:85%;">Leopard&#8217;s NetBoot Interface<<br />(click image for larger view)</span></p>
</div>
<p>NetBoot is Mac OS X Server technology that allows for centralized storage of and access to system images for installation over the network. The way it works is this: You build a system, trick it out, make it perfect — this is your Master System. Put it on a firewire drive or something transportable, because you can&#8217;t be booted from your Master System for the next series of steps — imaging. Run the application called System Image Utility, that comes with Mac OS X Server&#8217;s server tools, and create a NetInstall image from your Master System. Load that image onto your server and enable it in the NetBoot settings in Server Admin. And what happens next is something akin to magic (unless you use Linux, and then it&#8217;s pretty par for the course, I guess.)</p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_SsIcI-sERQQ/R6znNafEfKI/AAAAAAAAAUQ/no_YLgWKMGw/s1600-h/NetworkBoot.jpg"><img style="cursor: pointer;" src="http://bp3.blogger.com/_SsIcI-sERQQ/R6znNafEfKI/AAAAAAAAAUQ/no_YLgWKMGw/s400/NetworkBoot.jpg" alt="" id="BLOGGER_PHOTO_ID_5164757090321071266" border="0" /></a><br /><span style="font-size:85%;">The Network Boot Volume: So <span style="font-style: italic;">That&#8217;s</span> What It&#8217;s For!</span>><br />(click image for larger view)</span></p>
</div>
<p>With your NetInstall image enabled on your server, go to any client system and open the Startup Disk Preferences. Where you&#8217;d normally see the &#8220;Network Startup&#8221; icon (I&#8217;ll bet you always wondered what that was for), you&#8217;ll now get something a bit more descriptive. You should now be given the opportunity to boot from your master image. Choosing to do so will incur further magical results. Your system will now boot&#8230; Over the network! What&#8217;s even cooler is that you&#8217;ll be booted into the same basic installer environment you&#8217;d see if you were booted off a Mac OS X install disc, and you&#8217;ll be walked through the steps required to install your Master System onto your computer. Um&#8230; OVER THE NETWORK!</p>
<p>There are some immediate advantages to a system such as this. First off, you can have a bunch of different Master System images for various build configurations in your lab. For instance, we can have a separate build for laptops and desktop machines. Cool! Also, this can all be automated (thanks to Automator integration) to make the process run almost entirely unattended. Sweet! And since the whole thing sits on the server and is available at all times, if a machines needs a rebuild, you just set it and forget it. Awesome!</p>
<p>But NetBoot has its drawbacks as well. Images — particularly large images — take for-freaking-ever to build. To give you an idea of how long, my near-36GB boot drive took an hour or so to clone to firewire, then 3-4 hours to be imaged by System Image Utility. So each build will take several hours to create. And God help you if you make a mistake on one of your images: the NetInstall images are read-only and can&#8217;t (to my knowledge) be modified once they&#8217;re built. NetInstall technology can&#8217;t be used for non-package installers or updates either (again, to my knowledge), so you&#8217;ll have to run all your Adobe and Microsoft updates by hand as usual. Also, one minor caveat that threw me at the outset: Mac OS X 10.5 server can only serve Mac OS X 10.5 builds. So you&#8217;ll either be needing to update everything to Leopard or wait until your server and client OSes match.</p>
<p>I think I&#8217;m right on the crux of really needing this. I could probably live without it. Keep doing what I&#8217;m doing. But I do think I&#8217;m at a point where the benefits of using NetBoot outweigh its limitations. And I have enough resources now (like the required massive drive space and robust stable servers) that it&#8217;s not impractical on the physical level. So, this summer I plan to use NetBoot to build my lab.</p>
<p>I mean, imagine this: you get your new systems over the summer, you unbox them, plug them into your network, set them to NetBoot (everybody say &#8220;command-n&#8221;! Good!) and go home for the night. You come in the next day and everything&#8217;s basically done. You&#8217;ve just built your lab. Overnight. In your sleep. I don&#8217;t know. Sounds pretty cool to me.</p>
<p>I&#8217;ll let you know how it goes.</p>
<p>Oh, and by the way, in case you can&#8217;t tell, I&#8217;m just now learning all this. It&#8217;s still very new to me and there is a lot about it I don&#8217;t know. So if anyone has any experiences or insights into using NetBoot (or if I get any of the facts wrong), I would absolutely love to hear about it. Please feel free to share your experiences in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2008/02/netboot-part-1.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/15 queries in 0.009 seconds using disk: basic
Object Caching 467/491 objects using disk: basic

Served from: systemsboy.com @ 2012-02-04 16:17:27 -->
