Skip to content

Useful scripts and workflows to help automate your JAMF environment

License

Notifications You must be signed in to change notification settings

skoobasteeve/jamfops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JamfOps

Useful scripts and workflows to help automate your JAMF environment


Automate package updates with AutoPkg

The below diagram is an overview of how the files in this repo, combined with other incredible open source tools (Git, AutoPkg, AutoPkgr, JSSImporter, can help you implement basic automation and GitOps workflows to your JAMF package deployments.

autopkg-workflow

Order of operations

  1. Create and test AutoPkg JSS recipe overrides locally on your Mac
  2. Push your overrides to a common repo for your IT team and create a Pull Request
  3. Run automated testing on the recipe override(s) with Github Actions (action)
  4. After successful testing and review, merge the Pull Request with main/master
  5. Always-on Mac running AutoPkgr pulls latest recipes from main/master with a cron job and adds them to the AutoPkgr recipe list, then notifies your team via Slack notifications. (script)
  6. AutoPkgr runs recipes on a schedule and sends Slack notifications for new packages and errors.

Requirements

  1. An always-on macOS device or cloud instance
  2. AutoPkg, AutoPkgr, JSS Importer, and Git installed on both a local Mac and an always-on device.
  3. JAMF production instance
  4. JAMF testing instance
  5. Github account with dedicated repository for recipe overrides
  6. Slack instance with Incoming Webhooks installed (for notifications)
  7. Files in this repo

New hire onboarding with "low-touch" deployment

While the much-praised concept of Zero-touch Deployment is great in theory, there are many practical reasons why an organization might choose a more traditional manual approach. The jamf-onboarding script and onboarding-group-name extension attribute in this repo allows technicians to easily:

  1. Assign a computer to a JAMF user
  2. Place the computer in a specific "onboarding group" and run policies scoped to that group

onboard_script

Order of operations

  1. Unbox computer and create user
  2. Enroll computer in JAMF if not already done via Automated Enrollment
  3. Run script via Self Service or automatically via enrollment policy (script)
  4. Enter email of user to assign them
  5. Choose group to assign computer, usually based on department/team
  6. Group is populated via extension attribute + corresponding Smart Group (extension attribute)

Requirements

  1. Physical or remote access to new computer
  2. jamf-onboarding script added to JAMF and customized with your own group names
  3. onboarding-group-name extension attribute added to your JAMF environment
  4. Smart Groups created in JAMF that correspond to group names from previous step
  5. Policies scoped to those Smart Groups

Miscellaneous scripts and extension attributes

Scripts

  • jamf-app-usage.py - Pulls individual app usage for a specified date range via the JAMF API and exports it as a CSV.
  • jamf-migrate-groups.sh - Migrates groups from one JAMF instance to another via the API. Useful when setting up a sandbox environment or migrating to another domain.

Extension attributes

  • vm-images.sh - Displays all VM disks on a system with their size in GB.
  • cert-getexpiration.sh - Displays remaining days before expiration of a given certificate. If there is more than one certificate with the same common name, it displays the most recent.

About

Useful scripts and workflows to help automate your JAMF environment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published