Pulling data from the JSS for asset management?

iMatt25
New Contributor

Hi guys,

I am looking to create a new asset management system through Sharepoint (or something similar if you could recommend), listing all of the devices in our office. Ideally it will pull data from the JSS as that would always have the most up-to-date information on each device.

Anyone aware of any way I could do this, using a script or something similar?

Input would be much appreciated.

Thanks very much.

28 REPLIES 28

calumhunter
Valued Contributor

nothing like re-inventing the wheel ;) Have you looked at what is available via the JSS API?

iMatt25
New Contributor

Sorry, to be more specific, it's so we can keep track of what is out on loan, what has been broken etc

calumhunter
Valued Contributor

Ahhh ok gotcha. I'd look at what you can pull via the API, and see if you can set up some kind of sync/import of new devices that way new device gets added to casper the sync/import happens and adds it to your AM system.

GaToRAiD
Contributor II

Here is what you are going to need:

1) Setup some kind of cron job to run this script.

#!/bin/sh
jssUser=Username
jssPass=Password
jssHost=https://chscasper.pretendCompany.com:8443/
Computers=$( /usr/bin/curl --request Get --user ${jssUser}:${jssPass} ${jssHost}JSSResource/computers 2> /dev/null )
ComputerID=($Computers)
#Convert Computers to an array
read -a ComputerID <<<$Computers

for ID in "${ComputerID[@]"; do
   #some code you want to do.  Like export to csv file, or other to each line item.
  cat $ID >> computerlist.csv
done

Hope this helps.

donmontalvo
Esteemed Contributor III

Might have a look at this too...

http://www.jamfsoftware.com/products/integrations/

--
https://donmontalvo.com

peineke
New Contributor III

I'm not exactly sure how but I know our webmaster designed added a page onto our inventory system that pulls live data direct from the JSS database for iPads/Macs, Models, how many we have in each building etc. That way we don't have to rely on the API.

If you were looking to do something like that I can could get some more information from him on how he did it.

wallstrum
New Contributor

i use Web Helpdesk by Solarwinds (http://www.webhelpdesk.com/), which has the ability to connect directly to the JSS to pull asset/inventory information. hope this helps.

wally

iMatt25
New Contributor

@peineke Yes please. That's exactly what I'm looking for. Thank you.

donmontalvo
Esteemed Contributor III

We had an asset manager who provided an Excel spreadsheet that ran queries on launch. Took a few minutes to launch, but MAN it was awesome to have all that detail at your fingertips. :)

--
https://donmontalvo.com

iMatt25
New Contributor

Any other ideas?

donmontalvo
Esteemed Contributor III

Why not post in the IRC? I'm sure mister Allister Banks would be happy to provide some helpful advice. :)

external image link

http://www.afp548.com/2006/11/22/join-the-afp548-irc-channel/

--
https://donmontalvo.com

milesleacy
Valued Contributor

It would be possible to do this all in the JSS using an Extension Attribute populated by a drop down menu. I might call it "Disposition" with values like "In Production", "Lost", "Stolen", "Out For Repair", "On Loan" (perhaps attaching a scan of a signed loan agreement to the computer record in the last case).

I hope this is helpful.

althea
Contributor

We've done what @milesleacy suggested, plus an additional couple of EAs where we document the date and results of the last run of Apple Service Diagnostic along with a summary of physical condition. We end up with a record that clearly indicates the location, disposition and hardware condition of the system. We just dump this out to a csv if we have an internal need or incoming request from Accounting or any other group that might need an idea of our inventory. Hope that helps!

Ramin
New Contributor

Hey All- Check out https://www.oomnitza.com/

I work there so I'm biased, but it's great for asset tracking and pulls from Casper.

lisacherie
Contributor II

You could add some extension attribute fields - eg. Hardware status, to display whether an item is stored, disposed (so it can be removed from inventory), issued, repairs, etc...

Then query the JSS API to obtain a list of computers in current inventory, use these results to query your external asset system/records, then use the JSS API to write back these fields. You could use a cron job to schedule this periodically and have the data automatically update from the external source. (Or go the other direction pull data from the JSS for the external source).

Shameless plug - I'm going to be presenting on this at an upcoming NYC user group meetup with code examples.

bpavlov
Honored Contributor

Lisa,

Is this a public group meetup? Would love to attend if so. Are you allowed to share the group meetup info? Would private message you, but still new to the forums and can't quite find that message button (assuming it even exists).

lisacherie
Contributor II

Mark organizes the NYC meet ups - I believe he will be posting the upcoming eventbrite invitations to the forums soon.

daniel_behan
Contributor III

@lisacherie Mark's wife is expecting mid-November so I offered to assist coordinating and he mentioned someone else might be as well. @bpavlov I'll keep you posted.

lisacherie
Contributor II

Ramin
New Contributor

Hi Guys- I work at Oomnitza. We built a connector between Jamf and Oomnitza (Asset Management)

https://github.com/Oomnitza/oomnitza-casper-sync

