Skip to main content

Installomator - The one installer script to rule them all (macOS Script)

What

This article explores how to use Installomator, a shell script that facilitates the downloading and installation of over 450 different macOS applications, in conjunction with FileWave. It compares this approach to the use of AutoPkg for more controlled versioning and release management.

When/Why

Installomator can be used to maintain macOS applications when a "set it and forget it" approach is desired, with applications automatically updated to the latest version on a regular basis. This happens regardless of fileset revisions, ensuring everyone always gets the latest version of the app. This approach is useful when less manual work is preferred. Alternatively, AutoPkg offers a more tightly controlled method with thorough testing, versioning, and release management.

How

Prerequisites

Deploying Installomator on all your Macs

Installomator operates by taking a 'label' parameter representing the application to be installed. It generally only installs an application if the latest version is newer than the installed version, though exceptions exist, emphasizing the importance of thorough testing. It's deployed via a single FileWave Fileset, with numerous configuration options to improve user experience and system stability. These include user notifications upon completion, the closing of the app prior to installation, prompts before closing the app, and the ability to re-launch the app post-update if it was initially open. Installomator does not interact with App Store applications except to replace them with non-App Store versions if desired. When you configure the script you will see the options about this.

Installing Installomator

  1. Download the PKG for SwiftDialog and install the PKG as a FileSet.
  2. Download the PKG for Installomator from https://github.com/Installomator/Installomator and install it on your Mac Admin machine. This will place the script file to /usr/local/Installomator/Installomator.sh
  3. Edit the Installomator.sh file to customize your configuration options. It's very simple and seen at the top of the script as choices you can set.
  4. Create an empty Fileset in FileWave and add the Installomator.sh script to the /usr/local/Installomator folder.
  5. Assign this Fileset and the swiftDialog Fileset to a Mac to test. The next steps will go over using Installomator to install an application.  

Fileset Contents Installomator 2023-07-22 at 11.15.27 AM.jpg

If you'd like a pre-made Fileset for Installomator you can download one here: Installomator.fileset.zip

Identifying an App to install

Run Installomator by itself in Terminal and get the full list of apps it can install:

/usr/local/Installomator/Installomator.sh

This is the output of that command:

jlevitsk — -zsh — 81×22 2023-07-22 at 12.45.48 PM.jpg

Or run Installomator in Terminal with grep to filter the results:

/usr/local/Installomator/Installomator.sh | grep -i bbedit

This is the output of that command:

jlevitsk — -zsh — 88×8 2023-07-22 at 12.48.33 PM.jpg

Installing an App

At this point you have installed both swiftDialog and either made your own Installomator or used Installomator.fileset.zip with your own modifications to the script settings. For the next steps here is an example BBEdit - Installomator.fileset.zip to look at while you follow along.

The BBEdit example is a very simple Fileset containing 3 scripts, and that's all.  

The scripts are fairly simple and listed below:

check_installomator.sh sh 
#!/bin/bash
# Checks every 2 minutes for Installomator to be present. 
# Add the contents of your script below:

if [ -f "/usr/local/Installomator/Installomator.sh" ]; then
	exit 0
else
	echo "Could not find Installomator"
	exit 1
fi
install.sh

  

#!/bin/bash
# Remember to change the properties for both install.sh and verify.sh
# to have the right app label since it is passed to the script from properties. 

/usr/local/Installomator/Installomator.sh $1 LOGO=/usr/local/sbin/FileWave.app/Contents/Resources/fwGUI.app/Contents/Resources/kiosk.icns
verify.sh
#!/bin/bash
# Remember to change the properties for both install.sh and verify.sh
# to have the right app label since it is passed to the script from properties. 

/usr/local/Installomator/Installomator.sh $1 LOGO=/usr/local/sbin/FileWave.app/Contents/Resources/fwGUI.app/Contents/Resources/kiosk.icns

In our example both both install.sh and verify.sh are identical but they don't have to be depending on your needs.  

image.png

  

image.png

  

So now you may be wondering about where "bbedit" is since that label is the label we want to use? Highlight the BBEdit Fileset in your admin console and click the Scripts button in the toolbar. Now right click on install.sh and pick Properties. The dialog will look like the one here. You'll want to change bbedit to whatever app you want this to install. Do the same exact thing for verify.sh. If you want to use a different logo you can look at the Installomator documentation on their GitHub to learn more.

What it looks like

To install an app this way you simply Associate the swiftDialog, Installomator.fileset.zip, and BBEdit - Installomator.fileset.zip Filesets and you should see it install.  

Be careful as some apps/labels may install even if the app is already on the latest version

Depending on what dialogs you have enabled you may show status messages like the below.  

Using_Installomator_to_support_3rd_party_apps_-_Mac (2).pdf 2023-07-22 at 1.25.57 PM.jpg

Using_Installomator_to_support_3rd_party_apps_-_Mac (2).pdf 2023-07-22 at 1.27.01 PM.jpg

You should now be able to deploy anything that Installomator supports. Just remember that this tool is designed to always keep things up to date which can be a good or bad thing for you depending on your use case.

Troubleshooting

You will be able to see what the Fileset is doing by leveraging the Fileset logs. All 3 of the scripts will log to /var/log/fwcld/<fileset_id>where <fileset_id> is the same as the ID you see in FileWave for the Fileset.  

image.png

You may also be able to use FileWave Central to right click on the log and view it, but the log on the machine when testing is most simple and will exist 100% of the time.  

image.png

Digging Deeper

The selection between Installomator and AutoPkg will largely depend on your administrative needs. For organizations seeking to minimize IT involvement and ensure that apps are regularly updated to the latest version, Installomator offers a more hands-off approach. However, for those preferring greater control over app versions and deployments, AutoPkg provides an option that offers a more regulated release process.