I’m a big fan of Munki (pronounced monkey, /ˈmʌŋki/, m ah nk ee, or Mung – KEY) an open-source project started by Walt Disney Animation Studios to deploy software and packages to Mac OS X and MacOS based clients. It is written mostly in Python, and it provides a nice way to enforce software installation and/or updates. And since it offers a Mac App Store like Client experience a lot of optional installations (e.g. self-service).

One of the things that I find very useful: You can use scripting as pre- and post-installation parts to customize everything. A few years ago (yep, I use this software for a while now) I started to build several packaged for others. Then the fist enterprise came along and asked me to help them out with an existing Munki installation, during that project, I created a lot of new packages and tweaked most of the existing ones.

Now, a couple of projects and years later, I found, that many still have issues creating packages with customization.

Here is my approach, and I try to stick with it whenever possible: Use packages that you can get from the Vendor, or the Project (if open Source). Even better: Establish an AutoPKG process and work with overrides!

Then use the power of shell scripts to tweak and customize. I’m a scripting guy! I know.

Here is an example for a script that heavily customize a Mozilla FireFox:

This should work with the regular Mozilla FireFox distribution, the FireFox Developer Edition, and the ESR Edition (my favorite).

Here is a PLIST File that should work with a plain Munki installation:

Why am I writing about something that I do for such a long time?
This Weekend a customer challenged me, with the following request: “We know you are a typical Server guy, could you help us to create a few packages?” (to explain that “Server guy”: I support them with Exchange and Windows Servers in general)
Me: „Yep, sure! Why not
Customer: „There is one thing: We use EMCO Remote Installer! And we talk about Windows.

First, I was a skeptical, and my first idea was to call a friend (He is a crack when it comes to Windows packing and deployment, even if he uses another product).
Then I started a bit of research, and soon I figured out: The EMCO Remote Installer supports PowerShell“!
And here we go again, I’m a scripting guy and after a few hours, we had around 10 packages ready, without repacking any MSI! All because of the power that the Shell provides!

Here is the same as above, just for 64Bit Windows:

I’m still not so into Windows as a client and Windows packing and deployments are still not my favorite work, but thanks to my existing Munki experience and a lot of PowerShell scripting; I could help these guys. Even If I never heard of the tool they use before and a very limited knowledge with Windows software deployments.
And the customer now let me update all the Munki stuff and prepare everything for an upcoming OS Update (They will go straight to MacOS High Sierra, as soon as it is released).

You will find all the stuff above on GitHub. Use it, it’s Open Source (And the PowerShell Demo is Public Domain).