Imagr 101: Netboot Image

Hi All, and welcome back to our series on configuring Imagr. Last time, we ran through the setup of the Web service to use as the Imagr Repo.
This part 3 looks to cover the creation of the client NetBoot set. Part 4 will cover populating the Imagr repo with content and building a workflow. Part 5 will look at some possible use cases for Imagr with the current popular management tools.

Key Facts

OS Used: OS X El Capitan (10.11.1)
Server App Used: 5.0.15
Imagr Used: 0.0.4
Recommended knowledge (but not required):

  • Apple NetBoot server configuration
  • AutoDMG
  • Auto[X]NBI (such as AutoCasperNBI or AutoImagrNBI)
  • Editing XML files (or OS X plist files)

I will often be using Repo as shorthand for Repository throughout this series.
Please Note: You will also need a clean, unbooted OS image. I would strongly recommend using AutoDMG to produce this. See here for more information.

Why AutoImagrNBI?

Lets deal with this question first; why use AutoImagrNBI? Well it is a project that Ben Toms (Mac Mule) has been working on for a while under the AutoCasperNBI banner, to help semi-automate the creation of new NetBoot images.
It isn’t fully automated, but does utilise some nice, user-friendly GUI buttons, as well as being very intuitive in use. Much like these blogs, it tries to make a repetitive, time consuming, and easy to get wrong task, into something that can be produced with a few simple clicks.
As a long-time user of the Casper version, it felt appropriate to just use the Imagr fork!

Step-By-Step: Getting a Copy of AutoImagrNBI

First things first, we’ve gotta grab a copy of AutoImagrNBI.
1. Fire up Safari and navigate to https://macmule.com/projects/autoimagrnbi/

There’s plenty of detailed information here that is well worth reading, so bookmark this and have a look once we’ve started the NetBoot Image creation.

2. Scroll down until you can the big ‘Download now’ button. Click this.
Imagr 101 blog - part 3 - blog pic 1
3. This will take you to the main GitHub page. Yes I could have directed you straight to here, but then you wouldn’t get to see all the information on Ben’s main site!
4. Scroll down again until you see the ‘Downloads’ section. Click the ‘.zip’ link and grab yourself a copy of the app.
Imagr 101 blog - part 3 - blog pic 2
5. Once this downloads, go find it in your Downloads folder and launch it. Optionally, move it to your Applications folder as you’re likely to use this a lot in the future.
Imagr 101 blog - part 3 - blog pic 3
6. As this is an administration app (as appose to an end-user app), it hasn’t been code signed and so, if you have Gatekeeper enabled, it’ll stop you launching the app.
Imagr 101 blog - part 3 - blog pic 4
7. Right click the app, select ‘Open’ to get the Gatekeeper approval popup.
Imagr 101 blog - part 3 - blog pic 5
8. Click ‘Open’ to automatically add a Gatekeeper exception and to launch this app.
Imagr 101 blog - part 3 - blog pic 6
9. You’ll be greeted by a pretty empty looking AutoImagrNBI app. Lets start filling these boxes in!
Imagr 101 blog - part 3 - blog pic 7

Step-By-Step: Creating the NetBoot Image (NBI)

Now we’ve got AutoImagrNBI, lets start using it!
10. Under the ‘Select OS.dmg’, click the ‘Select..’ button.
Imagr 101 blog - part 3 - blog pic 8
11. In the new pop-up window, find your clean, unbooted OS image. Select this and click ‘Choose’. In this example, I am using an AutoDMG produced, El Capitan (10.11.1) disk image.
Imagr 101 blog - part 3 - blog pic 9
12. This will examine the disk image for suitability. This can take between 10 and 60 seconds, depending on the speed of your storage and how busy your Mac is currently.
Imagr 101 blog - part 3 - blog pic 10
13. Once complete, this will change to show the OS version and build number.
Imagr 101 blog - part 3 - blog pic 11
14. Next we need to add a local copy of the Imagr app. This is the source of all the clever-ness that takes what’s on the Imagr server and carries out the work.
15. We’ve got two options, we can both manually download and select the app or, and this is my preferred method, get the AutoImagrNBI app to do this for us. Click the ‘Download’ button.
Imagr 101 blog - part 3 - blog pic 12
16. AutoImagrNBI will now go off and grab the latest version of the Imagr app from the GitHub pages.
Imagr 101 blog - part 3 - blog pic 13
17. Once complete, the version downloaded will be added to the main page.
Imagr 101 blog - part 3 - blog pic 14
18. Now we need to fill in the URL of our Imagr Configuration Plist file. I would recommend sticking to a common convention as suggested below:

