GithubHelp home page GithubHelp logo

jamf / jamjar Goto Github PK

View Code? Open in Web Editor NEW
98.0 19.0 9.0 15.7 MB

jamJAR: Jamf, AutoPKG & Munki combined by dataJAR

Home Page: https://www.datajar.co.uk

License: Apache License 2.0

Python 83.30% Shell 16.70%

jamjar's Introduction


I have a Jamf, I have a Munki... uh... jamJAR!

Introduction

jamJAR is a solution that applies out of the box thinking & lean methodologies to macOS "patch management".

This holistic approach synergises jamf, autopkg & munki into an aggregated convergence that cherry-picks functionality from each products core competency to create an innovative, scalable & modular update framework.

For more information, please visit the wiki.

Videos

University of Utah, MacAdmins Meeting. April 2017 - https://stream.lib.utah.edu/index.php?c=details&id=12885

macad.uk. Feb 2017 - https://www.youtube.com/watch?v=SiDWCqwUSIM&feature=youtu.be

jamJAR: Three years on - Oct 2020 - https://www.youtube.com/watch?v=JGU48-S-unE

jamjar's People

Contributors

macmule avatar asnydernfv avatar thefuzzytech avatar apizz avatar jridsdale avatar tsparr avatar

Stargazers

Douglas Worley avatar  avatar  avatar Brice Petruzzelli avatar  avatar  avatar William Mehilos avatar aschwanb avatar Oli avatar Taylor Hoff avatar Patrick Doyle avatar  avatar Kay avatar  avatar eg avatar Greg Sheppard avatar stimulated avatar  avatar Eric Summers avatar Matt Meyrick avatar Matin Sasaluxanon avatar Aliaksei avatar HCiSO avatar Adam W avatar Sam Wennerlund avatar  avatar Saoud avatar Greg avatar  avatar  avatar  avatar  avatar  avatar Perren Smith avatar Victor avatar Moe Munyoki avatar Antti Pettinen avatar Dan Wenger avatar  avatar M B avatar Andrea avatar zackn9ne avatar Mort avatar Ian Magnone avatar  avatar  avatar Jason Bush avatar J Andres Garcia avatar Aaron Martel avatar Srinivasan avatar Rachel avatar Lawrence avatar  avatar Fabian Hartmann avatar  avatar  avatar James Turner avatar pleasego2help avatar Trey Bachner avatar Jeff avatar Chad Swarthout avatar  avatar Marcus Rowell avatar Kyle LeBlanc avatar David Schultz avatar Aaron Polley avatar James avatar Quam Sodji avatar  avatar Jon Steele avatar  avatar Adam Furbee avatar  avatar  avatar Shaun Bentzen avatar Brad Reno avatar Christian Delahaya avatar Ali Akhar avatar Igglybuff avatar Lachlan Stewart avatar Ronnie Jones avatar Minho Ryang avatar Christopher Grande avatar  avatar Jeffrey den Drijver avatar Ole Bulow avatar  avatar Brad Clare avatar John Mahlman avatar Stephen Johnson avatar Elizabeth Hills avatar Chase Thompson-Baugh avatar  avatar Richard Purves avatar  avatar Raul Santos avatar Thomas avatar Owen Hael avatar

Watchers

Jens Malessa avatar Perren Smith avatar  avatar Marcus Rowell avatar James Cloos avatar Jason Bush avatar  avatar  avatar  avatar Robert Harkess avatar Aaron Lippincott avatar  avatar  avatar Callum Dean avatar Neil Martin avatar Paul Cossey avatar Sanchi avatar Matin Sasaluxanon avatar  avatar

jamjar's Issues

UnicodeEncodeError

postflight stderr: Traceback (most recent call last):
  File "/usr/local/munki/postflight", line 365, in <module>
    main()
  File "/usr/local/munki/postflight", line 83, in main
    process_pending(pending_items)
  File "/usr/local/munki/postflight", line 147, in process_pending
    send_pending_notification(NOTIFIER_MSG_PENDING)
  File "/usr/local/munki/postflight", line 208, in send_pending_notification
    the_msg, NOTIFIER_MSG_TITLE,)]
UnicodeEncodeError: 'ascii' codec can't encode character u'\xdf' in position 36: ordinal not in range(128)

From jamJAR.plist:

	<key>notifier_msg_pending</key>
	<string>Bitte ausloggen um Update abzuschließen</string>

Remove superfluous warning

2018-10-18 08:50:50 WARNING preflight: LocalOnlyManifest (auto-update.plist) declared, but is missing

FR: Add Support for arrays and/or delaying Jamf inventory update for bootstrap workflows

Trying to work out a bootstrap software install workflow that would utilize jamJAR, so we avoid having to configure any manifests in munki (outside those which simply define the catalog for the machine via the ClientIdentifier in the ManagedInstalls.plist) and similarly which avoid having to create many policies in jamf.

