Giter Club home page Giter Club logo

dep-notify-starter's Introduction

DEP-Notify-Starter

Image of DEP Notify HUD

Introduction

This script is meant to be a very quick way to use DEP Notify and to be used as a reusable template for multiple workflows. This code uses positional parameters to feed lists of manual trigger policies from Jamf Pro to configure macOS devices from either a DEP enrollment or an OTA enrollment workflow.

Usage

To use this script, copy or clone the repo, and then upload it into your Jamf Pro envrionment. You'll need to modify the global variables and verbiage to meet your specific needs. Since DEP Notify does read values from a log stream, you will need to go over the code and ensure to put in the exact text you wish DEP Notify to dispaly to your end users.

In a policy, select this script as the payload and fill out the positional parameters like the example picture below:

jamf parameter config

The policy list paramters are split between paramters 4-6, since jamf has a character limit of 255 characters per a parameter in the database. This was a design decision just in case anyone ever had the neeed to use more than 255 characters total, you can split the policies between those 3 parameters. Logically the script will run all dependencies first, all software second, and all security payloads last (since security payloads sometimes require reboots).

NOTE: Python will split() these items by comma, so you only need to input the custom policy 
event trigger name and seprate each one by comma.  The code will then split this into a list 
to iterate thorugh them and execute them

The health check URL, I put in here so you can test to see if remote clients or remote offices may have issues reaching out to your Jamf Pro server. Due take notice that I had issues with Jamf Cloud and built this in for that reason, but I have also experienced false negatives where the test fails, but my jamf cloud isntance is acutally up and running just fine. So, this needs to be tested and by default is commented out of the code. Results may vary from environment to environment.

The MAIN_POLICY_DICT is a dictionary of all the jamf policies you may ever want to run in any enrollment workflow, and where you input the value of what you want the name to be displayed by DEP Notify. In the picture above, I am using the verbiage "Deploying Firefox", but my manual trigger policy is named Autoupdate-Firefox which is probably confusing to an end user. So, you will need to populate the dictionary with the proper values, and if something doesn't match it will break the code. See the example below:

Example Dictionary:

MAIN_POLICY_DICT={"Autoupdate-Firefox": "Firefox", 
                 "install_mso365": "Microsoft Office 2019", 
                 "install_chrome": "Google Chrome"}

Dependencies

Any dependencies you have will need to be deployed first. Things like custom branding, and of course the DEP Notify App itself, which this script will do as long as it is deployed in the DEPENDENCY_LIST parameter, it will install before DEP Notify is called in code.

Also, specify the path of where you are deploying DEP Notify. As a desigh choice, I have chosen to put it into /Library/Application Support/JAMF folder, so if a removeframeork is called, that app is also removed. You can choose to deploy it anywhere, just be sure to update the paths in the global variables section of the code.

Branding

You will need to deploy your custom logos and branding, and then specifcy where they are on the file system in the global variables section of the script, which is defined in code as DEPSCREEN

Reusable Code

This script is used in two workflows at my current job. One is for end users and one is for Zoom Rooms. This is why I chose to build the code more as a template than anything else. This way when one of our IT employees sets up a new Zoom Room they will get a different workflow using the same DEP Notify code, versus a standard employee running the normal DEP Notify workflow. So, hopefully this may help in those situations where you also need to split out workflows for various reasons.

Issues and Features

I do not have a ton of spare time, but please feel free to file an issue here if you find one, or find me on the Mac Admins Slack (@tlark) and ping me there. I would not be against any added features if people feel strongly to contribute to this.

dep-notify-starter's People

Contributors

gmarnin avatar t-lark avatar tlark80 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.