Disclaimer: Munki-Do is still a very much work in progress, so shouldn’t be used in production. I welcome the raising of issues, and pull requests.
Munki-Do (as in “munki see, munki do”) enables the manipulation of Munki packages via the web. Munki-Do is based on MunkiWebAdmin (v1) from Greg Neagle, and was forked from Steve Kueng’s own forked version (https://github.com/SteveKueng/munkiwebadmin) – this version utilises a more recent version of Django, and has significant UI changes in comparison with the original MunkiWebAdmin.
Some existing functionality from MunkiWebAdmin has been retained:
- Manifests: create/delete manifests, and manage the contents of manifests.
- Catalogs: view the contents of catalogs, view pkginfo file contents in tabular form.
New functionality has been added:
- Add multiple packages to a new or existing catalog
- Remove multiple packages from a catalog
- Move multiple packages to a new or existing catalog (i.e. replace existing catalog entry with another one, e.g. batch move a set of packages into the ‘production’ catalog)
- Delete packages and their associated pkginfo files
The remaining functionality of the original MunkiWebAdmin has been removed from Munki-Do, such as reporting and licensing tools, as there are other products that can do this better. I recommend:
- Sal: https://github.com/salopensource/sal
- MunkiReport-PHP: https://github.com/munkireport/munkireport-php
The function to manipulate pkginfo files utilises munkitools (specifically, the
makecatalogs command). This has been tested on an Ubuntu 14.04 VM, but you will need to ensure that your nginx user has write permissions to your munki repo. Use of group permissions is recommended.
The code which enables movement of packages between catalogs is a derivation of code from Munki-Trello by Graham Gilbert: https://github.com/grahamgilbert/munki-trello
A Docker container for Munki-Do is available here: https://github.com/grahampugh/docker-munki-do
I’ve also made a Docker container for Steve Kueng’s fork of MunkiWebAdmin, available here: https://github.com/grahampugh/docker-munkiwebadmin
Greg Neagle announced at MacSysAdmins this week that he is working on MunkiWebAdmin2, which will allow full editing of pkginfo files including the catalog key. He also announced that MunkiWebAdmin2 will drop licensing and reporting tools, as with Munki-Do. I decided to put Munki-Do in production anyway, since I’d been working on it for a while, and as it may still provide the additional benefit of bulk changes to catalogs, and the ability to delete packages and pkginfo files to keep your repository from becoming too large and unwieldy.
I welcome all feedback on whether this could become a useful tool in your workflow. I’ll revisit the tool once MunkiWebAdmin2 is released.