Skip to content
Graham Pugh edited this page Aug 2, 2024 · 2 revisions

Welcome to the multitenant-jamf-tools wiki!

This repo contains a set of bash scripts that are designed to propagate things across a set of Jamf servers (hereafter "instances"). The goal is to provide the ability to perform common actions on any number of Jamf servers, from one, to multiple, to all in a list.

These scripts are adaptations of previously internal scripts I created while working at ETH Zürich for use on a set of on-premises servers which have a common SMB repo for packages. This open source version is an attempt to adapt the scripts for a wider use. I did update the script for use with cloud servers over the months before leaving that job, but bear in mind that it has primarily only been tried out on self-hosted servers.

Overview

The scripts in this repo use a common framework and specific folders. As such, the entire repo must be cloned - individual scripts will not work on their own. Specifically:

  • _common-framework.sh is a common framework which is sourced by most of the other scripts.
  • set-credentials.sh is used to store API credentials in your Keychain which will be used for API calls in the other scripts.
  • add-fsdp-credentials-to-keychain.sh and set-fileshare-distribution-point.sh are used to store SMB share credentials in your Keychain which are used where a package is being uploaded to or deleted from an SMB repo (the latter script also updates the credentials in the chosen instances).
  • The folders exclusion-lists, instance-lists, migration-tool-templates, slack-webhooks, and templates, contain text and/or XML files required by some of the scripts.

Additionally, some of the scripts require access to additional cloned repos and tools if you wish to use them:

  • autopkg-run.sh - this is a wrapper script for the autopkg binary, and requires AutoPkg to be installed. To run any useful AutoPkg recipes, it also requires either the grahampugh/jamf-upload or autopkg/grahampugh-recipes repo to have been added to the AutoPkg repo list. It is recommended to use the AutoPkgSetup tool to install and configure AutoPkg in a way appropriate for these tools.
  • jamfuploader-run.sh - this is a wrapper script for the jamf-upload project, and requires AutoPkg to be installed and the grahampugh/jamf-upload repo to be cloned into the same parent folder as this repo.
  • jamf-api-tool.sh - this is a wrapper script for the jamf-api-tool project, and requires the grahampugh/jamf-api-tool repo to be cloned into the same parent folder as this repo.

Please follow the instruction pages for installing the multitenant tools, and specific instructions for those scripts that require additional setup.

Help Sheets

All scripts have a Help Sheet. Run the script with --help to see all the options.

Clone this wiki locally