https://[Full name of the server]/Imagr/workflow/imagr_config.plist

For this blog, the example I have used is:

Imagr 101 blog - part 3 - blog pic 15
19. If you’re not sure you’ve typed the address correctly, highlight and copy all the text and paste it into a text file.
20. Once complete, hit the ‘Enter’ or ‘Return’ keys to store the URL.
21. Hit ‘Tab’ and AutoImagrNBI will auto-populate the name of the Net Boot Image.
Imagr 101 blog - part 3 - blog pic 16
22. If you’ll be serving this via a JAMF NetSUS or BSDPy NetBoot server, ensure the tick box is ticked for this. If in doubt, tick it anyway! This option removes any spaces from the NetBoot Image name.
Imagr 101 blog - part 3 - blog pic 17
23. The ‘NetBoot Image Index’ number is randomly generated. If this will be the only NetBoot image you use, then this shouldn’t be an issue. If you serve other NetBoot images that will remain live, you need to ensure that this number is different to any other NetBoot image index numbers. Simply change this as required.
Imagr 101 blog - part 3 - blog pic 18
Please Note: If this same identical image is going to be used on multiple NetBoot Servers (and so load balanced), tick the ‘Will be served from more than one server’ box. This will change the number to a random value over 4095. The same rules apply here, except that the number needs to remain above 4095 and each identical NetBoot image should have the same number.
Imagr 101 blog - part 3 - blog pic 19
24. Finally, choose if you host your NetBoot Images on HTTP or NFS. This will be specific to your site, but for this demo, I have left this on the default of HTTP.
Imagr 101 blog - part 3 - blog pic 20
25. Now, lets check (and set) some of the more advanced options. Click the ‘Options’ button in the lower left corner.
Imagr 101 blog - part 3 - blog pic 21
26. In case you didn’t guess, this will show you all the advanced options for the NetBoot image that will be created. Tick the ‘Set NetBoot Description’ option to auto-populate the description box that will be visible on the server.
Imagr 101 blog - part 3 - blog pic 22
27. Feel free to add / edit / remove information as desired.
Imagr 101 blog - part 3 - blog pic 23
28. If you will only be using this NetBoot image for Imagr (and not say, for troubleshooting Macs) then tick the ‘Reduce Image Size’ box. This will remove a number of items that Imagr doesn’t require, but you may find you need them for troubleshooting. If in doubt, leave this unticked.
Imagr 101 blog - part 3 - blog pic 24
29. If you wish to be able to log into a NetBoot’d Mac over ARD, tick the ‘Enable ARD’ option and fill in the ‘ARD Username’ and ‘ARD Password’ boxes.
Imagr 101 blog - part 3 - blog pic 25
30. Alternatively, if you wish to use VNC, tick this option and enter the VNC password.
Imagr 101 blog - part 3 - blog pic 26
31. If you want to use a specific custom background image, tick the option, and use the ‘Select’ button to choose a specific .png file.
Imagr 101 blog - part 3 - blog pic 27
32. Once you’re happy with these options, click the ‘Advanced’ tab.
Imagr 101 blog - part 3 - blog pic 28
33. ‘Time Server’. If you want to specify an internal NTP / time server, enter this in the ‘Time Server’ box. Also use the ‘Time Zone’ drop down menu to select your time zone, based on the nearest city in your actual time zone.
Imagr 101 blog - part 3 - blog pic 29
34. ‘Localisation’. Use the ‘NetBoot Language’ dropdown menu to select the language of the NetBoot set (our example will remain on ‘English’). Use the ‘Input Language’ dropdown menu to select the language of the keyboard to be used (I have set the example one to ‘British’).
Imagr 101 blog - part 3 - blog pic 29a
35. ‘Create A Restorable DMG’. Enabling this option will create the NetBoot image, plus a disk image that can be restored to an external Hard Drive for non-NetBoot deployments. We won’t be using this with this example so leave this unticked.
36. ‘rc.netboot’. This installs a modified script that will create a 2GB RAM disk locally on boot. This is used to store any cache files that would normally be written back to the server, therefore allowing a single NetBoot server to serve more clients at once, and the ensure the best possible speed whilst NetBoot’d. If you are unsure, I’d suggest leaving this enabled.
Imagr 101 blog - part 3 - blog pic 30
37. ‘Finder’. This tick box will enable a ‘simple’ Finder view, reducing the amount of Finder options available to the user. We will leave this disabled for this example.
38. Once you’re happy with these options, click the ‘Additionals’ tab.
Imagr 101 blog - part 3 - blog pic 31
39. This last tab will show you options for adding additional certificates to be trusted by the NetBoot image, and the option to install any further packages into the NetBoot image.
Imagr 101 blog - part 3 - blog pic 32
40. In the last blog (step 37), we grabbed a copy of the Imagr server’s self-signed SSL certificate. We need to add this to the NetBoot image. Click the ‘+’ symbol in the Certificates section.
Imagr 101 blog - part 3 - blog pic 33
41. In the new pop-up box, find and select the certificate we exported previously. Click ‘Choose’.
Imagr 101 blog - part 3 - blog pic 34
42. The certificate should now show up on the main ‘Additionals’ tab.
Imagr 101 blog - part 3 - blog pic 35
43. The last section is used to run installers on the NetBoot image. We won’t be using this as part of these examples. Click ‘Close’.
Imagr 101 blog - part 3 - blog pic 36
44. You should end up back at the main AutoImagrNBI screen. Give everything a once over to ensure it’s correct, then click the ‘Build’ button.
Imagr 101 blog - part 3 - blog pic 37
45. Don’t go anywhere yet! Enter the local administrator username and password in the relevant boxes and click ‘Enter’.
Imagr 101 blog - part 3 - blog pic 38
46. Last step till you can rest. AutoImagrNBI will ask where you’d like to save the new NetBoot image. I suggest using the local user’s Desktop. Pick a location and click ‘Choose’ to start the process.
Imagr 101 blog - part 3 - blog pic 39
47. AutoImagrNBI will now go off and start working on a new NetBoot image as per your choices. This can take anything from 20 minutes to 1.5 hours, depending largely on the speed of your storage and how much your build Mac is doing in the meantime (such as AV scans or backups). It will also let you know where you can find a log file of what is happening.
Imagr 101 blog - part 3 - blog pic 40
48. Open Console (from /Applications/Utilities/) and navigate to this file to keep an eye on the progress.
Imagr 101 blog - part 3 - blog pic 41
49. Now is a good time for a cup of tea / coffee and to read up some more on AutoImagrNBI (see step 1).
50. Once complete, you’ll see the below message. Click ‘OK’ then quit AutoImagrNBI.
Imagr 101 blog - part 3 - blog pic 42
That’s your NetBoot image fully created and ready to be uploaded to the server.

