Skip to content
James Reynolds edited this page Nov 15, 2022 · 14 revisions

Welcome to the jctl wiki!

Introduction

jctl is a command-line-based tool to make using python-jamf, a Python 3 module to access Jamf Pro Classic API, easier to use. jctl uses python-jamf to select objects to create, delete, print and update. It allows performing Jamf Pro repetitive tasks quickly and provides options not available in the web GUI. It is similar to SQL statements, but far less complex.

Along with jctl there are a few other tools that utilize jctl and python-jamf. patch.py is a script designed to automate the patching process. pkgctl is similar to patch.py but with a command-line interface.

You can read more about the history of this project on the python-jamf wiki.

Virtual JNUC 2021 Presentation

We presented on python-jamf and jctl at the the Virtual JNUC 2021 on Thursday, Oct 21 at 1:00 PM - 1:30 PM MDT, titled Turn 1000 clicks into 1 with python-jamf and jctl. The presentation video & slides are available.

What are python-jamf and jctl?

Originally, it was a "patch" project that was focused on patch management including installer package management, patch management, including assigning package to patch definition, updating versions, version release branching (i.e. development, testing, production), and scripting and automation.

Patch Development History

Later, it was split into two projects, python-jamf, which is a python library that connects to a Jamf Pro server using Jamf Pro Classic API, including keychain support for Jamf Pro credentials via keyring python project, support for PyPi to support pip installation and currently supports 56 Jamf Pro record types which will expand in number as the project continues.

For more information on how python-jamf works, please visit the Github page.

Getting Help

MacAdmin Slack Channel

If you have additional questions, or need more help getting started, post a question on the MacAdmin's Slack jctl channel.

MacAdmin's Slack Logo

Latest Status

Since we recorded our session over a month ago, some of the information in our presentation is out of date already. We have spent the time between when we recorded the presentation and now (October 14, 2021) getting GitHub actions working so that it will test and publish to pypi. It took longer to get this working than we thought. So that's about where we are. But it works now. We also added some Docker containers that you can run locally to try out python-jamf and jctl. There are also some minor differences in pkgctl than what is shown in the presentation.

I should also mention, one of us also had an issue where we assumed that pkgctl was crashing our production Jamf Pro server. But, increasing the amount of RAM and CPU's for that server fixed this issue.

Wiki

Searching the wiki

To search this wiki use the "Search" field in the GitHub navigation bar above. Then on the search results page select the "Wiki" option or click here and search.