I'm new to Jamf and am trying to move the workflow from my previous MDM, so apologies if I'm missing something obvious.
I've got a package which installs some required files and runs a few scripts. The package is usually updated every few weeks with updated desktop pictures etc.
My previous MDM would update the package if the machine's package receipt was for an older version, but I can't seem to find an easy way of doing this in Jamf.
As far as I can tell I'll have to use a policy to install the package, and scope the policy to a smart group that contains computers where the package is outdated or not installed. Checking if a package is installed seems relatively easy, but I can't find a way to see a package's version. I can't use "application version" as the package doesn't install an application.
What's the easiest way of doing this in Jamf?
If when you build your package, you include some kind of versioning in the name, for example maybe it's named
package_name_2021.04.09 today, but in a few weeks it becomes
package_name_2021.04.30, then you can build Smart Groups based on package receipts in Jamf. You would use the
Packages installed by Casper criteria item (yes, the name is a throwback that was never updated by Jamf). You can create a Smart Group of machines that have your current package receipt recorded by Jamf Pro, for example.
This information is of course only as good as your inventory data, so be sure to include the Maintenance payload with the "Update inventory" option enabled on the policies that are installing those packages.
I could modify my package building script to include a version/build time in the name, but I don't want to litter my package receipts with hundreds of different versions of the same package.
I've made myself an extension attribute for the package version which is updated by a script, so I should be able to make a smart group based on that. Thankfully my package version is always an integer, so I also get the bonus functionality of being able to filter by greater than/less than.
Whilst this seems to work, it's way messier than I'd like. If anyone has a simpler way of doing this I'd love to hear it.