Back in business: Catalina VMs with AutoDMG and vfuse

Hoo boy, what a week. After just a few days with a GM, Apple decided to release macOS Catalina into the wild on Monday. Hopefully y'all were ready!

I'm so happy to be back working with production releases of macOS and building VMs with non-beta OS versions. Feels so good.


So, what do you need to streamline your VM building for macOS Catalina?

If you need a refresher on how all of these things work together to build you beautiful VMs for testing purposes please see my previous posts on the topic:
Additional assistance can be found in the Macadmins Slack team in either #virtualization, #vfuse, or #vmware.

Good luck, have fun.

Template for macOS core application technical readiness

macOS Catalina (source: Apple)

Last night at the Austin Apple Admins meetup I went over some of the high level changes in macOS Catalina that were announced at WWDC, and when I did I briefly showed the table we use to track compatibility with what we consider "core applications" for our Mac customers. The table is pretty simple but it seemed to resonate with a lot of the attendees at the meetup. I got a few questions about it afterwards so I thought I'd post a template here that folks can use at their organizations to get ready for new macOS versions.


Application Name Application Owner Min. Version Required Catalina Ready? Notes
Google Chrome Mac Eng TBD 20190619 - Version 75.0.3770.100 functions as expected, unsure about notarization requirements (@EKW)
"AV Software" @Security Person 20190618 - Version 1.2.3 appears to be functioning normally, waiting on confirmation of support from $vendor
"Random Internal App" @Developer Person RIP ☠️ It's dead, Jim
etc. ...

Breaking down each column:
  • Application Name: Pretty straightforward, this is the name of the application, service, or feature that you're testing. The focus here are services and applications that you serve to your customers, or are required for security compliance. Going after every bit of software is pretty much impossible, especially if Mac users at your org are admins and can install whatever they need. Go after the big fish.
  • Application Owner: This is probably the most important column of this table. Here, use whatever tagging/shaming methodology available in your internal CMS to call out who is responsible for that app and vendor relationship at your org. Listing them here and tagging them so they get a notification helps drive home the fact that you are relying on them to pressure vendors to be ready for the new version of macOS before it is released. Use this opportunity to build a good relationship with that person/team, and let them know that you want this to be an opportunity for them to deliver a great customer experience to Mac users at your org. The last thing you want is for that team to look like it's their fault your customers can't upgrade to the newest macOS version on release day.
  • Min. Version Required: Some vendors never publish a specific version that is required for compatibility with a new OS, but some do. If they do, put that version number here, and make upgrading to that version number a minimum requirement for anyone prior to upgrading to the new version of macOS on release. If a vendor doesn't release a minimum version number, use your best judgement to determine what that minimum version should be based on your testing and user feedback from early adopters.
  • Catalina Ready?: This column is simply a checkbox column so people (customers and partners in other departments) can see at a glance if an application is ready for the new OS. The example here is Catalina, but you can replace that with any version you're aiming for (hopefully you're always aiming for the newest OS).
  • Notes: Pretty self-explanatory, but this is where you can put testing notes, relevant correspondence regarding compatibility from vendors, if something is like super busted, or whatever else. We like tagging ourselves when we add notes so it's clear who added it and who to follow up with on notes/issues that arise.

We store this list on our internal documentation/CMS (happens to be Confluence here) and share out the link. We also create a #version-readiness channel on Slack that early adopters, support, partners from other departments, and curious customers can join to see the testing and evaluation status of the new OS.

Leading up to the release of Catalina, and as we gather more information, we put together a group of policies that function as our customer-facing "readiness" updates prior to upgrading and throw all of that in Self Service.

Let me know if you find this template useful, or if you have some other way to track readiness prep at your organization in the comments section.

Baby legwarmers

Hello! Baby Isabel was born February 22, 2019, and I've been on maternity leave with her since she was born. It's been a hectic, wonderful time, and it's about time I shared some of the cute baby stuff I've made for her. I thought I'd start with this pair of stretchy legwarmers.

Baby legwarmers
The fun thing about these legwarmers is that they look knit but they're crochet! I used slip stitch crochet to make some really stretchy legwarmers that should grow with her for a while. I started with about 25 chains to start, and did slip stitch crochet until they were about 5" or so. Finishing was just seaming the edges together and weaving in the ends. You can see more details about these on Ravelry.

I love making baby stuff. Small, cute, and fast to make.

<3 ekw

How to do quick testing with IRL Macs

While I've posted quite a bit about the joys of building VMs for testing, testing with an actual Mac in your hands is always a good idea. VMs are representations of what a physical device will do, and sometimes you really need the real thing to understand what a workflow will look like to a real person using a Mac at your organization.

Fortunately there is an easy way to quickly reset a Mac to a blank state without wiping the drive and reinstalling the full OS. As long as you're testing on an APFS Mac (so, High Sierra or Mojave) you have the tmutil command available to quickly make snapshots that you can use to restore to within 24 hours. And you can run tmutil from the Terminal in Setup Assistant, which means you can get yourself back to a true vanilla state of the OS without reformatting by doing the snapshot before you even get through all of Setup Assistant.

Here's what that looks like:

1. Start with a fresh Mac that hasn't gone through Setup Assistant yet. You can get it in this state however you prefer; the native option here is to boot into Recovery, wipe the drive, and reinstall macOS fresh.

2. Boot up the Mac and let it start Setup Assistant. Select your region and keyboard.



Fall, spring, and testing VMs


This post is just a quick follow-up to the panel I co-presented this past JNUC called "Fall, spring, and everything in between." During that talk I very quickly went through the process of using tools like installinstallmacos.py, AutoDMG, and vfuse to build VMs for MDM and DEP testing purposes. Time was limited so I skipped a few details that people had questions about afterwards, so I thought I'd break some of that down below.

A look back at a busy year



Today is my one year anniversary at The Home Depot (come work with me!), so this seemed like a good opportunity to reflect on the past year (and change) and what's been going on for me and my family in what has been an incredibly busy year.

Help other Mac admins find your scripts on GitHub with Topics

So you've made some scripts for managing your Macs and you threw them on Github. Awesome! But Github is huge and filled with lots of code and content, so how can you help people find your scripts?

Try tagging your repos with Topics.



Topics are a way to help categorize your code repositories on Github to make them more easily discoverable by others. All you need to do is click on Manage topics under your repo description and start typing. Github will have some recommendations for you, and as you start typing other options will populate that you can select from. Once you have topics on your repo, anyone that clicks on that topic on any repo on Github will be presented with a list of repos that are categorized with that topic.



Keep the topics short and to the point, and include the name of the management framework you're working with if applicable. This will go a long way in helping others find the code you put the time and effort into sharing with the world.

Sharing is caring. ❤️