Step-By-Step: Uploading the NBI to the Server

Lets get that NBI folder added to the server and operating!
51. Copy the entire .nbi folder, and it’s contents, to the NetBoot server.
Imagr 101 blog - part 3 - blog pic 43
52. Open a Finder window and navigate to the NetBootSP0 folder we configured in the first blog for step 5. In my example this is at:

/Volumes/Data HD/Library/NetBoot/

Imagr 101 blog - part 3 - blog pic 44
53. Drag the entire .nbi folder into this location.

Please Note: Ensure to add this to the ‘NetBootSP0’ folder, and not the ‘NetBootClients0’ or ‘NetBoot’ folder.

Imagr 101 blog - part 3 - blog pic 45
54. Once finished, launch the Server.app and navigate to the NetInstall section.
Imagr 101 blog - part 3 - blog pic 46
55. The new NetBoot image should appear in the ‘Images’ list. Select the image by clicking once on it.
Imagr 101 blog - part 3 - blog pic 47
56. Optional: Use the action cog symbol to set the new image as the default by clicking on ‘Use as Default Boot Image’.
Imagr 101 blog - part 3 - blog pic 48
Imagr 101 blog - part 3 - blog pic 49
57. Enable the NetBoot service by clicking the ‘Off’ switch.
Imagr 101 blog - part 3 - blog pic 49a
58. Wait for the service to complete the initialisation.
Imagr 101 blog - part 3 - blog pic 50
59. Grab a test Mac, plug in a network cable and boot the device to the new NetBoot image.
60. Once booted, leave this for up to 5 minutes and eventually the Imagr app should launch. If this happens then you have a working Imagr NetBoot image!
Imagr 101 blog - part 3 - blog pic 51
61. You’ll almost certainly see an error message complaining that the Imagr app cannot get the configuration plist from the server. This is normal at this stage and something we will fix in the next part!

Summary

And that’s pretty much it. Congratulations you now have your Imagr NetBoot image up and running and ready to be fed some workflows!
Next time, we look at configuring the Imagr workflow plist and adding some content to our repo!
As always, if you have any questions, queries or comments, let us know below and I’ll try to respond to and delve into as many as I can. I’m especially eager to hear any feedback on this new series.
The usual Disclaimer:
While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.