Setting up server-side resources for Imagr testing

Imagr requires a web server (or servers) to get its workflows, images to restore, and packages to install.

In an earlier post, I described setting up an existing DeployStudio NBI for Imagr testing.

If you are testing Imagr, or even better, hoping to help with its development, you’ll need to configure a test server.

You’ll need a web server, and a way to get some files on it. I just used my existing Munki repo web server. I created a new folder called “testing” and copied a few packages into it. (For first-boot install, Imagr currently supports only flat packages. For immediate install, bundle packages are OK if they are at the root of a disk image/.dmg file.).

Next, create a configuration plist. There’s an example here: https://github.com/grahamgilbert/imagr#the-configuration-plist. Here’s another:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>password</key>
  <string>40e78b0d11c553be61645796fdb9438271a23ed8b4aadb253a9222c6e4c861e2dbc75139000b0709fc0c5ad66b0f2573e38a72a8f629e270e59530fc3159d8e4</string>
  <key>workflows</key>
  <array>
    <dict>
      <key>name</key>
      <string>Munki Bootstrap</string>
      <key>description</key>
      <string>Installs the required pkgs to begin a Munki bootstrap on restart.</string>
      <key>components</key>
      <array>
        <dict>
            <key>type</key>
            <string>package</string>
            <key>url</key>
            <string>http://munki/repo/testing/DA_adminaccount_1.5.pkg</string>
            <key>pre_first_boot</key>
            <true/>
        </dict>
        <dict>
            <key>type</key>
            <string>package</string>
            <key>url</key>
            <string>http://munki/repo/testing/DisableSetupAssistant.pkg</string>
            <key>pre_first_boot</key>
            <true/>
        </dict>
        <dict>
            <key>type</key>
            <string>package</string>
            <key>url</key>
            <string>http://munki/repo/testing/munkitools-2.2.4.2431.pkg</string>
            <key>pre_first_boot</key>
            <true/>
        </dict>
        <dict>
            <key>type</key>
            <string>package</string>
            <key>url</key>
            <string>http://munki/repo/testing/munki_kickstart.pkg</string>
            <key>pre_first_boot</key>
            <true/>
        </dict>
      </array>
    </dict>
  </array>
</dict>
</plist>

The password is a hash for “LETMEIN”; you can certainly generate your own as explained here: https://github.com/grahamgilbert/imagr#password

The various URLs point to the pkgs I copied into the testing folder in my Munki repo share. Adjust as needed.

I saved this plist in the same folder as the testing pkgs as “testing.plist”. (Boring, I know.)
Make sure you can open it in a web browser before you continue — in my case it’s available
at http://munki/repo/testing/testing.plist

We are now done with the server config.

Boot a test client into the DeployStudio NBI that was configured as in my earlier post.

Open the Terminal.app.
We need to tell Imagr how to find the configuration plist, so:

defaults write com.grahamgilbert.Imagr serverurl http://munki/repo/testing/testing.plist

Make sure you replace the URL with the actual URL to the config plist you created.

Now launch Imagr:

/private/var/tmp/DSNetworkRepository/testing/Imagr.app/Contents/MacOS/Imagr

And bask in your success (or grumble at your failure…)

Advertisement
Setting up server-side resources for Imagr testing

Introducing Imagr

The prolific Graham Gilbert is working on a new tool: https://github.com/grahamgilbert/imagr

Imagr is an application designed to be run from a NetInstall environment. It is able to restore a disk image and install packages on a target volume.

Though Graham claims it is not intended to be a replacement for DeployStudio, I think in time it could very well be exactly that, at least for many people/organizations.

Some exciting things about Imagr:

  • It is open source! DeployStudio is free, but the source is closed. Open source means you can look at the code and see what it is doing. You can fix bugs and perhaps even help add features to the product.
  • It’s written in Cocoa-Python, with much of the “interesting” tasks in Python — a language many OS X admins are familiar with.
  • And most importantly: it does not require a specialized server: it can work with any plain-old web server. This means that you (potentially) can eliminate the last OS X device in your server room/data center. Almost every service of interest to OS X admins can be run on platforms other than OS X with the huge exception of a DeployStudio server. If Imagr can meet your imaging/machine build needs, you can finally get rid of that poor Mac mini sitting on a shelf in the server room.

Graham has posted detailed instructions on how to build a NetBoot image that contains Imagr. But if you just want to take a look and play with the tool, and you have an existing DeployStudio NBI with Python support included, you can play with Imagr without needing to build a new NBI. More importantly, you can test new versions (or work on the code yourself and test new versions you build) without having to build a new NBI each time.

Continue reading “Introducing Imagr”

Introducing Imagr