Archive for July, 2018

Session videos now available from Penn State MacAdmins Conference 2018

July 29, 2018 Leave a comment

The good folks at Penn State have begun posting the session videos from the Penn State MacAdmins Conference 2018. The sessions slides and currently-available videos are all accessible from the Penn State MacAdmins’ Resources page at the link below:

As all the session videos have been posted to YouTube , I’ve linked my Providing the best Mac experience possible from the Mac CoE team with ❤️ session here:

The Escaping the Tech Whisperer Trap session I co-hosted with Nikki Lewandowski is linked here:

Slides from the “Providing the best Mac experience possible, from the Apple CoE team with ♥” session at Penn State MacAdmins 2018

July 14, 2018 Leave a comment

For those who wanted a copy of my Mac management session at at the Penn State MacAdmins 2018 conference, here are links to the slides in PDF and Keynote format.


Keynote –

Automating AutoPkg and JSSImporter setup

July 13, 2018 1 comment

As part of building my autopkg-conductor solution for automating AutoPkg runs, I also wanted to automate the setup of AutoPkg and JSSImporter. My colleague Graham Pugh has written a setup script for his environment, which I was able to adapt and extend for my own needs. For more details, please see below the jump.

Read more…

Joining Apple’s AppleSeed testing program

July 12, 2018 Leave a comment

In addition to Apple’s Developer Connection program for developers, Apple also has a program called AppleSeed for IT, which is geared towards working with enterprise customers to help them test new Apple software.

During recent conversations about AppleSeed for IT, I was told that it was better for AppleSeed members to submit bug reports and feature requests through AppleSeed’s Feedback Assistant. This would be in place of sending those bug reports and feature requests through Apple’s regular bug reporting at

Why? Two reasons:

  1. Bug reports and feature requests sent through AppleSeed’s Feedback Assistant are routed to a dedicated queue for IT.
  2. There’s a smaller absolute number of items being sent through AppleSeed’s Feedback Assistant, which means that there’s less communication volume for Apple to sort through to get to your issue.

How to join AppleSeed for IT

There’s no cost to join AppleSeed for IT and you will not be asked to pay for anything, but you do need to be invited by Apple. This takes the form of an invitation code that you must provide when registering for AppleSeed.

If your company, school or institution has purchased an AppleCare Preferred, AppleCare Alliance and AppleCare Enterprise support plan, you should be given an opportunity to enroll into AppleSeed. If you haven’t been asked already, contact the Apple rep for your support plan and request an invitation.

What if your shop hasn’t purchased an AppleCare support plan? You are still able to request an invitation. To do so, use the following procedure:

  1. Log into the MacAdmins Slack. If you’re not familiar with the MacAdmins Slack, please see this post by my colleague Armin Briegel.
  2. Go to the #appleseed channel.
  3. Politely ask how you can get an invitation to join AppleSeed.


One thing that’s important to know is that discussions about AppleSeed-provided software should not take place in the #appleseed channel. The reason is that AppleSeed software is covered by Apple’s NDA for AppleSeed, where participants in the program agree not to publicly discuss the software or their experiences with it.


Categories: AppleSeed, Slack

Slides from the “Escaping the ‘Tech Whisperer’ Trap” session at Penn State MacAdmins 2018

July 11, 2018 Leave a comment

For those who want a copy of the documentation talk given by myself and my colleague Nikki Lewandowski at the Penn State MacAdmins 2018 conference, here is a link to the slides in Keynote format.

Keynote slides:

Automating AutoPkg runs with autopkg-conductor

July 6, 2018 2 comments

About two weeks ago, I noticed I had an SSL error cropping up with one of my AutoPkg recipes:

[Errno socket error] EOF occurred in violation of protocol (_ssl.c:590)

When I investigated what it meant, I wound up at this lengthy issue opened for Python’s requests module. In the end, it seemed to boil down to four issues:

  1. I was running AutoPkg on macOS Sierra 10.12.6.
  2. The recipe I was running used a processor which called Python’s urllib2 library.
  3. Python’s urllib2 library was calling the OS’s installed version of OpenSSL to connect to a server using TLSv1.2 .
  4. The version of OpenSSL included with 10.12.6 does not support TLSv1.2 for the urllib2 library.

When I looked into the situation on macOS High Sierra 10.13.5, Apple had addressed the problem by replacing OpenSSL with LibreSSL. Among other improvements, LibreSSL allowed Python’s urllib2 library to be able to connect to servers using TLSv1.2. Problem solved!

Until I ran into another problem.

I had been using AutoPkgr as my way of managing AutoPkg and scheduling AutoPkg runs. However, when I set up AutoPkgr on a 10.13.5 VM and scheduled my AutoPkg nightly run, nothing happened except my CPU spiked to 100% and AutoPkgr locked up with the pinwheel of patience.

OK, maybe it was something with my VM. No problem, set up a new macOS 10.13.5 VM.

Same problem.

Maybe it was because I was trying to run the VM on VMware’s ESXi? Set up a new VM running in VMware Fusion. Same problem.

Maybe AutoPkgr was getting confused by Apple File System? I set up a 10.13.5 VM which used an HFS+ boot volume. Same problem, replicated on both ESXi and Fusion.

No matter what I tried, trying to run recipes using AutoPkgr on macOS 10.13.x resulted in the following:

  • The VM’s CPU spiking to 100%
  • AutoPkgr locking up with the pinwheel of patience
  • My AutoPkg recipes not running

I was able to eliminate AutoPkg itself as being the issue, as running recipes from the command line using AutoPkg worked fine. With that information in mind, I decided to see if I could replicate what I most liked about using AutoPkgr into another form. In the end, my needs boiled down to three:

  1. I wanted to be able to run a list of AutoPkg recipes on a scheduled basis. These recipes would be .jss recipes for uploading to a Jamf Pro server.
  2. I wanted to be able to post information about those AutoPkg recipes to a Slack channel
  3. I wanted all the error messages from an AutoPkg run, but I didn’t care about all the information that came from a successful AutoPkg run.

With that, I decided to draw on some earlier work done by Sean Kaiser, a colleague who had written a script for managing AutoPkg in the pre-AutoPkgr days. For more details, please see below the jump.

Read more…

%d bloggers like this: