Music Creation Software Deployment Challenges

mhegge
Contributor III

In our lab environment(s) for the music department, we have a number of software packages that are installed on the lab iMac. The real challenge is that many of these software applications are not conducive with mass deployment. Licensing, dongles, sheer size, etc. really prohibit deplying via JAMF Pro.

With imaging as-we-know-it going away, this provides additional challenges.

Would like to put it out there is the JAMF-nos-sphere as to how others are dealing with the challenges.

Examples of software we are dealing with:
Pro Tools
KOMPLETE (Native Instruments)
Ableton Live
Logic Pro X (not a real issue, just it ties in with Native Instruments stuff)

Non-music related software that is also challenging:
AutoDesk (MAYA)
Camtasia

10 REPLIES 10

wakmw
New Contributor

I've spent a few days on this. I'm quite new to JAMF and primarily a Windows SysAdmin.
I had to write a powershell script to deploy Native Instruments on Windows. So I've used the same script and adapted it for Macs.
So you need to deploy Powershell Core 6 as a package. Powershell Core 6 Package
Create a Policy called "Install Native Instruments"
Add Native Access as a package.
Add the powershell script as a package and make sure the script goes into /private/var/tmp/ni.ps1

I decided just to start it from Self Service rather than after enrollment.
Add this as the Script within the policy $4 and $5 parameters are Username and Password defined within the policy.

#!/bin/bash mkdir /Volumes/Native mount_smbfs //"domain>;$4:$5"@<server>/<share /Volumes/Native/ pwsh -File /private/var/tmp/ni.ps1
$tempdir = test-path "/temp" if ($tempdir -ne $true){ New-Item -ItemType "Directory" -Path /temp -ErrorAction "Continue" -Verbose} Start-Transcript -Path "/temp/logs/NI.log" -Verbose $isos = Get-ChildItem -Path "/Volumes/Native/Native Instruments/data" | Select-Object -ExpandProperty "FullName" $softwarenames = Get-ChildItem -Path "/Volumes/Native/Native Instruments/data" | Select-Object -ExpandProperty "BaseName" foreach ($iso in $isos){ $softwarenamespace = $softwarename -replace " "," " $nisoftwaredir = Test-Path "/Volumes/nisoftware" if ($nisoftwaredir -ne $true){ New-Item /Volumes/nisoftware -ItemType Directory -ErrorAction "Continue" -Verbose} hdiutil mount $iso -mountpoint /Volumes/nisoftware/ $pkgs = Get-ChildItem /Volumes/nisoftware *.pkg | Select-Object -ExpandProperty FullName foreach ($pkg in $pkgs){ Start-Process 'installer' -ArgumentList "-pkg "$pkg" -target /" -Wait} hdiutil unmount -force /Volumes/nisoftware} hdiutil unmount -force /Volumes/Software Remove-Item /Volumes/nisoftware -Force -ErrorAction "Continue" -Verbose Remove-Item /Volumes/Native -Force -ErrorAction "Continue" -Verbose Stop-Transcript -Verbose

You do need to manually login to Native Access as an administrator post install.

bumbletech
Contributor III

Camtasia is available on the Mac App Store. VPP should make that deployment fairly simple.

jstasik
New Contributor II

@wakmw , can you elaborate a little on your script?

  • If I recall, after installing Native Access, you needed to then select what components (plugins) you would be installing. Does your script accomplish that?
  • We purchased both the NI Komplete standard and Ultimate bundles for different computer labs, so not legally allowed to use all of the plugins on all of the machines, so not sure if you came across that possibility and how you may have addressed it.
  • For the $4 and $5 variables, are they the NI username and password?
  • Lastly, did you reference any documentation from NI when creating this script?

PaulHazelden
Valued Contributor

Ableton Live
I use Composer to make a pkg of the install (copy the app to Applications) for both Live suite and Max4Live.
I then authorise the app on the test Mac.
Then with Composer taking a snapshot I then open Live and install the Packs. Then I will build the packs installer.
I use Jamf to push this lot out to the Labs required, then Log in as Administrator and authorise Live and establish the connection to Max4Live.

