-
Notifications
You must be signed in to change notification settings - Fork 7
Installing
There are several ways you can install jctl
. Below is the easiest, but it requires sudo rights. You should be able to remove sudo and install it just in your user account. You can also install it into a virtual environment (which will eventually become the install method we recommend, once we learn more about it).
sudo pip3 install jctl
When you run the above command, you may be prompted to install Python. We wrote a page on install Python because you might have issues. Once jctl
is installed, you can set it up.
- On your Jamf Pro server create a Jamf Pro API User
- Configure:
conf-python-jamf
- Enter hostname, username, and password
- Test:
conf-python-jamf -t
- You should see something like
{'accounts': {'groups': None, 'users': {'user': {'id': '1', 'name': 'james'}}}}
Everything that applies to python-jamf
also applies to jctl
. Please see the python-jamf wiki for detailed installation and configuration instructions.
sudo pip3 uninstall jctl
It will look something like this.
sudo pip3 uninstall jctl
Found existing installation: jctl 1.1.13
Uninstalling jctl-1.1.13:
Would remove:
/usr/local/bin/jctl
/usr/local/bin/patch.py
/usr/local/bin/pkgctl
/usr/local/lib/python3.10/site-packages/jctl-1.1.13.dist-info/*
Proceed (Y/n)? y
Successfully uninstalled jctl-1.1.13
Upgrading jctl
is easy if you installed it via pip
. pip
is the Package Installer for Python.
To upgrade jctl
run the following command:
sudo pip3 install --upgrade jctl
It will look something like this.
sudo pip3 install --upgrade jctl
Requirement already satisfied: jctl in /opt/anaconda3/lib/python3.8/site-packages (1.1.13)
Collecting jctl
Downloading jctl-1.1.15-py3-none-any.whl (16 kB)
Requirement already satisfied: python-jamf>=0.6.9 in /opt/anaconda3/lib/python3.8/site-packages (from jctl) (0.7.2)
Requirement already satisfied: requests>=2.24.0 in /opt/anaconda3/lib/python3.8/site-packages (from python-jamf>=0.6.9->jctl) (2.25.1)
Requirement already satisfied: keyring>=23.0.0 in /opt/anaconda3/lib/python3.8/site-packages (from python-jamf>=0.6.9->jctl) (23.2.1)
Requirement already satisfied: importlib-metadata>=3.6 in /opt/anaconda3/lib/python3.8/site-packages (from keyring>=23.0.0->python-jamf>=0.6.9->jctl) (3.10.0)
Requirement already satisfied: zipp>=0.5 in /opt/anaconda3/lib/python3.8/site-packages (from importlib-metadata>=3.6->keyring>=23.0.0->python-jamf>=0.6.9->jctl) (3.4.1)
Requirement already satisfied: idna<3,>=2.5 in /opt/anaconda3/lib/python3.8/site-packages (from requests>=2.24.0->python-jamf>=0.6.9->jctl) (2.10)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/anaconda3/lib/python3.8/site-packages (from requests>=2.24.0->python-jamf>=0.6.9->jctl) (1.26.4)
Requirement already satisfied: chardet<5,>=3.0.2 in /opt/anaconda3/lib/python3.8/site-packages (from requests>=2.24.0->python-jamf>=0.6.9->jctl) (4.0.0)
Requirement already satisfied: certifi>=2017.4.17 in /opt/anaconda3/lib/python3.8/site-packages (from requests>=2.24.0->python-jamf>=0.6.9->jctl) (2020.12.5)
Installing collected packages: jctl
Attempting uninstall: jctl
Found existing installation: jctl 1.1.13
Uninstalling jctl-1.1.13:
Successfully uninstalled jctl-1.1.13
Successfully installed jctl-1.1.15
To display the version of jctl
installed, run the following command:
jctl --version
For example, it will look something like this:
jctl --version
jctl 1.1.15
python_jamf 0.7.3 (0.6.9 required)
You configure your server, username, and password with conf-python-jamf. If you create or copy the preferences to a different location, you can manually tell jctl
to use the custom location with -C
.
This will look in /path/to
folder for a file named "localhost.plist" and use the server and username stored in that property list file. It will use that server and username to look in the Keychain for the password.
jctl -C /path/to/localhost.plist [SUBCOMMAND]
For example, if you wanted to setup two preferences, one, for a development server and another for your production server you could do the following:
First, you should decide which server you want to setup as default and which server(s) you want setup as custom preference(s): like development, testing, production, etc., with your jctl
setup.
You can setup Jamf Pro on localhost if you want use Docker for testing of a development server setup, see the Docker documentation for more details.
Next, use the -C
arguement with conf-python-jamf
with path to custom preference location:
Development Server Custom Preference
conf-python-jamf -C /path/to/custom-prefs/my.dev.server.plist
Production Server Custom Preference
conf-python-jamf -C /path/to/custom-prefs/my.prod.server.plist