Packaging and Deploying the macOS Installer

khurram
Contributor III

https://docs.jamf.com/technical-papers/jamf-pro/deploying-macos-upgrades/9.96/Packaging_and_Deployin...

JAMF's online document "Packaging and Deploying the macOS Installer" is misleading, errors are mentioned below.

Step 1: Add the .app File for macOS to Jamf Admin or Composer

Adding the .app File for macOS to Jamf Admin - this is not possible, you can't drag and drop an app file into Jamf Admin.
Adding the .app File for macOS to Composer - this is not possible, you can't create PKG file from app file, it gives you tiny 16MB file. You have to always create DMG for macOS files.

 

This document needs to be fixed. Thanks.

10 REPLIES 10

sgiesbrecht
Contributor III

1) Make sure the .app is in Applications folder
2) Open Composer and drag the .app into composer (left panel)
3) Click the Build as DMG

always worked for me from Catalina to Monterey

This is what we did eventually. However, the JAMF document suggests to create .PKG file which produces a 16MB .PKG file, this doesn't sound right as we were expecting the full 12GB+ full installer in .PKG format. Anyways, will use the .DMG file now. The difference is that on the target computer, the .PKG would have gone to /Applications folder however the .DMG will end up in /..../WaitingRoom folder.

sdagley
Esteemed Contributor II

@khurram @sgiesbrecht There is no need to waste time packaging the macOS Big Sur or Monterey installers. Apple has already done that for you, and the Mr. Macintosh site provides download links for those installers:

https://mrmacintosh.com/macos-12-monterey-full-installer-database-download-directly-from-apple/

https://mrmacintosh.com/macos-big-sur-full-installer-database-download-directly-from-apple/

 

sgiesbrecht
Contributor III

I haven't used lately, I use Nudge now
https://github.com/macadmins/nudge

 

RobertHammen
Valued Contributor II

Ever since the softwareupdate command got the --fetch-full-installer option, that approach has been a pointless exercise. Composer doesn't handle very large packages well.

/usr/sbin/softwareupdate --fetch-full-installer --full-installer-version 12.1

works fine for me. I've used this to pre-cache Install macOS Monterey.app on every compatible Mac not already on macOS 12. A caching server really, really helps with bandwidth here, too.

peternbevan
New Contributor III

Lots of useful info in this article, including a link to Armin Briegel's nice little Download Full Installer app which downloads InstallAssistant macOS packages which can be deployed straight to Jamf.  https://www.jamf.com/blog/reinstall-a-clean-macos-with-one-button/

khurram
Contributor III

We are updating from High Sierra so we can't use the command below. This command works from 10.15.* only. We might have to keep using Composer at this stage until next time.

/usr/sbin/softwareupdate --fetch-full-installer --full-installer-version 11.6.2

 

Thanks for all the replies, they have enlightened us with new ways of macOS upgrade paths.

daniel_ross
Contributor III

Are you looking to just get users upgraded to the latest version of an OS or use this for other things like erasing and reinstalling OS's?

We are doing --eraseinstall from High Sierra to Big Sur. We have now achieved it by making .DMG file using  Jamf Composer and dropped it in Jamf Admin and then Cache to the target computers and install the cache with a --eraseinstall command in the policy. This is working for us. Would like to know if there is a better way. Once we are beyond 10.15.x we will be able to make the most of the direct download and install macOS updates/ upgrades.

dlondon
Valued Contributor

For those older OS's that don't have --fetch-full-installer as an option of softwareupdateyou could download with a script like this.  Note this is just a rough proof of concept and I haven't tested the $4 and $5 bit but I thought it would be nice to have it easily changed.

 

 

 

#!/bin/bash
# DownloadMacOSInstallApp.bash
# List of available download url's is here https://mrmacintosh.com/macos-big-sur-full-installer-database-download-directly-from-apple/
# e.g. for 11.6.2 http://swcdn.apple.com/content/downloads/04/42/002-42341-A_4PL6G0S8GN/cs65avpi1aelh133lc36fy0ste3lihe71n/InstallAssistant.pkg
# 2022-01-11 David London
# Designed to take a field from Jamf Pro so it's easily changed to use with any download URL
# $4 is download url
# $5 is version

if [ -z "$4" ]; then
    echo "No argument supplied so doing default 11.6.2"
    DownloadURL="http://swcdn.apple.com/content/downloads/04/42/002-42341-A_4PL6G0S8GN/cs65avpi1aelh133lc36fy0ste3lihe71n/InstallAssistant.pkg"
else
    echo "Argument supplied so downloading version $5"
    DownloadURL="$4"
fi

# Some issue going on that needs retries for the download so used some info from here https://unix.stackexchange.com/questions/327372/can-i-make-curl-or-wget-restart-if-disconnected
counter=0
# do we want a limit on retries?
result=56
while [[ ${result} == 56 ]]; do
    curl -C - "$DownloadURL" -o /tmp/InstallAssistant.pkg
    result=$?
done

# Now deploy to /Applications
/usr/sbin/installer -pkg /tmp/InstallAssistant.pkg -target /