Munki-Do is based on MunkiWebAdmin (v1) from Greg Neagle, and was forked from Steve Kueng’s own forked version ( ) – this version utilises a more recent version of Django, and has significant UI changes in comparison with the original MunkiWebAdmin. Munki-Do (as in “munki see, munki do”) enables the manipulation of Munki packages via the web. I welcome the raising of issues, and pull requests. Take notice of the output of the build to ensure success! You can run the command again in a bash shell in the container if it fails during build.ĭisclaimer: Munki-Do is still a very much work in progress, so shouldn’t be used in production. In my testing, sometimes the above ssh-keyscan command is not successful during docker build, in which case your git commits will fail. Note that id_rsa must be first copied from ~/.ssh/ to the same folder as the Dockerfile. RUN ssh-keyscan > /root/.ssh/known_hosts RUN chown root: /root/.ssh/id_rsa & chmod 600 /root/.ssh/id_rsa My test Munki-Do host is a Docker Container, so I imported my SSH key from my host Mac into the Docker Container using commands in the Dockerfile: The process for doing this is described here. Since the Bitbucket repository is a private one, to enable automated interaction with the Bitbucket server, an ssh key needs to be generated on Munki-Do’s host, and the public key imported to the Bitbucket repo.
In my case, I’m running Munki-Do in a Docker Container, and the path is as follows:īitbucket doesn’t respond to -author flags in git commit commands, so Munki-Do has been recoded to set the author variables based on the current user using git config user.name and git config user.email commands. In Munki-Do, Git is enabled by setting the path to the git command on the system hosting Munki-Do, in settings.py.
I have extended the functionality of Munki-Do so that it can now update Git repos when changes are made to pkginfo files, and therefore catalogs. I intend to test these out and report in a future post. Git-LFS is another solution that could help. Alistair Banks describes an example Git Fat setup here. Even using your local organisation’s Git service could have bandwidth issues.Ī solution such as Git Fat could help with these issues, as the large files are dealt with separately.
However, using Git with Munki has challenges due to the munki repository containing potentially very large packages, unsuitable for free cloud Git repositories such as Bitbucket, and challenging for paid private repositories on Github or elsewhere due to bandwidth issues. Version control is an essential tool in any Mac Administrator’s workflow. $ git remote add origin git push -set-upstream origin master Munki-with-Git challenges This was done by editing /path/to/munki_repo/.gitignore and simply adding the line pkgs to the file. The pkgs folder was set to be ignored, as I didn’t want the large pkg/dmg/app files to be uploaded to the repo.The existing munki_repo folder was initialised for git using the commands: cd /path/to/munki_repo git init.Setting up the test Munki repo with Git was done as follows: I also started with an existing Munki repo, rather than setting up a new one. In my tests, I’ve been using a private repository on Bitbucket.
It describes how to set up a git repository on a server with which you have CLI access. Using Git with Munki is covered in the Munki Wiki. Over the past few days I’ve been looking at how Git can interact with Munki. Munki-Do inherited from its father MunkiWebAdmin by Greg Neagle et al., the ability to commit to a Git-initiated Munki Repo when making changes to Munki manifests.