SUPERMAN deployment options

ScottEKendall
Contributor

I am curious to know what everyone is using for your SUPERMAN deployment script (of those of you who do  use SUPERMAN).  Here is my script:

https://github.com/ScottEKendall/JAMF-Pro-System-Scripts/blob/main/Superman%20Script.sh

I am pretty sure it is working, but I am curious if I missed something critical or some "fine tuning" might be in order...the docs on his website can be "daunting"...

Please let me know your thoughts / suggestions...

 

3 REPLIES 3

wakco
Contributor III

Actually per https://github.com/Macjutsu/super/wiki/Jamf-Pro-Deployment most of us just push out a config. profile with a policy that executes the super script from within Jamf Pro. super is self installing so that causes it to install with the options configured from the config profile, and any parameters provided with the script from Jamf Pro.

Mind sharing what your config profile looks like?  I haven't set that up yet, but plan to...just not sure if I got my implementation down correctly so I can convert it to a config profile...

daniel_behan
Contributor III

I use the config profile that passes the machine's JSSID to Super:  AuthJamfComputerID for version 4x and JamfProID for version 3x.  For minor updates, I use version 4 and up of super and for Major upgrades, I still use version 3 so the the custom trigger option will call a policy that uses erase-install for the upgrade.  That's mainly because I get impatient waiting for the APNS push of the OS and the end user gets a direct prompt for the actual OS Upgrade.  Here's an example of the version 4 script I use for minor update pushes.  

#!/bin/bash

# This script installs or upgrades to, then runs Version 4.0.3

# Path to the super working folder:
SUPER_FOLDER="/Library/Management/super"

# Path to the local property list file:
SUPER_LOCAL_PLIST="${SUPER_FOLDER}/com.macjutsu.super" # No trailing ".plist"

# Report if the super preference file exists.
if [[ -f "${SUPER_FOLDER}/super" ]]; then
	if [[ -f "${SUPER_LOCAL_PLIST}.plist" ]]; then
		super_version_local=$(defaults read "${SUPER_LOCAL_PLIST}" SuperVersion 2> /dev/null)
		[[ $(echo "${super_version_local}" | cut -c 1) -lt 4 ]] && super_version_local=$(grep -m1 -e 'superVERSION=' -e '  Version ' "${SUPER_FOLDER}/super" | cut -d '"' -f 2 | cut -d " " -f 4)
		[[ -n "${super_version_local}" ]] && echo "${super_version_local}"
		[[ -z "${super_version_local}" ]] && echo "No super version number found."
	else
		echo "No super preference file."
	fi
else
	echo "Not installed"
fi

function superSilicon () {
/Library/Management/super/super --auth-jamf-client="Your Client Here" --auth-jamf-secret="Your Secret Here" --install-macos-major-upgrades-off --install-non-system-updates-without-restarting --deferral-timer-focus=30 --deadline-count-focus=3 --deferral-timer-menu=20,120,240 --deadline-count-hard=3 
}

	if [[  $super_version_local == "4.0.3" ]]; then
		echo "Current Version"
		superSilicon
	else
		echo "Not Current"
		/usr/local/bin/jamf policy -event super4.0.3
		superSilicon
fi

exit 0