Komplete 11
Horrible 126Gb download.
Suggested method - Install Native Access and then use it to install everything, on each Mac.
I normally use Composer to capture the main install of the Apps, but make it ignore the location for the libraries.
Then I use Composer to make pkg's of the library files, keeping them down to a suitable size.
And push this lot out with Jamf. Then on each Mac I log in as Administrator and open Native Access and let it authorise each install.
I do have a copy of all of the ISO files of all of the installers, and when I get the time I intend to build it again using them so I get a proper vanilla install of them. What a faff to get the ISO files, you have to do them one at a time and as soon as the ISO downloads, and starts to install you grab the ISO and move it to a different folder.

Logic, and GarageBand
VPP distributes the Apps for me.
I then use a test Mac to capture the essential sounds for each, and then I will do the same for the full sound library.
I will then bundle the installers into folders up to around 5Gb in size, and compress the folder and then run a post install script to install everything from each compressed archive. Takes a while to sort, but then it works.

Autodesk Maya and Mudbox
I use Jamf to push out the installers, and as we have an autodesk license server, I just need to log in as Admin and point them to the server.

Pixologic zBrush
This used to be a total pain to manage, but we moved to a License server version, now it is pretty easy to push out. The plugins still require setting up by Admin.

apizz
Valued Contributor

Music image is always our biggest challenge. That being said, over the years I've been able to automate the bulk of things that had tripped me up in the past.

