Warning
This is a demo. Not everything is 100% perfect or representitve. It serves as an exmaple of how you could implement a soluion like this. There will be false positives, inefficiencies and lots of room for improvement - please do not copy and paste this demo into production use!
This repository contains an example automated workflow for using Terraform to manage Jamf Pro configuration across multiple environments in a Route To Live (RTL) arrangement. We leverage the Jamf Pro Terraform Provider Hashicorp Terraform Cloud Workspaces, Github Actions and Google Release please to automate the planning, application and release process of change - ensuring only tested, versioned and approved code reaches production in the same state it was tested in.
For a comprehensive setup guide, see our Getting Started Guide.
If you have used these technologies before and would just like the technical requirements including variable/secret definitions, please see the Forking Guide.
- Workflows, supporting scripts and configuration files can be found in the .github/ directory.
- Terraform Workload (the configuration) can be found in the workload/terraform/jamfpro directory.
- A full visual overview of the workflow is available in draw.io format here. You must download the file and upload it into draw.io to view (Or use the VSCode extension but it washes out the colours!).
- Note: The 'sandbox' portion of this workflow is intended to be controlled by the Terraform CLI. The HCL block which configures this is in workload/terraform/jamfpro/backend.tf. This block is disregarded by runs aimed at other environments and can be safely left in place for this demo.
- You can find more information on how to use the Terraform CLI here.
This project is licensed under the MIT License - see the LICENSE file for details.