Skip to content
Shea Craig edited this page Apr 24, 2018 · 1 revision

Packages

Not surprisingly, packages are forwarded on from ParentRecipes seamlessly. However, if you need to specify an os_requirements setting, there's an input variable for that. The format follows that of the JSS: a comma-delimeted list of acceptable versions, with 'x' as a wildcard, e.g. 10.8.6, 10.9.x.

Packages accept several other arguments: package_notes and package_info for specifying the corresponding fields on the package object, and package_priority, package_reboot, and package_boot_volume_required for controlling various installation settings.

Package input variables:

Variable Description Default
os_requirements Comma-delimited list of acceptable versions, using x as a wildcard character None
package_notes Notes field on package object None
package_info Info field on package object None
package_priority Priority to use for deploying or uninstalling the package. String value between 1 and 20. "10"
package_reboot Specify whether computers must be restarted after installation. Accepts boolean values. False
package_boot_volume_required Ensures that the package is installed on the boot volume after imaging. Accepts boolean values. True

To save on time spent uploading, the JSSImporter processor only uploads a package to the distribution points when it think it is needed. Specifically, on AFP/SMB DP's, it compares the filename of the package just created with those on the DP, and uploads if it is missing. On a JDS, it only uploads a package if a new package-object was created.

This means that if your package recipe changes, but the output package filename stays the same, AFP/SMB DP's will not get the new package uploaded to them: please manually delete the package from the file shares and re-run your recipe. For JDS DP's, packages are only uploaded if a package-object was created. To re-trigger uploading for the next run, delete the package from the JSS web interface in the Computer Management->Packages section.

If you would like to not upload a package and not add a package install action to a Policy, specify a pkg_path with a blank value to let JSSImporter know to skip package handling. Chances are extremely good that a previous step in a Parent pkg recipe set pkg_path, so you need to un-set it. Why would this be useful? Some organizations are using AutoPkg and JSSImporter to automate the creation of multiple policies per product-one to actually install the product, and another to notify the user of an available update. This is a lot of work to go through to try to be Munki, but it may improve the experience for users, since Casper will happily install apps while a user is logged in. Regardless, you can simply specify a second JSSImporter processor in your jss recipe, making sure to set pkg_path to a blank value (e.g: <string/>), and crafting the arguments and templates appropriately.