Configuring Munki for a Mac Server

Hi again, and welcome to the first instructional blog in this Munki series. In this blog I will show you how I configure a Munki Repository server (aka ‘Munki Server’). This is part one of three parts required to setup the Munki solution in its most basic form.

Some notes for this series:

  • These instructions have been written for our internal teams and for our typical installations.. Tweaks may be required to fit your exact setup.
  • The server used in these examples is Mac OS X Server 10.8.4
  • The server uses Mac Server App version 2.2.1.
  • The server has been configured with a boot drive called “ServerHD” and a data drive called “DataHD” for the services data.
  • The clients used in these examples are Mac OS X 10.8.4, although the instructions have been tested on Mac OS X 10.8.2+.
  • Munki is provided free of charge under the Open Source license. Although free, your mileage may vary, so test any solutions heavily before rolling them out as ‘live’.

Additional information can be found on the Munki site.

Munki Server Requirements

Being a Mac consultant you would be right to assume that this guide is written for creating and using a Munki Server based on Mac OS X Server. However the requirements are fairly open with almost any web server being able to fill the role with some people reporting success with a NAS box!
The Munki Server, in its ‘normal’ configuration, is simply used to provide a file system on a web server for the clients to access.

Guide

You have your Mac Server installed and configured with 10.8.4 and Server app 2.2.1. This has both forward and reverse lookups configured and working fine. If you are going to use Apple’s Profile Manager, I’d recommend the server service side of things is also configured before carrying out these steps.

Enable the service and create the folder structure

  1. Enable the “Websites” service at default settings, using the Server app.Enable the Websites service at default settings, using the Server app.
  2. Check the service is working by clicking the “View Server Website” option below the “Websites” table. If you see a “Welcome to Server” page then all is good.Check the service is working by clicking the “View Server Website” option below
  3. Once this is working fine, quit both Safari and Server app. Launch the Terminal application.
  4. Navigate to the Service data storage location.
    e.g.

    cd /Volumes/DataHD

    navigate to the Service data storage location.

  5. Create a folder to store the Munki data in.
    e.g.

    mkdir "Munki"

    create a folder to store the Munki data in.Create a folder to store the Munki data in.

  6. Navigate into this new directory.
    e.g.

     cd Munki

    Navigate into this new directory

  7. Create the top level directory called “munki_repo”.
    e.g.

    mkdir "munki_repo"

    create the top level directory called munki_repo

  8. Navigate into this new directory.
    e.g.

    cd munki_repo

    Navigate into this new directory

  9. Create the following directories inside the “munki_repo” directory:
    a. catalogs
    b. manifests
    c. pkgs
    d. pkgsinfo
    e.g.

    mkdir "catalogs"
    mkdir "manifests"
    mkdir "pkgs"
    mkdir "pkgsinfo"

    Create the following directories inside the munkirepo directorymunki repo

  10. Set the correct permissions on these directories (a+rX).Set the correct permissions on these directories

    Link the Munki Repository with the Web Service

  11. Leave Terminal open. Relaunch the Server.app and navigate back to the “Websites” service.
  12. Double click the default “Server Website” item to edit these settings.double click the default Server Website item to edit these settings
  13. Click the arrow next to the “Store Site Files In: Default” Box. Make a note of where this default store is. By default, this will be “/Library/Server/Web/Data/Sites/Default/” (colour coded for later use).Link the Munki Repository with the Web ServiceLink the Munki Repository with the Web Service
  14. Use Terminal to create a symlink called “munki_repo” in the default websites directory, pointing to your “munki_repo” directory created in step 7. For your site, change the section in red to match the location of your munki_repo and the section in blue to match your web site directory.
    Please Note:
    This command is on one line.
    e.g.
    sudo ln –s /Volumes/DataHD/Munki/munki_repo
    /Library/Server/Web/Data/Sites/Default/

    This step allows us to store the Munki Repository off the Server boot drive (best practice) but still use the default Web Server location, simplifying the installation.Use Terminal to create a symlink called munkirepo

  15. Close any open Finder and Terminal windows and switch back to the Server App.
  16. Click the “Edit Advanced Settings…” button.Click the Edit Advanced Settings button
  17. Select the tick box called “Allow Folder Listing” and click “OK”. Click “Done” on the “Server Website” screen.Select the tick box called Allow Folder Listing and click OK
  18. Launch Safari and navigate to “127.0.0.1/munki_repo”.Launch Safari and navigate to 127.0.0.1/munki_repo
  19. If you see the folder listing created in step 9 then your Munki Server is fully configured. Repeat steps 16 and 17 to disable the folder listing for security purposes.If you do not see the folder structure then repeat the steps. It’s likely your symlink might be incorrect, or you’ve not closed the Website settings (and so the changes haven’t been applied).

Summary

There you go. Your Munki Repository Server should be configured ready for some clients. Next time, we jump into configuring a Munki Admin machine (the Darren method), for adding installers to your Munki Repo.

Any hints, tips or opinions? Let us know in the comments below, it would be great to hear your feedback!

 

 

Disclaimer:

While the author has taken care to provide our readers with accurate information, please use your discretion before acting upon information based on the blog post. Amsys will not compensate you in any way whatsoever if you ever happen to suffer a loss/inconvenience/damage because of/while making use of information in this blog.

13 Replies to "Configuring Munki for a Mac Server"

  • Hi Peter,

    Thanks very much, I’m planning on a few more around Munki so keep checking back, or sign up for the free updates on new blogs (top right hand corner of this page).

    Darren

  • Great Tutorial. 7th one I’ve gone through today as a first time Munki user. And only one that worked like a charm.

  • Nick Harvey

    Hi Darren – I have followed all the steps for the web server config, but when I browse to the repo I get a ‘you do not have permissions to access ‘ – any ideas what I have done wrong?
    Thanks

    • Darren Wallace

      Hi Nick,

      Thanks for the comment.

      Two possibilities that I can think of:
      1) did you run the ‘chmod’ command on the munki_repo folder?
      write out (don’t copy and paste) the below command:
      `chmod -R a+rZ /path/to/munki_repo`

      2) In order to browse the repo in a web browser, you’ll need to have ‘Allow Folder Listing’ enabled (steps 16-19).
      However, once you’ve done this to confirm it works, Ensure to turn it off again!

      Hope that helps!

      Darren

  • Hi there! I could have sworn I’ve been to this website before but after reading
    through some of the post I realized it’s new to me.
    Anyways, I’m definitely happy I found it and I’ll be bookmarking and checking back often!

  • Ahmad Daraghmeh

    Hello Darren, great post. I plan to try this soon on a new Mac mini i setup for DeployStudio.
    It is running 10.11.6, as are most of my end users. Anything I need to watch out for?

    • Darren Wallace

      Hi Ahmad,
      Thanks for your comment. The main ‘gotchas’ are in the Blog series but it is worth noting that Munki went through a few additions in its v2 release a little while ago. Also there is further work on a v3 release but none of which should affect what you describe.

      I’d suggest hitting up the Munki-Dev and Munki-Discuss mailing lists, as well as the Munki Channel (#munki) on the Mac Admins Slack instance (free and you can join here).

      Good luck!

      Darren

Leave a Reply

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