Complicating the workflow at the moment is the fact that software titles can only be added one at a time to the managed_installs or managed_uninstalls in the Local Manifest, and that as part of the jamJAR postflight an inventory update is completed after each install or uninstall.

I have two thoughts in this regard:

  1. Add support for arrays so jamJAR.py can be added to a Jamf policy once so multiple pieces of software could be added to the managed installs and/or uninstalls.

OR

  1. Add support to forcibly prevent an inventory update via the postflight following a single software install. This way the jamJAR.py script could be added multiple times to a single policy, installing software one at a time, but then only update inventory at the end.
    • In this regard, I know jamf has some logic so that if multiple policies are triggered that have inventory updates configured this only happens once all policies have finished running.

jamJAR & munki manifest double-install niche condition

This is more for me to hopefully address in a future PR, but wanted to get it here. It's a pretty niche issue, and I'm not 100% sure how to address it.

We're using munki manifests, rather than policies, to ensure all of our machines have the base software they need and then use jamJAR for Self Service and certain automated policies.

We have a scenario where a user who has our org VPN configured and forcibly applied when off LAN (which is the default) is traveling abroad and therefore needs to be able to manually choose when to turn on and off VPN, as some planes and trains restrict VPN traffic or force you to poney up more $$.

To accommodate this, we have two VPN app items, which reference the same PKG installer. However, one has the forced config item as an update_for and the other does not.

In this scenario, the VPN w/ config item is part of the included_manifest chain while the VPN w/o the config is not. I ran an uninstall from Self Service to remove the existing VPN app and config file and then ran a second Self Service policy to reinstall the VPN app w/o the config. Because these are two different items, the VPN installer is run twice - once from the default manifest and once from the LocalOnly manifest - and then installs the config.

Again, very niche ...

Up to date message shown outside of self service triggered policies

From https://macadmins.slack.com/messages/jamjar:

brianhanson 16:46 - I’m seeing behavior where jamJAR postflight is posting a macOS notification (via Notifier) on munki runs where software was up to date and nothing was installed. Policy is not being run from Self Service. Happens with policy -id, policy -event, and just plain policy. About to jump into the code to trace it but thought I’d ask if I’m missing something obvious

Recon if an item is uninstalled

Script exit code: 0
Script result: Adding AdobeProjectFelixCC2017 to uninstalls
Preflight: Contains 0 installs [], 1 uninstalls ['AdobeProjectFelixCC2017'], 0 pending, 0 warnings
WARNING: YOLO mode engaged
Postflight: Contains 0 installs [], 0 uninstalls [], 0 pending, 0 warnings

process_warnings should not be run when managedinstallreport is missing

Script result: LocalOnlyManifest (auto-update.plist) declared, but is missing
Adding Slack to installs
ManagedInstallReport is missing
Traceback (most recent call last):
File "/Library/Application Support/JAMF/tmp/jamJAR.py", line 354, in 
main()
File "/Library/Application Support/JAMF/tmp/jamJAR.py", line 76, in main
warning_count = process_warnings(warning_count)
File "/Library/Application Support/JAMF/tmp/jamJAR.py", line 250, in process_warnings
for warnings in managed_install_report.get('Warnings'):
UnboundLocalError: local variable 'managed_install_report' referenced before assignment

Duplicate notifications from jamJAR

Hello,

I've noticed an issue with how jamJAR interacts with the Jamf Management Action in showing duplicate notifications for the installation or updating of software as shown below:

Screen Shot 2022-10-06 at 3 13 10 pm

This was discussed on the #jamjar channel on the MacAdmins Slack and others mentioned this shows up using Notifier as well. https://macadmins.slack.com/archives/C3P30M36F/p1665029649572419

Just wanted to let you know in hopes it could be addressed.

Many thanks for the project and all you do!

Add ability to use GitHubReleasesInfoProvider for autopkg recipe

Tried to create an autopkg recipe to download the latest release so I could feed the latest postflight script into munki, but for whatever reason despite jamJAR having a version listed and downloadable assets the GitHubReleasesInfoProvider returns the following error:

Error in com.github.apizz.download.jamJAR: Processor: GitHubReleasesInfoProvider: Error: No release assets were found that satisfy the criteria.

As a result, my current working recipe pulls the version tag from the ./releases/latest url redirect to complete a direct download.

Remove munki_mode

With Munki3 comes native notification centre support, so munki_mode not needed.

Comma Separated "Add to Installs"

When adding multiple items to "Add to Installs" with comma separated values multiple notifications pop up for each app that is being installed, I have attached a screenshot for reference.

If I can assist with more info let me know

Thanks

Louis
IMG_9159

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.