安裝項目清單是由 VMware AirWatch Admin Assistant 生成,用於某些類型的安裝項目 (.dmg),但不適用於 Apple 套件 (.pkg 或 .mpkg)。您可以產生 (或修改) 此清單,這也是用來判定安裝狀態的最具彈性機制。

安裝清單可包含任何數量的項目,例如應用程式、偏好窗格、架構,或其他服務包式項目、info.plists、簡單目錄或檔案。您可以使用任意組合的項目,以協助 Munki 判定某個項目是否已安裝。

Firefox 6.0 自動產生「安裝」清單的範例

<key>installs</key><array><dict><key>CFBundleIdentifier</key><string>org.mozilla.firefox</string><key>CFBundleName</key><string>Firefox</string><key>CFBundleShortVersionString</key><string>6.0</string><key>minosversion</key><string>10.5</string><key>path</key><string>Applications/Firefox.app</string><key>type</key><string>application</string></dict></array>

若要判定 Firefox 6 是否已安裝,Munki 會檢查具有 org.mozilla.firefox 的 CFBundleIdentifier 的應用程式,如果有找到,會確認其版本 (CFBundleShortVersionString) 至少為 6.0。如果 Munki 找不到該應用程式,或其版本舊於 6.0,它會認為 Firefox 6.0 尚未安裝。安裝清單可包含多個項目。如果任何項目遺失,或具有較早版本,項目視為尚未安裝。您可以使用下列 pkginfo,手動產生要新增至安裝的清單項目:

        /Library/Application\ Support/AirWatch/Data/Munki/bin/makepkginfo -f /Library/Interne
        t\ Plug-Ins/Flash\ Player.plugin
      
        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/Prope
        rtyList-1.0.dtd">
        <plist version="1.0">
        <dict>
        
          <key>installs</key>
          <array>
           <dict>  <key>CFBundleShortVersionString</key> <string>10.3.183.5</string> <key>path</key> <string>/Library/Internet Plug-Ins/Flash Player.plugin</string> <key>type</key> <string>bundle</string>  </dict> 
          </array>
        
        </dict>
        </plist>
      

複製並貼上整個安裝的索引鍵和值,或複製 dict 值並新增至 pkginfo 檔案內的現有安裝清單。Munki 會檢查 /Library/Internet Plug-Ins/Flash Player.plugin 是否存在,若有找到,則會檢查其版本。如果版本舊於 10.3.183.5,項目將會視為尚未安裝。您可以產生任何 filesystem 項目的安裝項目,但 Munki 只能對含有 Info.plist 或 version.plist 版本資訊的服務包式項目判斷版本。

對於其他 filesystem 項目,Munki 只能判斷非服務包目錄是否存在,或計算 checksum (適用於檔案)。對於具有 checksum 的檔案,如果磁碟上的檔案總和檢查碼不符合 pkginfo 中的 checksum,則測試會失敗 (因此項目將會被視為未安裝)。

        <key>installs</key>
        <array>
        
          <dict>
           <key>md5checksum</key> <string>087fe4805b63412ec3ed559b0cd9be71</string> <key>path</key> <string>/private/var/db/dslocal/nodes/MCX/computergroups/loginwindow.plist</s tring> <key>type</key> <string>file</string> 
          </dict>
        
        </array>
      

如果您希望 Munki 僅檢查檔案是否存在,並且忽略其內容,請從安裝項目資訊中移除所產生的 md5checksum 資訊。請確保所提供的路徑不變。

        <key>installs</key>
        <array>
        
          <dict>
          <key>path</key>
          <string>/private/var/db/dslocal/nodes/MCX/computergroups/loginwindow.plist
          </string>
          <key>type</key>
           <string>file</string> 
          </dict>
        
        </array>