Skip to content

Getting Started with AutoPkg Recipes

jgstew edited this page Jul 15, 2021 · 15 revisions

What is the primary use case of an AutoPkg Recipe?

To determine if a new version of software has been released since the last run of the recipe, and if so, download it, process it, and import it into a software distribution system. Any software distribution system could be used, but there is existing support for the following: BigFix, Filewave, Jamf Pro, LANrev, Munki, SCCM, and more.

What is an AutoPkg Recipe?

It is a sequence of repeatable steps defined in a YAML file (or historically an Apple Plist XML file) that are run by AutoPkg.

Example: WindowsUpdateCatalog.download.recipe

Recipes can run another recipe automatically by declaring it as a parent recipe of the current recipe. This allows independent and shareable steps to be separated and maintained independently.

Example: WindowsUpdateCatalog.bigfix.recipe

A very common use case is that a single download recipe is used by many different child recipes that further process the downloaded file.

What are the typical steps of an AutoPkg run?

  1. Download Recipe:
    1. Determine the download URL (unless it is static)
    2. Determine if the download has changed
    3. Download the file(s)
    4. Check security of file (signatures, virustotal, or others)
    5. Optional: Determine further metadata about the file (version, hashes, size, etc)
  2. Software Deployment Recipe:
    1. Optional: Determine further metadata about the file (version, hashes, size, etc)
    2. Process the files as needed (potentially repackage)
    3. Import the new version into a software distribution system
    4. Optional: Deploy to test systems

Each of these steps could be broken down into multiple sub steps, or in some cases, combined into a single step.