Getting fond memories of Sim City 2000, but not necessarily having the best time with Jamf Pro at the moment...
So I have the jamf connect metapackage going out and being installed - yes, all the permissions have been set to wheel/root, yes, it is signed, yes, by an apple developer ID cert, and yes, the cert is valid. It contains the jamfconnect PKG, branding assets, postintall script, and the notify script. It is being installed, as booting into the machine we are getting the jamfconnect login screen, which works normally.
However, after logging in, at the point where the notify script should be run, I am getting the generic notify screen and the "reticulating splines Again.." status message, to which I have to command +control + X to get past.
After the fact I check that the depnotify.log file does indeed exist in /var/tmp/, but it is blank. So it is appearing that the script is not running to update it - hence the splines.
I have tried several scripts, thinking that maybe I made the process too complicated for it, but it seems that doesn't matter in my case.
So, while I open a ticket with Jamf support, I am putting my config out here (with omissions to protect the innocent) so that any blaring issues can be pointed and laughed at.
Prestage Config:
- installs 2 packages:
- jamfconnectlaunchagent.pkg
- jamfconnectmetapackage.pkg
- installs various config profiles, but the main two we are concerned with are:
- Jamf Connect CA - MFA
- Jamf Connect Login CA - MFA
(we use Azure with conditional access MFA)
The settings for the Jamf Connect CA - MFA config profile are:
- Computer Level
- Install Automatically
Applications and Custom Settings plist for com.jamf.connect (just for full transparency):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>HiddenMenuItems</key>
<array>
<string>about</string>
<string>preferences</string>
<string>quit</string>
</array>
<key>IdPSettings</key>
<dict>
<key>ChangePasswordURL</key>
<string>nope</string>
<key>DiscoveryURL</key>
<string>https://nope</string>
<key>Provider</key>
<string>Azure</string>
<key>ROPGID</key>
<string>nope</string>
<key>ResetPasswordURL</key>
<string>nope</string>
<key>TenantID</key>
<string>nope</string>
</dict>
<key>LicenseFile</key>
<data>
imagine
</data>
<key>SignIn</key>
<dict>
<key>AutoAuthenticate</key>
<true/>
<key>SignInLogo</key>
<string>/usr/local/jamfconnect/logo.png</string>
</dict>
<key>UserHelp</key>
<dict>
<key>HelpOptions</key>
<string>https://noneya</string>
<key>HelpType</key>
<string>URL</string>
</dict>
</dict>
</plist>
The settings for the Jamf Connect Login - CA MFA config profile are:
- Computer Level
- Install Automatically
Applications and Custom Settings plist for com.jamf.connect.login:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>OIDCUsePassthroughAuth</key>
<true/>
<key>OIDCProvider</key>
<string>Azure</string>
<key>OIDCClientID</key>
<string>nope</string>
<key>OIDCROPGID</key>
<string>nope</string>
<key>OIDCRedirectURI</key>
<string>https://127.0.0.1/jamfconnect</string>
<key>OIDCAdmin</key>
<string>Administrator</string>
<key>OIDCAdminAttribute</key>
<string>roles</string>
<key>OIDCIgnoreAdmin</key>
<false/>
<key>OIDCTenant</key>
<string>nope</string>
<key>OIDCDiscoveryURL</key>
<string>https://nope</string>
<key>OIDCScopes</key>
<string>api://nope</string>
<key>CreateJamfConnectPassword</key>
<true/>
<key>LocalFallback</key>
<true/>
<key>DenyLocal</key>
<true/>
<key>DenyLocalExcluded</key>
<array>
<string>local_admin</string>
</array>
<key>LicenseFile</key>
<string>imagine</string>
<key>Migrate</key>
<true/>
<key>MigrateUsersHide</key>
<array>
<string>local_admin</string>
</array>
<key>BackgroundImage</key>
<string>/usr/local/jamfconnectbranding/background.jpg</string>
<key>LoginLogo</key>
<string>/usr/local/jamfconnectbranding/logo.png</string>
<key>AllowNetworkSelection</key>
<true/>
<key>ScriptPath</key>
<string>/usr/local/jamfconnectbranding/newnotify.sh</string>
</dict>
</plist>
Applications and Custom Settings plist for com.jamf.connect.authchanger:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Arguments</key>
<array>
<string>-reset</string>
<string>-JamfConnect</string>
<string>-Notify</string>
</array>
</dict>
</plist>
So with that out of the way, here are the two scripts that I had set up, both of which failed with the splines error.
#1
#!/bin/zsh
#variables
JAMFBIN="/usr/local/bin/jamf"
echo "STARTING RUN" >> /var/tmp/depnotify.log
# Define the number of increments for the progress bar
echo "Command: Determinate: 11" >> /var/tmp/depnotify.log
#1 - Introduction window with username and animation
echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.macbookpro-15-retina-touchid-silver.icns" >> /var/tmp/depnotify.log
echo "Command: MainTitle: Welcome, to your new mac!" >> /var/tmp/depnotify.log
echo "Command: MainText: Your Mac is now enrolled and will be automatically configured for you." >> /var/tmp/depnotify.log
echo "Status: Preparing your new Mac..." >> /var/tmp/depnotify.log
sleep 10
# Check the path of the Jamf client binary. If not present yet, wait 2 seconds and
# check again.
until [ -f $JAMFBIN ]
do
echo "Status: Waiting on Jamf" >> /var/tmp/depnotify.log
sleep 2
done
#2 - Setting up single sign-on passwords for local account
echo "Command: Image: /System/Applications/Utilities/Keychain Access.app/Contents/Resources/AppIcon.icns" >> /var/tmp/depnotify.log
echo "Command: MainTitle: Tired of remembering multiple passwords?" >> /var/tmp/depnotify.log
echo "Command: MainText: We use single sign-on services to help you sign in to each of our corporate services.\\\\nUse your email address and account password to sign in to all necessary applications." >> /var/tmp/depnotify.log
echo "Status: Setting the password for your Mac to sync with your network password..." >> /var/tmp/depnotify.log
sleep 10
#3 - Self Service makes the Mac life easier
echo "Command: Image: /Applications/Self Service.app/Contents/Resources/AppIcon.icns" >> /var/tmp/depnotify.log
echo "Command: MainTitle: Self Service makes Mac life easier" >> /var/tmp/depnotify.log
echo "Command: MainText: Self Service includes helpful bookmarks and installers for other applications that may interest you." >> /var/tmp/depnotify.log
echo "Status: Installing Self Service..." >> /var/tmp/depnotify.log
/usr/local/bin/jamf policy -event "InstallTeamViewer"
sleep 10
#4 - Everything you need for your first day, Installing Office
###Jamf Triggers
echo "Command: Image: /usr/local/jamfconnectbranding/office-365-icon.png" >> /var/tmp/depnotify.log
echo "Command: MainTitle: Installing everything you need for your first day." >> /var/tmp/depnotify.log
echo "Command: MainText: All the apps you will need today are already being installed. When setup is complete, you'll find Microsoft Office, Teams, Box, Cisco AnyConnect VPN, Google Chrome are all ready to go. Launch apps from the Dock and have fun!" >> /var/tmp/depnotify.log
echo "Status: Installing Microsoft Office..." >> /var/tmp/depnotify.log
/usr/local/bin/jamf policy -event "InstallOffice"
sleep 5
#5 - Installing Teams
echo "Command: Image: /usr/local/jamfconnectbranding/teamslogo.png" >> /var/tmp/depnotify.log
echo "Status: Installing Microsoft Teams..." >> /var/tmp/depnotify.log
/usr/local/bin/jamf policy -event "InstallTeams"
sleep 30
#6 - Installing Box
echo "Command: Image: /usr/local/jamfconnectbranding/box.png" >> /var/tmp/depnotify.log
echo "Status: Installing Box Drive..." >> /var/tmp/depnotify.log
/usr/local/bin/jamf policy -event "InstallBox"
sleep 30
#7 - Installing Defender
echo "Command: Image: /usr/local/jamfconnectbranding/windef.png" >> /var/tmp/depnotify.log
echo "Status: Installing Microsoft Defender Anti-Virus..." >> /var/tmp/depnotify.log
/usr/local/bin/jamf policy -event "InstallDefender"
sleep 30
#8 - Installing Cisco AnyConnect
echo "Command: Image: /usr/local/jamfconnectbranding/anyconnect.png" >> /var/tmp/depnotify.log
echo "Status: Installing Cisco AnyConnect VPN..." >> /var/tmp/depnotify.log
/usr/local/bin/jamf policy -event "InstallCiscoVPN"
sleep 30
#9 - Installing Chrome
echo "Command: Image: /usr/local/jamfconnectbranding/chrome.png" >> /var/tmp/depnotify.log
echo "Status: Installing Google Chrome..." >> /var/tmp/depnotify.log
/usr/local/bin/jamf policy -event "InstallChrome"
sleep 30
#10 - Finishing up
echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ApplicationsFolderIcon.icns" >> /var/tmp/depnotify.log
sleep 5
echo "Status: Finishing up... We're almost ready for you." >> /var/tmp/depnotify.log
sleep 3
##Creating file to establish that enrollment has completed
#### This corresponds to the Extension Attribute "Post-Enrollment Complete File Exists"
touch /usr/local/jamfconnect/enrollmentcomplete.txt
###Clean Up
sleep 3
echo "Command: Quit" >> /var/tmp/depnotify.log
sleep 1
#11 - Disable notify screen from loginwindow process
#/usr/local/bin/authchanger -reset -JamfConnect
#2 (simplified)
#!/bin/zsh
#Variable List:
JAMFBIN="/usr/local/bin/jamf"
# Notify Mechanism:
# Change the default text displayed to the user
echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.macbookpro-15-retina-touchid-silver.icns" >> /var/tmp/depnotify.log
echo "Command: MainTitle: Welcome to Gizmonics!" >> /var/tmp/depnotify.log
echo "Command: MainText: Welcome to your new Mac.\\\\nSit tight as we do some basic setup to get you ready for success.\\\\nYou can see the status of the setup on the progress bar below." >> /var/tmp/depnotify.log
# Update the user of the status of the onboarding
echo "Status: Installing Jamf" >> /var/tmp/depnotify.log
# Check the path of the Jamf client binary. If not present yet, wait 2 seconds and
# check again.
until [ -f $JAMFBIN ]
do
echo "Status: Waiting on Jamf" >> /var/tmp/depnotify.log
sleep 2
done
# Notify the user that we will let Jamf Pro take over at this point
echo "Status: Passing command and control to Jamf Pro" >> /var/tmp/depnotify.log
# Call a custom triggers
echo "Status: Installing TeamViewer Host" >> /var/tmp/depnotify.log
$JAMFBIN policy -event InstallTeamViewer
echo "Status: Installing Microsoft Office" >> /var/tmp/depnotify.log
$JAMFBIN policy -event InstallOffice
echo "Status: Installing Microsoft Teams" >> /var/tmp/depnotify.log
$JAMFBIN policy -event InstallTeams
echo "Status: Installing Box Drive" >> /var/tmp/depnotify.log
$JAMFBIN policy -event InstallBox
echo "Status: Installing Microsoft Defender Antivirus" >> /var/tmp/depnotify.log
$JAMFBIN policy -event InstallDefender
echo "Status: Installing Cisco AnyConnect VPN" >> /var/tmp/depnotify.log
$JAMFBIN policy -event InstallCiscoVPN
echo "Status: Installing Google Chrome" >> /var/tmp/depnotify.log
$JAMFBIN policy -event InstallChrome
echo "Status: Finishing up... We're almost ready!" >> /var/tmp/depnotify.log
sleep 3
#5 - Clean Up
sleep 3
echo "Command: Quit" >> /var/tmp/depnotify.log
sleep 1
rm -rf /var/tmp/depnotify.log
#6 - Disable notify screen from loginwindow process
/usr/local/bin/authchanger -reset -JamfConnect
So that's it. And I am absolutely stumped on this one. Anyone have any thoughts on this mess?