https://wiki.oomnitza.com/wiki/Main_Page

https://www.oomnitza.com/

andrew
New Contributor

If you are looking at oomnitza, make sure you press hard to get a trial. I have some serious buyers remorse right now.

I have been working with our Rep... but I don't have enough time in my work week to work out all the Oomnitza issues we have been having.

syncron
New Contributor II

Hey Andrew, can you share what issues you've had? I'm looking for an ITAM system.

Also, I'm a little concerned by the fact that Oomnitza doesn't support their own plug-in in the Atlassian Jira marketplace. 1bb039ce1ba14d7e83121619c9ab406c

andrew
New Contributor

Hello Syncron. Good timing. I just logged into my Oomnitza account, and found that the system automatically imported a bunch of BYOD iPads that we don't own... Even though I have it in writing that they are not to import any mobile devices from the JSS. The phrase "surprise" and "inventory" do not mix well in my book.

What really chaps me right now is I have no one to talk to about this issue. Their listed phone number goes to voicemail with the promise of someone getting back to me in 24 hours. Probably for the best since I am pretty P.O.'d right now. I emailed our rep, but he is on California time, so I guess I will just wait around until he gets back to me.

Additionally, the GUI is clunky. The idea that you can't set a custom inventory view on a per user basis drives me insane. The language and interface in other parts of the GUI is sloppy. I can come up with a few different examples where the interface is confusing.

The Mobile app is garbage. Lets say you want to use the mobile app to assign a username to a asset. There is no search box for the user. You literally have to scroll through every AD account until you find the person you are looking for. We have over 3000 AD accounts... As you can imagine, that is a lot of scrolling.

Setup was pretty slow. A simple task like setting up our LDAP connection took 4 business days.

I keep telling myself that once we start using the workflow features, this product will be worth it. I'm trying to stay optimistic, but my patience is wearing thing. Ultimately I feel like our initial salesperson over promised and under delivered. If the service were less expensive, I wouldn't be complaining.

mrcamuti
New Contributor II

@andrew I've used a number of different asset management solutions, and although Oomnitza isn't magic, they are the most responsive I've found.

You can find my attempts to solve other asset management tools on my github... but that was after literally months of making the same requests. I have been working on-and-off with Oomnitza for more than a year, and they've been quite responsive, even when obviously haggered.

My feeling is that the asset management space has a lot of "hey this isn't polished to a level commensurate with my dreams!" but no one actually making that tool. Oomnitza plugs into the services I have enjoyed using: JIRA, Zendesk, JSS, and the like.

They're not a godsend, but they get the job done in the best way I've found, to date. And they're not trying to shoe-horn in my asset manager into a service desk ticketing solution. To paraphrase Gruber, "know the difference between being someone's customer and being their product." I'd rather pay a company to get them to do what I want (Oomnitza), than coerce them to maybe get to my wishlist, 'whenever they have time for it' (SAManage).

PeterClarke
Contributor II

Hi, you said: "Sorry, to be more specific, it's so we can keep track of what is out on loan, what has been broken etc"

Well I did that with our casper system - I added an extension attribute, OpStat (short of 'Operational Status') that was populated via menu, and populated the menu with various options.
"Live", "Gone for Repair", "Damaged", "Gone to Show", "Decommissioned", "Stolen", etc..
(whatever states you want to use..)

Then you can simply use Casper.. Without needed to mess about with anything else..

dwandro92
Contributor III

I recently went the route that @lisacherie mentioned in her comment above. I setup a RHEL 7 server and installed python-jss on it. I then created a script to do the following:

  1. Get a list of computers from the JSS.
  2. Iterate through each computer and get the full JSS computer record for that system.
  3. Grab the serial number and barcode of the computer from the JSS record.
  4. Use this info to query against a website/API that another department of our team created for viewing asset data without using the ITAM product's desktop client.
  5. Gather desired details from ITAM record (e.g. asset assignment, location, etc.) and also do comparisons between ITAM data and JSS data and return comparison results. Store these values in a Python dictionary. The key names of each value match up with the names of "text field" extension attributes that I created in the JSS.
  6. Iterate through each extension attribute in the JSS computer record and find the extension attributes that the script should populate. When an extension attribute is found, copy it to an XML element tree object that I created before processing.
  7. Clear the JSS computer record's contents and replace it with the contents of the aforementioned XML element tree object. This is done to ensure that other values aren't overwritten in the unlikely event that a computer checks in while it is being processed by the script.
  8. Save the modified computer record back to the JSS.

Once all of this was complete, I setup a cron job to run this everynight. So far, it has been working out quite well for us.

syncron
New Contributor II

UPDATE: We decided to build out our asset tracking system using JIRA. Atlassian has an excellent how-to eBook on how to use Jira for asset management, you can find it here: http://atlassian.wpengine.netdna-cdn.com/wp-content/uploads/assetebook.pdf

It's a lot cheaper than a third party solution and it gives us infinite flexibility (including the ability to sync directly to the JSS).