-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial release with Tugboat and Cargo Ship
- Loading branch information
0 parents
commit 8ff4197
Showing
38 changed files
with
3,394 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# SCL Jamf Tools | ||
|
||
This repository contains a collection of tools written to perform as enhancements to the Jamf Pro management software. You can read about them at our [blog post](https://apple.lib.utah.edu/?p=2057) or in the indiviual project areas. | ||
|
||
Our goal is to make genericized versions of our internal tools available to other Jamf administrators. They are usable as is, but are intended as frameworks that others can use to build custom tools to more closely fit their environments. | ||
|
||
## Contents | ||
|
||
- [Contact](#contact) | ||
- [Cargo Ship](#cargoship) | ||
- [Tugboat](#tugboat) | ||
- [Update History](#update-history) | ||
|
||
## Contact | ||
|
||
If you have any comments, questions, or other input, either [file an issue](../../issues) or [send us an email](mailto:mlib-its-mac-github@lists.utah.edu). Thanks! | ||
|
||
|
||
|
||
## [Cargo Ship](cargo_ship/README.md) | ||
|
||
![](imgs/cargoship_final.png) | ||
|
||
Cargo Ship is designed as a reflection tool, it shows you what should be on a specific client. It can read from Jamf Pro directly from ID's or by selecting from search results. | ||
|
||
|
||
|
||
## [Tugboat](tugboat/README.md) | ||
|
||
![](imgs/tugboat_final.png) | ||
|
||
Tugboat is designed to make modifications to specific computer records on your Jamf Pro server. | ||
|
||
|
||
|
||
## Update History | ||
|
||
| Date | Version | Notes | | ||
| --------- | ------- | ---------------- | | ||
| 2017.2.15 | | Initial release. | |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
# Cargo Ship | ||
|
||
![](../imgs/cargoship_final.png) | ||
|
||
Cargo Ship is designed as a kind of reflection tool, it shows you what Jamf thinks should be on a specific client. It can read from Jamf Pro directly from ID's or by selecting from search results. | ||
|
||
This tool is identical to our inhouse version. However it can be customized to fit your environment by modifying it's Python code. | ||
|
||
*Note: Offering a tool designed from the outset to be customized at the source level is a new venture for us. If you feel the documentation we've included is not sufficient to help you successfully navigate the source code, please consider raising an issue and we'll do our best to correct any short comings.* | ||
|
||
## Contents | ||
|
||
- [Download](#download) - get the .dmg | ||
- [Contact](#contact) | ||
- [System Requirements](#system-requirements) | ||
- [Install](#install) | ||
- [Uninstall](#uninstall) | ||
- [Purpose](#purpose) | ||
- [Usage](#usage) | ||
- [How Does It Work](#how-does-it-work) | ||
- [Jamf User Privileges](#jamf-user-privileges) | ||
- [Notes](#notes) | ||
- [Update History](#update-history) | ||
|
||
|
||
|
||
## Download | ||
|
||
[Download the latest installer here!](../../releases/) | ||
|
||
|
||
|
||
## Contact | ||
|
||
If you have any comments, questions, or other input, either [file an issue](../../issues) or [send us an email](mailto:mlib-its-mac-github@lists.utah.edu). Thanks! | ||
|
||
|
||
|
||
## System Requirements | ||
|
||
- Python 2.7+ (which you can download [here](https://www.python.org/download/)) | ||
|
||
If you intend to rebuild customized versions you will need the following tools, depending on your platform: | ||
|
||
- py2app for MacOS applications (which you can download [here](https://pythonhosted.org/py2app/install.html)) | ||
- cx_freeze for Windows applications (which you can download [here](https://anthony-tuininga.github.io/cx_Freeze/)) | ||
|
||
|
||
|
||
## Install | ||
|
||
Place the application in an appropriate location for your environment. | ||
|
||
|
||
|
||
## Uninstall | ||
|
||
Remove the application. | ||
|
||
|
||
|
||
## Purpose | ||
|
||
The idea behind Cargo Ship began as an offhand remark about how useful it would be to have a tool that could tell you what a machine was supposed to be, what policies applied to it, what groups it belonged to, etc. It also served as a learning tool for the author. | ||
|
||
|
||
|
||
## Usage | ||
|
||
On opening the application, provide your Jamf Pro server address, and a user with appropriate privileges. | ||
|
||
![](/Volumes/Data/Users/u0942941/Desktop/login.png) | ||
|
||
The first line in the UI contains all of the navigation tools. | ||
|
||
![](imgs/cargoship_usage.png) | ||
|
||
**This Device** Open the record for the device the application is running on. | ||
|
||
**Other ID** If you know the Jamf ID of the specific machine you'd like to see, enter it in the text field and press the Other ID button. | ||
|
||
**Search Jamf** Enter the information you'd like to search for in the text field and press the Search Jamf button. The following image shows the search results window. | ||
|
||
![](imgs/search_results.png) | ||
|
||
Select the machine you'd like to see and its record will load into the display. | ||
|
||
|
||
|
||
#### How Does It Work | ||
|
||
Here are the steps that are performed when the application is launched: | ||
|
||
1. The user provides the Jamf Pro server address and the user name and password for an account with access to a specific areas of the Jamf database. This area can be customized to include your Jamf server address. | ||
2. The application downloads a list of all policies in the database. This list contains the ID and internal "name" of the policy, which isn't really the proper name. With the list of ID's, it asks the Jamf server for specific information about each identified policy. A list is constructed containing the ID, actual policy name and other qualifying information. This list is then added to a cumulative list of policies. | ||
3. It then downloads the list of profiles (osxconfigurationprofiles). With this list, a cumulative dictionary is built using profile ID as the key, and the name of the profile as the value. | ||
4. *The time required to complete the two previous steps is dependent on the number of policies and profiles defined in your environment. It may take minutes to complete.* | ||
5. The empty UI is created. | ||
6. The user specifies which machine to investigate. | ||
7. The full computer record for the specified machine is downloaded. | ||
8. Specific items are pulled directly from the record and displayed: | ||
- Computer Name | ||
- Jamf ID | ||
- Computer users full name | ||
- Last checkin time to the Jamf server | ||
9. Specific items are parsed from the record and displayed: | ||
- Printers | ||
- Computer groups | ||
- Extension attributes | ||
- Installed software (by a local installer package and by Jamf itself) | ||
10. Policies and profiles are cross-referenced between the full record and precreated data structures and finally displayed. | ||
|
||
|
||
|
||
#### Jamf User Privileges | ||
|
||
In order to use Jamf's API, your users will need the appropriate rights to certain areas of the database. To check these settings go to the following area: **All Settings**, **System Settings**, **JSS User Accounts & Groups**. | ||
|
||
![](imgs/jss_privs.png) | ||
|
||
|
||
|
||
This chart shows the required privileges for Cargo Ship to operate properly: | ||
|
||
| Field | Create | Read | Update | Delete | Notes | | ||
| ----------------------------- | :----: | :--: | :----: | :----: | :----------------------------- | | ||
| Accounts and Groups | | ☑ | | | Needed for login functionality | | ||
| Computer Extension Attributes | | ☑ | | | | | ||
| Computers | | ☑ | | | | | ||
| OS X Configuration Profiles | | ☑ | | | | | ||
| Policies | | ☑ | | | | | ||
|
||
These requirements are also included in the login method. If you make customizations, you may need to add these additional areas to the list of required privileges. | ||
|
||
## Notes | ||
|
||
Fomerly known as "**The Summerizerator**". | ||
|
||
My heartfelt thanks to the other members of the Mac Group and the IT administration of the Marriott Library for their support, bug reports and feature requests! | ||
|
||
|
||
|
||
## Update History | ||
|
||
| Date | Version | Notes | | ||
| --------- | ------- | ----------------------- | | ||
| 2017.2.15 | 1.0.0 | Initial public release. | |
Binary file not shown.
Binary file not shown.
Oops, something went wrong.