From 39c19ee029496550ecca3e342053eda1b2181b85 Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 12:53:35 -0400
Subject: [PATCH 01/11] add diagram
---
README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c2ca7c0..e92460a 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,5 @@
# JamfOps
-## Useful scripts and workflows to help automate your JAMF environment
\ No newline at end of file
+## Useful scripts and workflows to help automate your JAMF environment
+
+
+
From 560e46d8f8e7910317fbda95a6e39eec30ef0390 Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 13:47:01 -0400
Subject: [PATCH 02/11] workflow overviews for onboarding and autopkg
---
README.md | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/README.md b/README.md
index e92460a..57cacc6 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,46 @@
# 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](https://github.com/autopkg/autopkg), [AutoPkgr](https://github.com/lindegroup/autopkgr), [JSSImporter](https://github.com/jssimporter/JSSImporter), can help you implement basic automation and GitOps workflows to your JAMF package deployments.
+

+### 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](https://github.com/skoobasteeve/jamfops/blob/main/github-actions/autopkg-recipe-test.yml))
+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](https://github.com/skoobasteeve/jamfops/blob/main/autopkg/autopkg-pull-recipes.sh))
+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](https://github.com/skoobasteeve/jamfops/blob/main/scripts/jamf-onboarding.sh) script and [onboarding-group-name](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh) 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
+
+### Order of operations
+1. Unbox computer and create user
+2. Enroll computer in JAMF if not already done via Automated Enrollment
+3. Run [script](https://github.com/skoobasteeve/jamfops/blob/main/scripts/jamf-onboarding.sh) via Self Service or automatically via enrollment policy
+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](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh) + corresponding Smart Group
+
+### Requriements
+1. Physical or remote access to new computer
+2. [jamf-onboarding](https://github.com/skoobasteeve/jamfops/blob/main/scripts/jamf-onboarding.sh) script added to JAMF and customized with your own group names
+3. onboarding-group-name](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh)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
From b968f936ac866e5a1692ea76a032f7a811fdd048 Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 13:47:38 -0400
Subject: [PATCH 03/11] fix link
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 57cacc6..71b75b2 100644
--- a/README.md
+++ b/README.md
@@ -41,6 +41,6 @@ While the much-praised concept of Zero-touch Deployment is great in theory, ther
### Requriements
1. Physical or remote access to new computer
2. [jamf-onboarding](https://github.com/skoobasteeve/jamfops/blob/main/scripts/jamf-onboarding.sh) script added to JAMF and customized with your own group names
-3. onboarding-group-name](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh)extension attribute added to your JAMF environment
+3. [onboarding-group-name](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh)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
From 843cf79adf66bb0ec8cbde57c44dd279bd0db3af Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 13:49:08 -0400
Subject: [PATCH 04/11] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 71b75b2..90bc1b9 100644
--- a/README.md
+++ b/README.md
@@ -33,10 +33,10 @@ While the much-praised concept of Zero-touch Deployment is great in theory, ther
### Order of operations
1. Unbox computer and create user
2. Enroll computer in JAMF if not already done via Automated Enrollment
-3. Run [script](https://github.com/skoobasteeve/jamfops/blob/main/scripts/jamf-onboarding.sh) via Self Service or automatically via enrollment policy
+3. Run script via Self Service or automatically via enrollment policy ([script](https://github.com/skoobasteeve/jamfops/blob/main/scripts/jamf-onboarding.sh))
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](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh) + corresponding Smart Group
+6. Group is populated via extension attribute + corresponding Smart Group ([extension attribute](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh))
### Requriements
1. Physical or remote access to new computer
From 7e21978c835d09b73460a62b1fbc5f5e6cc100bb Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 13:49:34 -0400
Subject: [PATCH 05/11] fixed formatting
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 90bc1b9..10bc5c6 100644
--- a/README.md
+++ b/README.md
@@ -41,6 +41,6 @@ While the much-praised concept of Zero-touch Deployment is great in theory, ther
### Requriements
1. Physical or remote access to new computer
2. [jamf-onboarding](https://github.com/skoobasteeve/jamfops/blob/main/scripts/jamf-onboarding.sh) script added to JAMF and customized with your own group names
-3. [onboarding-group-name](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh)extension attribute added to your JAMF environment
+3. [onboarding-group-name](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh) 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
From 0e7eb16b1c3a4009e36c7177ce770aa211a6ab89 Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 15:07:31 -0400
Subject: [PATCH 06/11] onboarding script gif
---
README.md | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 10bc5c6..3382d09 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
# 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](https://github.com/autopkg/autopkg), [AutoPkgr](https://github.com/lindegroup/autopkgr), [JSSImporter](https://github.com/jssimporter/JSSImporter), can help you implement basic automation and GitOps workflows to your JAMF package deployments.
@@ -23,6 +25,8 @@ The below diagram is an overview of how the files in this repo, combined with ot
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](https://github.com/skoobasteeve/jamfops/blob/main/scripts/jamf-onboarding.sh) script and [onboarding-group-name](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh) extension attribute in this repo allows technicians to easily:
@@ -30,6 +34,8 @@ While the much-praised concept of Zero-touch Deployment is great in theory, ther
1. Assign a computer to a JAMF user
2. Place the computer in a specific "onboarding group" and run policies scoped to that group
+
+
### Order of operations
1. Unbox computer and create user
2. Enroll computer in JAMF if not already done via Automated Enrollment
@@ -38,7 +44,7 @@ While the much-praised concept of Zero-touch Deployment is great in theory, ther
5. Choose group to assign computer, usually based on department/team
6. Group is populated via extension attribute + corresponding Smart Group ([extension attribute](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh))
-### Requriements
+### Requirements
1. Physical or remote access to new computer
2. [jamf-onboarding](https://github.com/skoobasteeve/jamfops/blob/main/scripts/jamf-onboarding.sh) script added to JAMF and customized with your own group names
3. [onboarding-group-name](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh) extension attribute added to your JAMF environment
From b882ab3826f21d3c718651071969726471f70451 Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 15:10:13 -0400
Subject: [PATCH 07/11] heading size
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 3382d09..ac710ec 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# JamfOps
-## Useful scripts and workflows to help automate your JAMF environment
+### Useful scripts and workflows to help automate your JAMF environment
From 4deebd6565c1e96ba7d7ed84b319f4efbe514480 Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 15:12:16 -0400
Subject: [PATCH 08/11] table of contents
---
README.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index ac710ec..096f81a 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
# JamfOps
### Useful scripts and workflows to help automate your JAMF environment
-
+* [Automate package updates with AutoPkg](https://github.com/skoobasteeve/jamfops/blob/readme-diagram-updates/README.md#automate-package-updates-with-autopkg)
+* [New hire onboarding with "low-touch" deployment](https://github.com/skoobasteeve/jamfops/tree/readme-diagram-updates#new-hire-onboarding-with-low-touch-deployment)
## Automate package updates with AutoPkg
From 4067360bba9e29afd50aec757162472c7f4a6dec Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 15:14:05 -0400
Subject: [PATCH 09/11] fix contents
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 096f81a..f50147d 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# JamfOps
### Useful scripts and workflows to help automate your JAMF environment
-* [Automate package updates with AutoPkg](https://github.com/skoobasteeve/jamfops/blob/readme-diagram-updates/README.md#automate-package-updates-with-autopkg)
-* [New hire onboarding with "low-touch" deployment](https://github.com/skoobasteeve/jamfops/tree/readme-diagram-updates#new-hire-onboarding-with-low-touch-deployment)
+* [Automate package updates with AutoPkg](#automate-package-updates-with-autopkg)
+* [New hire onboarding with "low-touch" deployment](#new-hire-onboarding-with-low-touch-deployment)
## Automate package updates with AutoPkg
From 83ca68f8a13edecc3defb9c290192f811a88894e Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 15:26:13 -0400
Subject: [PATCH 10/11] added misc section
---
README.md | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index f50147d..5c6e18c 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
### Useful scripts and workflows to help automate your JAMF environment
* [Automate package updates with AutoPkg](#automate-package-updates-with-autopkg)
* [New hire onboarding with "low-touch" deployment](#new-hire-onboarding-with-low-touch-deployment)
-
+* [Miscellaneous scripts and extension attributes](#miscellaneous-scripts-and-extension-attributes)
## 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](https://github.com/autopkg/autopkg), [AutoPkgr](https://github.com/lindegroup/autopkgr), [JSSImporter](https://github.com/jssimporter/JSSImporter), can help you implement basic automation and GitOps workflows to your JAMF package deployments.
@@ -51,3 +51,15 @@ While the much-praised concept of Zero-touch Deployment is great in theory, ther
3. [onboarding-group-name](https://github.com/skoobasteeve/jamfops/blob/main/ext-attributes/onboarding-group-name.sh) 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](https://github.com/skoobasteeve/jamfops/blob/readme-diagram-updates/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](https://github.com/skoobasteeve/jamfops/blob/readme-diagram-updates/scripts/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](https://github.com/skoobasteeve/jamfops/blob/readme-diagram-updates/ext-attributes/vm-images.sh) - Displays all VM disks on a system with their size in GB.
+* [cert-getexpiration.sh](https://github.com/skoobasteeve/jamfops/blob/readme-diagram-updates/ext-attributes/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.
From 29b74cd1d30cc9b2ed63991dfcdbb3efd9981995 Mon Sep 17 00:00:00 2001
From: Ray Lyon <36998292+skoobasteeve@users.noreply.github.com>
Date: Tue, 23 Mar 2021 15:26:34 -0400
Subject: [PATCH 11/11] fixed heading
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index 5c6e18c..84d2c17 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,8 @@
* [New hire onboarding with "low-touch" deployment](#new-hire-onboarding-with-low-touch-deployment)
* [Miscellaneous scripts and extension attributes](#miscellaneous-scripts-and-extension-attributes)
+
+
## 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](https://github.com/autopkg/autopkg), [AutoPkgr](https://github.com/lindegroup/autopkgr), [JSSImporter](https://github.com/jssimporter/JSSImporter), can help you implement basic automation and GitOps workflows to your JAMF package deployments.