Last year I went the route of setting up munki (https://github.com/munki/munki) in our environment given it's ability to install PKGs and copy apps to /Applications. This extra flexibility has made so much simpler to deploy our software across our fleet and greatly reduced the time I've historically had to spend manually building packages. As one example, because Ableton is distributed as a drag-and-drop app, I no longer have to repackage it using Composer.

Even if you don't want or plan to go the munki route, autopkg (https://github.com/autopkg/autopkg) can save you a heck of a lot of time.

Komplete 11
We don't have this, but my understanding is there is a great autopkg recipe which automates this process. If you haven't explored autopkg, this would definitely be a good reason.

Maya
Checkout https://www.jamf.com/jamf-nation/discussions/10267/packaging-autodesk-maya#responseChild171427

Given Maya uses an installer app to handle all the various integrated pkgs within, this is something we still build with Composer. I've pasted some instructions from our internal docs.

  1. Go to http://www.autodesk.com/account and sign in with account
  2. Scroll down the list of software to Maya. Click the arrow tick to expand the Maya software and click Downloads. You'll also see the Serial Number and Product Key for Maya. We'll need this as part of the postinstall script when we package up the Maya software.
  3. In the Maya download overlay window, click the Browser Download button.
  4. Once downloaded, open the DMG file and copy the Maya installer app from the DMG. Edit Build Custom Maya Installer
  5. Download & Open Composer on the laptop you are testing with. Authenticate with admin credentials when prompted.
  6. Open a Finder window and go to /private/tmp and drag a file to the left sidebar of Composer to create a new project. This copies the folder structure and file to Composer.
  7. Open the folders in Composer and delete the file in /tmp.
  8. Create a folder hierarchy for the following path: /Library/Application Support/Autodesk/LGS
  9. Update the owner and group to root:wheel for all folders. Set the permission on ONLY the LGS folder to 777. All others should be 755.
  10. Drag the 'Install Maya.app' into the /tmp folder in Composer. This will copy the application for packaging.
  11. Update the owner and group to root:wheel and set permissions to 755 if not already. Click the gear icon at the bottom right to apply the owner and group to all contained items.
  12. Click the arrow adjacent to the project in Composer to reveal additional project folders. Update the Description.plist and Info.plist files according the desired name and correct version.
  13. Add the following postinstall script to the pkg
#!/bin/bash

# Install path variables
INSTALLERPATH="/private/tmp/Install Maya 2019.app"
SETUP="${INSTALLERPATH}/Contents/MacOS/setup"
ADLMREG="${INSTALLERPATH}/Contents/Resources/adlmreg"

# Autodesk variables
SERIAL="YOUR SERIAL"
KEY="YOUR KEY"
YEAR="2019"
VERSION="${YEAR}.0.0.F"
LGSDIR="/Library/Application Support/Autodesk/CLM/LGS/${KEY}_${VERSION}"
LGSFILE="${LGSDIR}/LGS.data"
PITFILE="/Library/Application Support/Autodesk/Adlm/PIT/${YEAR}/MayaConfig.pit"

# Exit & error if installer doesn't exist
if [ ! -d "$INSTALLERPATH" ]; then
    /bin/echo "${INSTALLERPATH} does not exist. Exiting ..."
    exit 1
fi

# Run Maya 2019 installer
"$SETUP" --noui

# Add license. Run twice because ¯_(ツ)_/¯
# https://www.jamf.com/jamf-nation/discussions/10267/packaging-autodesk-maya#responseChild171427
# ONCE
"$ADLMREG" -i S $KEY $KEY $VERSION $SERIAL "$PITFILE"
# TWICE
"$ADLMREG" -i S $KEY $KEY $VERSION $SERIAL "$PITFILE"

# Make LGSDIR
/bin/mkdir -p "$LGSDIR"

# Write LGS.data file
/bin/echo "_STANDALONE" >> "$LGSFILE"
  1. Lastly, build the PKG.

Ableton Live
My understanding is that the latest version has Max built-in? We're still on 9, but don't deploy Max, not 100% sure.

Historically, we created a "Masters Unlock" file which we took around to every machine and activated it so that we could just deploy the one file. This quickly became a pain, and we recently purchased Sassafras K2 License Server just to handle the checking out of our Ableton Licenses. That alone has saved me boat-loads of time.

There's still something on first launch that requires admin credentials, but I haven't revisited.

Pro Tools
We recently switched from standalone licenses to the new network license, which has made deployment easier.

This is where munki has also been valuable for us, as I can set all of the various plugin pkg installers to be updates for Pro Tools. So whenever Pro Tools gets installed, the plugins get installed as well.

GarageBand & Logic
https://github.com/carlashley/appleLoops - we deploy this script to download locally cached copies of all the sound loops. While we cache locally, you can alternatively have loops download directly from Apple. Completely hands-free for us to deploy these. Can't recommend it enough :)

mhegge
Contributor III

Update:
Ableton Live 10 - Got some assistance from Ableton with a script, but still have to do some manual work on each machine before using. This is in order for all users who log into a Lab computer to be able to use the software without having to "activate". Multi-user license.

Pro Tools - waiting for school to renew maintenance. Cannot upgrade Lab Macs past High Sierra in fear of huge issues.

Maya 2018 - For the most part, the existing license server data (from previous 2017 install fix) works for the new install. Sometimes have to choose Network License when the new App is first opened.

Logic Pro X - Our new multi license bundle includes Logic Pro, Final Cut, Compressor, Motion, and MainStage 3 - distribute with VPP

Komplete - Cross that bridge when I rebuild the lab. That will not happen until all hardware and software licensing is fully up-to-date.

dlondon
Valued Contributor

Hi @mhegge - any chance you can share the script for Ableton you mention in your post 30th July?

PaulHazelden
Valued Contributor

If the script does what I think it does, then it will be.....
You log in as an admin account and activate Live. The activation files are put in the Admin accounts Library, in Application Support.
The script will copy these activation files across to the Hard drive/Library/Application Support. And then sets permissions for them to read by all.
When a user account logs in and accesses Live, it will look into the Users Library, if empty then it looks in the HD/Library/Application Support for the activation files. If it finds activation files there it will copy them to the Users Library.
The script will pretty much be a ...
cp -Rf /Users/Administrator/Library/Application Support/Ableton /Library/Application Support/
chown -Rf 755 /Library/Application Support/Ableton
Please check this script before use, I did it from memory, I may have a path wrong or the Ableton folder is called Live or has a version number after it. Not near a mac with it installed on to check it out.

Edit. Found the script I use...

cp -Rf /Users/admin/Library/Application Support/Ableton /Library/Application Support/
chmod -R 775 /Library/Application Support/Ableton
cp -Rf /Users/admin/Library/Preferences/Ableton /Library/Preferences/
chmod -R 775 /Library/Preferences/Ableton
cp -Rf /Users/admin/Library/Preferences/com.ableton.live.plist /Library/Preferences/com.ableton.live.plist
chmod -R 775 /Library/Preferences/com.ableton.live.plist

mhegge
Contributor III

I don't think I ever posted this. It is the multi-user script for Ableton that I received from their Support. I cannot seem to upload the .sit of the 3 files. I will see if I can set up something on GitHub.

mhegge
Contributor III

https://github.com/mhegge64/smartmammal