I’m finally doing my Friday dev updates. These posts are short and sweet – they talk about work that went into any of my open source projects for the past ~week and/or what work is being done with them.
Let’s dive in.
I’ll post an update to the repository soon, but consider this tool now deprecated. I will no longer be working on improvements to it.
Patch-Starter-Script is being replaced with this! Rather than a downloadable script, PatchCLI is a command line tool installed and updated through pip. It’s going to have a lot of the bells and whistles that were dreamed up for patchstarter.py including direct API access to a local Patch Server or CommunityPatch so you don’t have to write extra scripting around those actions.
Try it out today:
pip install patchlib
No updates currently, but I had several chats during JNUC with users of Patch Server and came back with a list of features that will be implemented to make it a much more Enterprise-y product (PatchCLI actually came out of some of those talks).
Planned features for the updated Patch Server include:
- True Login Screen: there will be a default admin account created now with Patch Server and you will have the ability to create additional accounts with limited permissions or tie in LDAP for authentication using your directory.
- API Tokens: The current method of generating a single permenant token will be tossed out in favor of generating access tokens for your automations to Patch Server from the Admin UI.
- MySQL/PostgreSQL(?)/MSSQL(?) Support: The application currently writes everything to a local database file using SQLite. That will still be the default mode, but I’m going to add in support for external databases. Definitely MySQL, and we’ll see if we can get compatibility with the others.
GitHub sync is still in progress and it will be coming into the beta in December. If you’re wondering when CommunityPatch will leave beta (and it has been asked numerous times) I don’t have a solid answer. The core feature set needs to be complete, and the decisions that have been made need to be validated. Things can still be fluid at this point.
Possum is my packaging tool for AWS Serverless Application Model (SAM) applications written in Python. I use it heavily at Jamf for my work on the Cloud Engineering team as well as for personal projects (mainly CommunityPatch and Jackalope). This CLI tool takes care of all the heavy lifting when it comes to creating Lambda packages.
I currently have a 1.5.0 pull request open for review that contains a major overhaul to the CLI interface to make ready for additional future features revolving around automated tested (CI/CD goodness) and not just straight up packaging.
To install Possum 1.4.4:
pip install possum
Opossum is a Python module I’m working on that provides a lot of common tools, functions, and decorators that I use across my serverless projects. If you go look in the code for CommunityPatch and Jackalope you’ll find Opossum’s uses in there. This is a package I continue to iterate on as I find repeated code in my Lambdas.
You can install Possum and try it out by using pip and pointing at the GitHub repo:
pip install git+https://github.com/brysontyrrell/Opossum.git#egg=opossum
My last post revealed that the special Jamf The Gathering Slack bot I wrote for JNUC was actually the new Jackalope in disguise. My original version which is listed on the Jamf Marketplace is a Flask application. The goal had always been to get Jackalope into the Slack App Directory as a free listing, but hosting a scalable Flask app myself would never have been economical (nay, it would have been $$).
My past year spent in serverless development has shown I can build highly available and very low-cost (nay, usually free for me) services in AWS. The JNUC challenge presented an opportunity to create something simple that would give me the skeleton framework to then build a new Jackalope on top of.
This version is the one that I am going to feature parity with Casper-HC on. The internal HipChat plugin I wrote years ago did all sorts of awesome stuff with Jamf Pro besides notifications (I could search the inventory from a chat room!) and I plan to bring that experience to Jamf admins on Slack.
If you’re interested in being a beta tester let me know!