ahrenstein.mac_setup
Ansible Role - Mac Setup
This repository has an Ansible role that sets up Matthew Ahrenstein's personal preferences and settings on a brand new Mac. This process makes setting up a new Mac much faster.
Apple Silicon
Currently, this Ansible role is only tested on Sonoma for Apple Silicon Macs.
Monterey and MDM
This repository works on Macs that are enrolled in Mobile Device Management (MDM) using Device Enrollment Program (DEP) and have a configuration profile that allows system extensions from these vendors:
Vendor Name | Team ID | KEXT IDs |
---|---|---|
VMware | EG7KH642X6 | (ALL) |
Rogue Amoeba | 7266XEXAPM | /Library/Audio/Plug-Ins/HAL/ACE.driver |
If the system extensions are not allowed before running this role, you may need to approve them as they appear. This is because some Homebrew applications will be installed. Also, on Apple Silicon Macs, you need to enable Reduced Security before running this role to install Rogue Amoeba apps.
Requirements
To configure a Mac, you need:
- macOS Monterey (14.0) or newer (This might work on older versions, but only the latest has been tested)
- Your account should be an Admin
- Internet access
- Homebrew already installed
- Ansible already installed via Homebrew
Limitations
- This role is not designed for remote machines.
- It will ask for the logged-in user's password to use sudo for Homebrew actions.
- It is recommended to log out after the role finishes, as some changes only take effect after logging in again.
Variables
This role has a few variables that you should change because they are set to my personal information:
full_name
- Your first and last nameemail
- Your email addressgpg_short_id
- Your GPG key's short ID
You can also change these variables at your discretion:
homebrew_taps
- Change the default Homebrew taps that are installedhomebrew_packages
- Change the default packages that get installedhomebrew_casks
- Change the default casks that get installedlicenses
- Set totrue
to run license tasks (You’ll need to provide the necessary licensing variables below)
Licensing Variables:
loopback_license
andloopback_name
- Licensing information for Rogue Amoeba's Loopbackaudiohijack_license
andaudiohijack_name
- Licensing information for Rogue Amoeba's Audio Hijacksoundsource_license
andsoundsource_name
- Licensing information for Rogue Amoeba's SoundSourcefission_license
andfission_name
- Licensing information for Rogue Amoeba's Fissionfarrago_license
andfarrago_name
- Licensing information for Rogue Amoeba's Farragoviscosity_license
- Licensing information for the Viscosity VPN Clientcommandq_license
- Licensing information for CommandQ (This should be in the formatemail,license key
, encoded in base64 with no new lines)
Running This Role Locally
To run this role on your local machine, use the command:
ansible-playbook playbook-local.yml -i local.inventory
If you need to set everything up from scratch (including Homebrew and Ansible), you might consider running devops-mac, which uses this role.
Testing
This role is manually tested on virtual machines.
You can find testing details and instructions in TESTING.md.
Configure a fresh Mac with Matthew Ahrenstein's custom settings
ansible-galaxy install ahrenstein.mac_setup