├── JNUC Notes in PDF.pdf ├── JNUC Notes in Word.docx ├── LICENSE ├── PatchBot-Final.key └── README.md /JNUC Notes in PDF.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Honestpuck/PatchBot/a0628fd21aa88421a65f73d2beeb5d87460339b7/JNUC Notes in PDF.pdf -------------------------------------------------------------------------------- /JNUC Notes in Word.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Honestpuck/PatchBot/a0628fd21aa88421a65f73d2beeb5d87460339b7/JNUC Notes in Word.docx -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Tony Williams 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PatchBot-Final.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Honestpuck/PatchBot/a0628fd21aa88421a65f73d2beeb5d87460339b7/PatchBot-Final.key -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PatchBot - Zero Touch Packaging and Patch Management 2 | 3 | PatchBot is a software system for providing up to date applications across a Mac fleet. It leverages AutoPkg, the JAMF patch management system, and Jamf API to build a total solution where applications are provided to the fleet without human intervention. 4 | 5 | It is described in a number of blog posts: 6 | 7 | - [PatchBot - Zero-Touch Packaging and Patch Management](https://macintoshguy.wordpress.com/patchbot/) 8 | - [PatchBot - Zero Touch Patch Management #2](https://macintoshguy.wordpress.com/patchbot-2/) 9 | - [PatchBot #3](https://macintoshguy.wordpress.com/patchbot-3/) 10 | - [PatchBot #4](https://macintoshguy.wordpress.com/patchbot-4) 11 | 12 | You no longer need to alter the `.pkg` recipe override. Details on running JPCImporter as an AutoPkg post processor are at https://macintoshguy.wordpress.com/2020/07/31/patchbot-update/ 13 | 14 | You can find the components in three GitHub repositories 15 | 16 | - [PatchBotProcessors](https://github.com/Honestpuck/PatchBotProcessors) Three custom processors for AutoPkg 17 | - [PatchBotTools](https://github.com/Honestpuck/PatchBotTools) The other components 18 | - [PatchBotExamples](https://github.com/Honestpuck/PatchBotExamples) Three example recipes 19 | 20 | In this repo you can see, above, the presentation and notes from my JNUC2020 presentation about PatchBot. You can see the presentation at https://www.youtube.com/watch?v=m4casr7nXIw 21 | 22 | If you would like help implementing this in your own environment feel free to reach out. The best place to do that is in the MacAdmins Slack channel #patchbot 23 | 24 | v3. has now been released to production. 25 | 26 | Changes can be summarised: 27 | 28 | - Replaced the need for Move.py. All the checking to see if there is a test patch to move into production is now done in the Production processor. 29 | - There is a new constant in the Production code, `DEFAULT_DELTA` to set the default number of days between test and production. 30 | - There is a new constant in the Production code, `DEFAULT_DEADLINE` The Production processor sets the Self Service deadline to this value every time it 31 | updates a "Stable" patch policy. 32 | - There is a new optional variable in Production `.prod` recipes called `delta` to set the number of days between test and production for that package. 33 | - There is a new optional variable in Production `.prod` recipes called `deadline` to set the Self 34 | Service deadline for that package. 35 | 36 | The code *should* run, it has been vigorously tested. There are still things to be done. Certainly the Production processor could be cleaned up as it it grabs information to check the delta then throws it all away so the process to move a package from test into production has to find it all again, that's less than optimal and makes unnecessary API calls. 37 | 38 | Now that `delta` can be defined in a `.prod` recipe it is now possible to move a package from test into production from the command line. `autopkg run GoogleChrome.prod -k 'delta=-1'` will immediately move Google Chrome from testing into production, for example. You can do the same with `deadline`. 39 | `autopkg run GoogleChrome.prod -k 'delta=-1' -k 'deadline=2` will move Google Chrome into production 40 | with a short Self Service deadline. (You need to use '-1' instead of 0 as the code will see 0 as unset.) 41 | 42 | 43 | ![visitors](https://visitor-badge.glitch.me/badge?page_id=honestpuck.patchbot.page.id) 44 | --------------------------------------------------------------------------------