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:

  1. macOS Monterey (14.0) or newer (This might work on older versions, but only the latest has been tested)
  2. Your account should be an Admin
  3. Internet access
  4. Homebrew already installed
  5. Ansible already installed via Homebrew

Limitations

  1. This role is not designed for remote machines.
  2. It will ask for the logged-in user's password to use sudo for Homebrew actions.
  3. 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:

  1. full_name - Your first and last name
  2. email - Your email address
  3. gpg_short_id - Your GPG key's short ID

You can also change these variables at your discretion:

  1. homebrew_taps - Change the default Homebrew taps that are installed
  2. homebrew_packages - Change the default packages that get installed
  3. homebrew_casks - Change the default casks that get installed
  4. licenses - Set to true to run license tasks (You’ll need to provide the necessary licensing variables below)

Licensing Variables:

  1. loopback_license and loopback_name - Licensing information for Rogue Amoeba's Loopback
  2. audiohijack_license and audiohijack_name - Licensing information for Rogue Amoeba's Audio Hijack
  3. soundsource_license and soundsource_name - Licensing information for Rogue Amoeba's SoundSource
  4. fission_license and fission_name - Licensing information for Rogue Amoeba's Fission
  5. farrago_license and farrago_name - Licensing information for Rogue Amoeba's Farrago
  6. viscosity_license - Licensing information for the Viscosity VPN Client
  7. commandq_license - Licensing information for CommandQ (This should be in the format email,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.

Informazioni sul progetto

Configure a fresh Mac with Matthew Ahrenstein's custom settings

Installa
ansible-galaxy install ahrenstein.mac_setup
Licenza
mit
Download
161
Proprietario
DevSecOps Engineer for an amazing company, hiker, amateur radio operator, target shooter, developer, and cryptocurrency enthusiast.