Using manifests to make Munki items available to users

Tools for managing Munki manifests

You can manipulate your Munki repo using only command-line tools, and I would highly recommend you keep using munkiimport for all manual item imports (again, we’ll get to automated imports later), but I use a GUI (graphical user interface) app to manage my repo day to day, so I recommend using one. For these tutorials, I’ll be using MunkiAdmin, which is a native Mac app, but you may also want to look into the web app mwa2, which uses Django.

If you have time to explore the command-line tool manifestutil, you may find it useful for quick direct manifest manipulation without having to deal with a GUI.

What is a manifest?

Exapnding a bit on How does Munki work?
manifests are the key to deploying software to your fleet of Macs. One of the most frequently asked questions about Munki is I just set up Munki and there’s nothing available under “Software” or “Categories” and the icons are greyed out. How do I make things available there?, and that’s because a lot of new Munki admins don’t really understand what a manifest is.

When your Munki clients check in with the Munki repo, one of the first things they’ll look for is a manifest, which tells the client what software it has available to install optionally, which software must be installed, which software must be updated, and which software must be removed.

Catalogs and manifests

One part of a manifest is the catalog(s) it has available to it. Remember when you imported an item with munkiimport, and it asked what catalog you wanted to import it into? You started with the testing catalog, which is a good place to start. If you have Firefox 64.0.3 in the testing catalog and Firefox 64.0.2 in the production catalog, the manifests that have the testing catalog will see 64.0.3 as the latest version of Firefox to update to or install, and the manifests that have the production catalog will see 64.0.2 as the latest version available. If one manifest has both testing and production catalogs, Munki will consider whichever one is listed first (literally the manifest is a XML-formatted text file, and whichever catalog is listed above the other in the text file).

For now, just to keep things simple, we’re going to use only the testing catalog. We can look at using a production catalog later.

Some Munki admins use the analogy of the catalogs being stores and the manifests being what you put in your basket or shopping cart, but there isn’t really a good exact analogy for this, because stores can’t force you to buy certain items or force you to return items that you may own.

Bottom line, a manifest can install, remove, or update only versions of items that are in the catalog(s) it uses.

Creating and modifying a manifest using MunkiAdmin

So if you install and launch up MunkiAdmin, the first thing you’ll see is a prompt for what repository to use.

MunkiAdmin dialogue asking for the Munki repo location

Go ahead and pick the repo that you’d set up earlier in /Users/Shared/munki_repo/

New Manifest menu selection in MunkiAdmin

Under the File menu, select New Manifest

MunkiAdmin dialogue to create manifest

For the file name, type in site_default

Manifests view in MunkiAdmin

There are three views in MunkAdmin—the packages view, the catalogs view, and the manifests view. If you switch to the manifests view, you can then double-click the site_default manifest to edit it.

Manifest editing options in MunkiAdmin

There are a whole bunch of manifest options to edit. The only available catalog is testing, because the only item in the Munki repo right now is Firefox, and the only catalog Firefox has right now is testing.

MunkiAdmin manifest options with testing checkbox checked

Go ahead and check (or tick) the box next to testing to allow the site_default manifest to items from the testing catalog.

Optional installs section in the manifest editor in MunkiAdmin

On the left side, click on Optional Installs.

Plus and minus signs in the manifest editor of MunkiAdmin

Click the plus (+) sign to add an item to the optional installs section of the manifest.

Item selection part of optional installs for a manifest in MunkiAdmin

Right now, the only item we have to pick from is Firefox, so go ahead select that and then click Add Selected to add it to the optional_installs section of the site_default manifest.

Save button in MunkiAdmin

Then, click Save to save your changes to the site_default file in the manifests folder.

Text of manifest file

If you go to /Users/Shared/munki_repo/manifests/site_default and open it up in a text editor, you’ll see that the catalog this manifest uses is the testing catalog, and it has one optional install available to clients using this manifest—Firefox.

Once a client machine connects to the Munki repo, it will be able to install Firefox or remove it.

Leave a comment

Your email address will not be published. Required fields are marked *