{"id":79,"date":"2019-01-27T06:00:04","date_gmt":"2019-01-27T06:00:04","guid":{"rendered":"https:\/\/www.alansiu.net\/munkiguide\/?p=79"},"modified":"2025-08-07T04:28:01","modified_gmt":"2025-08-07T04:28:01","slug":"usingmanifests","status":"publish","type":"post","link":"https:\/\/www.alansiu.net\/munkiguide\/usingmanifests\/","title":{"rendered":"Using manifests to make Munki items available to users"},"content":{"rendered":"<h2>Tools for managing Munki manifests<\/h2>\r\n<p>You can manipulate your Munki repo using only command-line tools, and I would highly recommend you keep using <em>munkiimport<\/em> for all manual item imports (again, we&#8217;ll get to automated imports later), but I use a GUI (graphical user interface) app to manage my repo day to day, so I recommend using one. For these tutorials, I&#8217;ll be using <a href=\"https:\/\/github.com\/hjuutilainen\/munkiadmin\/releases\/latest\" target=\"_blank\" rel=\"noopener\">MunkiAdmin<\/a><!--, which is a native Mac app, but you may also want to look into the web app <a href=\"https:\/\/github.com\/munki\/mwa2\" target=\"_blank\" rel=\"noopener\">mwa2<\/a>, which uses <a href=\"https:\/\/www.djangoproject.com\/\" target=\"_blank\" rel=\"noopener\">Django<\/a>-->.<\/p>\r\n<p>If you have time to explore the command-line tool <a href=\"https:\/\/github.com\/munki\/munki\/wiki\/manifestutil\" target=\"_blank\" rel=\"noopener\">manifestutil<\/a>, you may find it useful for quick direct manifest manipulation without having to deal with a GUI.<\/p>\r\n<h2>What is a manifest?<\/h2>\r\n<p>Expanding a bit on <a href=\"https:\/\/www.alansiu.net\/munkiguide\/howmunkiworks\/\">How does Munki work?<\/a>, manifests are the key to deploying software to your fleet of Macs. One of the most frequently asked questions about Munki is <a href=\"https:\/\/github.com\/munki\/munki\/wiki\/FAQ#q--i-just-set-up-munki-and-theres-nothing-available-to-install-in-managed-software-center-and-theres-no-sidebar-showing-software-or-categories-how-do-i-make-things-to-install-show-up-there\" target=\"_blank\" rel=\"noopener\">I just set up Munki and there&#8217;s nothing available to install in Managed Software Center, and there&#8217;s no sidebar showing &#8220;Software&#8221; or &#8220;Categories&#8221;. How do I make things to install show up there?<\/a>, and that&#8217;s because a lot of new Munki admins don&#8217;t really understand what a manifest is.<\/p>\r\n<p>When your Munki clients check in with the Munki repo, one of the first things they&#8217;ll look for is a manifest, which tells the client what software it has available to install optionally, which software must be installed, which software must be updated, and which software must be removed.<\/p>\r\n<h3>Catalogs and manifests<\/h3>\r\n<p>One part of a manifest is the catalog(s) it has available to it. Remember when you imported an item with <em>munkiimport<\/em>, and it asked what catalog you wanted to import it into? You started with the <em>testing<\/em> catalog, which is a good place to start. If you have Firefox 141.0.3 in the <em>testing<\/em> catalog and Firefox 141.0.2 in the <em>production<\/em> catalog, the manifests that have the <em>testing<\/em> catalog will see 141.0.3 as the latest version of Firefox to update to or install, and the manifests that have the <em>production<\/em> catalog will see 141.0.2 as the latest version available. If one manifest has both <em>testing<\/em> and <em>production<\/em> catalogs, Munki will consider whichever one is listed first (literally the manifest is a XML-formatted text file, and whichever catalog is listed above the other in the text file).<\/p>\r\n<p>For now, just to keep things simple, we&#8217;re going to use only the <em>testing<\/em> catalog. We can look at using a <em>production<\/em> catalog later.<\/p>\r\n<p>Some Munki admins use the analogy of the catalogs being stores and the manifests being what you put in your basket or shopping cart, but there isn&#8217;t really a good exact analogy for this, because stores can&#8217;t force you to buy certain items or force you to return items that you may own.<\/p>\r\n<p>Bottom line, a manifest can install, remove, or update only versions of items that are in the catalog(s) it uses.<\/p>\r\n<h2>Creating and modifying a manifest using MunkiAdmin<\/h2>\r\n<p>So if you install and launch up <a href=\"https:\/\/github.com\/hjuutilainen\/munkiadmin\/releases\/latest\">MunkiAdmin<\/a>, the first thing you&#8217;ll see is a prompt for what repository to use.<\/p>\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"304\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin01.png\" alt=\"MunkiAdmin dialogue asking for the Munki repo location\" class=\"wp-image-81\" srcset=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin01.png 510w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin01-300x179.png 300w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Go ahead and pick the repo that you&#8217;d set up earlier in <strong>\/Users\/Shared\/munki_repo\/<\/strong><br><\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"323\" height=\"104\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin02.png\" alt=\"New Manifest menu selection in MunkiAdmin\" class=\"wp-image-83\" srcset=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin02.png 323w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin02-300x97.png 300w\" sizes=\"auto, (max-width: 323px) 100vw, 323px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Under the <strong>File<\/strong> menu, select <strong>New Manifest<\/strong><\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"232\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin03.png\" alt=\"MunkiAdmin dialogue to create manifest\" class=\"wp-image-84\" srcset=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin03.png 600w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin03-300x116.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">For the file name, type in <strong>site_default<\/strong><br><\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"559\" height=\"159\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin04-1.png\" alt=\"Manifests view in MunkiAdmin\" class=\"wp-image-89\" srcset=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin04-1.png 559w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin04-1-300x85.png 300w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">There are three views in MunkAdmin\u2014the packages view, the catalogs view, and the manifests view. If you switch to the manifests view, you can then double-click the <strong>site_default<\/strong> manifest to edit it.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"889\" height=\"600\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin05.png\" alt=\"Manifest editing options in MunkiAdmin\" class=\"wp-image-90\" srcset=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin05.png 889w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin05-300x202.png 300w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin05-768x518.png 768w\" sizes=\"auto, (max-width: 889px) 100vw, 889px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">There are a whole bunch of manifest options to edit. The only available catalog is <em>testing<\/em>, because the only item in the Munki repo right now is Firefox, and the only catalog Firefox has right now is <em>testing<\/em>.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"889\" height=\"600\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin06.png\" alt=\"MunkiAdmin manifest options with testing checkbox checked\" class=\"wp-image-91\" srcset=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin06.png 889w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin06-300x202.png 300w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin06-768x518.png 768w\" sizes=\"auto, (max-width: 889px) 100vw, 889px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Go ahead and check (or tick) the box next to <strong>testing<\/strong> to allow the <em>site_default<\/em> manifest to items from the <em>testing<\/em> catalog.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"204\" height=\"165\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin07.png\" alt=\"Optional installs section in the manifest editor in MunkiAdmin\" class=\"wp-image-92\"\/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">On the left side, click on <strong>Optional&nbsp;Installs<\/strong>.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"134\" height=\"91\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin08.png\" alt=\"Plus and minus signs in the manifest editor of MunkiAdmin\" class=\"wp-image-93\"\/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Click the plus (+) sign to add an item to the optional installs section of the manifest. (When I took this screenshot, the latest Firefox was 64.0.2, but MunkiAdmin show whatever version you imported.)<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"475\" height=\"607\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin09.png\" alt=\"Item selection part of optional installs for a manifest in MunkiAdmin\" class=\"wp-image-94\" srcset=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin09.png 475w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin09-235x300.png 235w\" sizes=\"auto, (max-width: 475px) 100vw, 475px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Right now, the only item we have to pick from is Firefox, so go ahead select that and then click <strong>Add&nbsp;Selected<\/strong> to add it to the <em>optional_installs<\/em> section of the <em>site_default<\/em> manifest.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"90\" height=\"71\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin10.png\" alt=\"Save button in MunkiAdmin\" class=\"wp-image-95\"\/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Then, click <strong>Save<\/strong> to save your changes to the <em>site_default<\/em> file in the <em>manifests<\/em> folder.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"818\" height=\"259\" src=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin11.png\" alt=\"Text of manifest file\" class=\"wp-image-96\" srcset=\"https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin11.png 818w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin11-300x95.png 300w, https:\/\/www.alansiu.net\/munkiguide\/wp-content\/uploads\/2019\/01\/munkiadmin11-768x243.png 768w\" sizes=\"auto, (max-width: 818px) 100vw, 818px\" \/><\/figure>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">If you go to <strong>\/Users\/Shared\/munki_repo\/manifests\/site_default<\/strong> and open it up in a text editor, you&#8217;ll see that the catalog this manifest uses is the <em>testing<\/em> catalog, and it has one optional install available to clients using this manifest\u2014<em>Firefox<\/em>.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Once a client machine connects to the Munki repo, it will be able to install Firefox or remove it.<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Tools for managing Munki manifests You can manipulate your Munki repo using only command-line tools, and I would highly recommend you keep using munkiimport for all manual item imports (again, we&#8217;ll get to automated imports later), but I use a GUI (graphical user interface) app to manage my repo day to day, so I recommend [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-79","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_shortlink":"https:\/\/wp.me\/paDrAJ-1h","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/posts\/79","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/comments?post=79"}],"version-history":[{"count":17,"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/posts\/79\/revisions"}],"predecessor-version":[{"id":509,"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/posts\/79\/revisions\/509"}],"wp:attachment":[{"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/media?parent=79"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/categories?post=79"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alansiu.net\/munkiguide\/wp-json\/wp\/v2\/tags?post=79"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}