,

Trying out Munki, a macOS software management system

Platforms
macOS
Products
IntuneMunkiAzure Storage
Result
Managed Software Center on every Mac, with required and optional apps from your own repository

Overview

Install Munki on Intune-managed Macs with a shell script and a custom profile, and host the package repository in Azure Blob Storage for a private self-service app catalog.

Munki is a collection of open-source tools developed by Walt Disney Animation Studios. The tools are used together with an on-premise or cloud repository of packages by macOS administrators to distribute software installs on the client machines. Munki can work together with MDM/UEM solutions like Microsoft Intune that can help to onboard Munki into its managed devices. Munki deploys apps from popular Apple installer packages (.pkg) or Disk images (.dmg) formats as automatically installed (Managed) or as optional apps through their own self-service app.

Managed Software Center (part of Munki) is an application deployed to macOS client machines that lets users install, update and remove apps themselves from the private app store.

  • Managed (Required) apps are automatically installed on devices without user intervention.
  • Self-service (Available) apps appear in the Munki Managed Software Center on the user's computer and users may choose to install, update or uninstall them at any time.

Munki was an alternative for Intune App Wrapping Tool for Mac that converted application installation files (pkg) into the .IntuneMac format. This package pre-processing operation is not required for apps distributed by Munki, therefore a file size limit of 2GB for LOB apps is not applicable. Also, Munki can add pre and post-installation scripts to already signed app packages by other developers (apps distributed but not built from source) without any pre-processing of the pkg files, this also allows modifications of those scripts anytime without touching the actual package file.

Prerequisites

Before you start, check that you have the following.

What you need

checked 10/2026

Area What you need Docs
Licence Microsoft Intune Plan 1 Licensing
Admin role Intune Administrator, or a role with Device configurations permissions (scripts and custom profiles) Roles
Intune Apple MDM push certificate, so Macs can enroll APNs
Devices Managed Macs on macOS 12 or later for Intune shell scripts Scripts
Admin Mac with Munki tools (Munki 7 needs macOS 10.15, Munki 7.5 macOS 12) and MunkiAdmin MunkiMunkiAdmin
Repository Cloud storage for the repo, here Azure Blob Storage (Amazon S3 or Google Cloud Storage also work) Explorer
Middleware script middleware_azure.py by Oliver Kieselbach for Azure Blob authentication GitHub

Further reading: Getting started with Munki, Comprehensive guide to managing macOS with Intune by Oliver Kieselbach, and my post about Munki and AutoPkgr.

Configuration

With the prerequisites in place, set it up in this order.

Prepare the InstallMunki.sh script

This is basically a software package installation script for macOS devices, like many other scripts that are available here (provided by Neil Johnson).

Oliver Kieselbach who developed the Middleware (middleware_azure.py) also adapted one of the scripts from Neil's library, which installs Munki Tools (.pkg) together with his script middleware_azure.py making the whole installation of Munki tools very easy for us.

Download the script and modify the variables that point to your publicly available Azure Blob Storage:

Trying out Munki, a macOS software management system - screenshot 1

This script will have to be deployed to all macOS devices managed by Microsoft Intune, but it also requires a Custom profile (.mobileconfig) from step 3 below.

Trying out Munki, a macOS software management system - screenshot 2

Set up Azure Blob Storage

Azure Storage Explorer is a handy tool that allows you to manage storage blobs, files, queues, and tables.

I have two blob containers, a public one and a private one (named munki):

  • munki blob (private) – this is my package repository, created locally on Mac mini (Munki Admin) and uploaded to this container
  • public blob – with only 2 files, the latest Munki tools (.pkg) and middleware_azure.py that are both prerequisites for the InstallMunki.sh script
Trying out Munki, a macOS software management system - screenshot 3

For the munki blob container, use Get Shared Access Signature to create a new one with Read permission and copy its Query string (SharedAccessSignature Token)

Trying out Munki, a macOS software management system - screenshot 4

Note: A Shared Access Signature (SAS) provides secure delegated access to resources in your storage account.

The Query string (SAS Token) needs to be escaped, meaning some special characters are replaced with XML entities, for example:

  • & is replaced with &
  • < is replaced with &lt;
  • > is replaced with &gt;
Trying out Munki, a macOS software management system - screenshot 5

There are many local and online tools that can do it for you, for example, codebeautify.org

Create the custom profile (.mobileconfig)

Custom profiles are a feature in Intune. They are designed to add device settings and features that aren't built in to Intune. For Munki, the SoftwareRepoURL and SharedAccessSignature keys need to be added to the Custom profile, as in this example:

<dict>
    <key>SoftwareRepoURL</key>
    <string>https://XXXX.blob.core.windows.net/munki</string>
    <key>SharedAccessSignature</key>
    <string>XXXX</string>
</dict>

Replace XXXX in the URL with your storage account name, and XXXX in the second string with the escaped SAS token.

The profile needs to be deployed to all macOS managed devices by Intune, together with the script InstallMunki.sh.

Trying out Munki, a macOS software management system - screenshot 6

Build the repository in MunkiAdmin

Munki Admin is an application with a graphical user interface (GUI) to manage a repository of packages. To get started, you need to install Munki tools on the macOS administrator's machine from here or by running the InstallMunki.sh script prepared earlier:

sudo bash InstallMunki.sh

Munki Admin (MunkiAdmin-1.8.1.dmg) can be downloaded from here

After installing Munki Admin, create:

  • New Repository
  • New Manifest
Trying out Munki, a macOS software management system - screenshot 7

The Repository (e.g. MunkiRepo) is managed locally but it needs to be uploaded each time to the Azure Blob Storage (munki private) for any app changes to reach end users.

Trying out Munki, a macOS software management system - screenshot 8

Important admin controls like Packages, Catalogs and Manifests are behind the icons in the top menu bar.

Trying out Munki, a macOS software management system - screenshot 9
  • Packages (.pkg) or disk images (.dmg) containing the software to be installed
  • Catalogs are the main mechanism by which a macOS administrator can deploy certain software installations and updates to one group of users while denying those same installs and updates to another group.
  • Manifests are simple lists of items to install (or verify as installed) and items to remove (or verify as removed).
Trying out Munki, a macOS software management system - screenshot 10

Adding new applications is straightforward with Munki Admin by easily dragging and dropping any .pkg or .dmg files.

Trying out Munki, a macOS software management system - screenshot 11

When software packages are added, specify in the manifest (site_default) which apps are installed automatically (Managed installs) and which are offered to end users as Optional installs.

Trying out Munki, a macOS software management system - screenshot 12

Save your work in Munki Admin and upload the whole repository to the private munki container in Azure Blob Storage.

Trying out Munki, a macOS software management system - screenshot 13

User Experience

The Managed Software Center (MSC) app is installed on an Intune-managed Mac (macOS 12) by the InstallMunki.sh script, and the Custom profile (.mobileconfig) lets the client connect to the private blob (munki) package repository.

The user started the installation of two apps, Citrix Workspace and Adobe Acrobat Reader.

Trying out Munki, a macOS software management system - screenshot 14

The progress bar is shown under Updates.

Trying out Munki, a macOS software management system - screenshot 15

Both apps are installed, with an option to remove them.

Trying out Munki, a macOS software management system - screenshot 16

Launchpad:

Trying out Munki, a macOS software management system - screenshot 17

Discover more from HMASLOWSKI.COM

Subscribe now to keep reading and get access to the full archive.

Continue reading